一、概述
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有以下几种:

最低0.47元/天 解锁文章
1595

被折叠的 条评论
为什么被折叠?



