平常的上午,电脑上的程序还没有出结果,就开始自己琢磨CUDA的编程,其实跟人说的时候有些表意不清,有些想说的话感觉总是说不切意,还是写下来比较好。
今天还是继续进行CUDA的编程时间,主要的目的是利用GPU实现两个数组数据的相加的初级练习:
代码思想: 1.首先需要利用__global__ 定义一个在GPU里面运行的add()函数
2.blockidx.d 定义一个一维block 具体参考 http://www.cnblogs.com/viviman/archive/2012/11/28/2792521.html ,这个等深入的了解GPU结构可以了解清楚
3.接下来需要在Host 和Device上分别的开辟相应的数组空间,进行数据的存储;
4.利用for循环创建数组数据,并通过 cudaMemcpy 复制到Device上, cudaMemcpy(dev_a, a, N*sizeof(int), cudaMemcpyHostToDevice); 第一个参数是目标,第二个参数是源,第三个参数是总体的数据量大小,第四个参数是复制的步骤指令,将数据从Host(主机)到Device(设备);
5.调用add<<<>>>函数进行运算
6. 运算完毕,cudaMemcpy(c, dev_c, N*sizeof(i