CUDA基本概念:
CUDA全称是ComputeUnified Device Architecture,中文名称即统一计算设备架构,它是NVIDIA公司提出了一种通用的并行计算平台和编程模型。使用CUDA,我们可以开发出同时在CPU和GPU上运行的通用计算程序,更加高效地利用现有硬件进行计算。并行编程的中心思想是分而治之:将大问题划分为一些小问题,再把这些小问题交给相应的处理单元并行地进行处理。在CUDA中,这一思想便体现在Grid, Block, Thread等层次划分上。
GPU并行架构:
GPU编程中CPU被称为Host, GPU被称为Device.
Kernel函数在Host中被调用,在Device中被执行。
一个Kernel对应一个Grid;
一个Grid包含一组Block,Block在Grid中的分布可以是一维,二维或三维的,具体由GridDim定义,每个Block都有各自的ID,记blockIdx.xyz;
一个Block包含一组Thread,Thread在Block中的分布有BlockDim定义,每个