CUDA C变成权威指南 第二章 CUDA编程模型

一、概述
1. CUDA编程结构

CUDA6.0开始提出统一寻址(Unified Memory),它连接了主机内存和设备内存空间,可使用单个指针访问CPU和GPU内存。

主机代码按照ANSI C标准进行编写,而设备代码使用CUDA C进行编写。

一个典型的CUDA程序实现流程遵循以下模式。

1. 把数据从CPU内存拷贝到GPU内存。

2.调用核函数对存储在GPU内存中的数据进行操作。

3.将数据从GPU内存传送回到CPU内存。

2. 内存管理

CUDA编程模型假设系统是由一个主机和一个设备组成,而且各自拥有独立的内存。

①cudaMalloc函数负责执行GPU内存分配:其函数原型为:

        cudaError_t cudaMalloc (void** devPtr, size_t size)

该函数负责向设备分配一定字节的线性内存,并以devPtr的形式返回指向所分配内存的指针。

②cudaMemcpy函数负责主机和设备之间的数据传输,其函数原型为:

        函数 cudaError_t cudaMemcpy (void* dst, const void* src, size_t count, cudaMemcpyKind kind)

此从src指向的源存储区复制一定数量的字节到dst指向的目标存储区.复制方向由kind指定,其中的kind有以下几种:

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值