CUDA安装过程已经在上一篇文章中讲了。
一、创建
首先需要创建一个CUDA工程,安装后VS会多一个选项如下:
选择,下一步,下一步
结果如下:
我们发现会出现一个.cu后缀名的文件,这就是GPU使用的源文件。
二、前缀和两个常用函数
1、在CU文件中有三种函数,前面分别用三种前缀修饰:
__device__ void gpu_run();
__global__ void cpu_to_gpu_run();
__host__ int cpu_run();
顾名思义:
__device__ 只能由GPU执行,且为GPU中的一个线程执行,且只能在GPU中调用
__global__ 表示一个内核函数,是一组由GPU执行的并行计算任务,以foo<<>>(a)的形式或者driver API的形式调用。目前该函数必须由CPU调用,并将并行计算任务发射到GPU的任务调用单元。随着GPU可编程能力的进一步提高,未来可能可以由GPU调用。
__host__ 由CPU执行,可以省略该前缀
如果一段代码既需要运行于CPU,也要运行于GPU,我们可以同时使用__host__和__device__修饰
同时__device__和__global__ 为核函数,调用他们的方法为
函数名<<<blocksPerGrid, threadsPerBlock>>>(参数一,参数二);
其中blockPerGrid和threadsPerBlock表示线程数,cuda中线程id使用x,y,z三个变量来表示,gpu线程为了快速进行三维计算而复杂。
此处确定了block中的thread数量以及一个grid中block数量
2、cudaMalloc() 和 cudaFree(),cudaMemcpy();
gpu上内存分配释放,以及将cpu内存拷贝入gpu的函数
三、示例