一.理解GPU的并行计算
1. 并发性 cuda将问题划分为线程块的网格,每个块中包含多个线程,每个时间点上只有一个块在执行中。GPU是由多个SM组成。每个SM中包含多个SP,每个SM中存在一个共享内存和专用单元(SPU)。
2. 局部性 时间和空间上的局部性质
二.CUDA的基本编程模型
1. cuda的编程模型将线程组合在一起形成了线程束,线程块,和线程网格。
2. 每个线程执行的代码是一样的,但是数据却不一样,这是CUDA的核心---SPMD模型
三 CUDA的内核
kernel_funciton<<<num-blocks,num-threads>>>(param1,param2........)
参数num-blocks是块的数量
参数num-threads是执行内核函数的线程的数量。
在内核函数参数传递过程中,可以通过寄存器和常量内存来进行参数传递
四 数据映射
在threadid,blockid, blockdim, gridDim上实现线程到数据映射