Bootstrap

CUDA高性能并行计算学习笔记1----认识CUDA

CUDA C基础

CUDA C是对C/C++语言进行拓展后形成的变种,兼容C/C++语法,文件类型为”.cu”文件,编译器为”nvcc”,相比传统的C/C++,主要添加了以下几个方面:

  • 函数类型限定符
  • 执行配置运算符
  • 五个内置变量
  • 变量类型限定符
  • 其他的还有数学函数、原子函数、纹理读取、绑定函数等

函数类型限定符

用来确定某个函数是在CPU还是GPU上运行,以及这个函数是从CPU调用还是从GPU调用:

  • device表示从GPU调用,在GPU上执行
  • global表示从CPU调用,在GPU上执行,也称之为kernel函数
  • host表示在CPU上调用,在CPU上执行

执行配置运算符

  • 执行配置运算符 <<< >>> . 用来传递内核函数的执行参数
  • kernel<<<gridDim, blockDim, memSize, stream>>>(para1, para2, ...);

五个内置变量

这些内置变量用来在运行时获得Grid和Block的尺寸及线程索引等信息

  • gridDim: 包含三个元素x, y, z的结构体,表示Grid在三个方向上的尺寸,对应于执行配置中的第一个参数
  • blockDim: 包含上元素x, y, z的结构体,表示Block在三个方向上的尺寸,对应于执行配置中的第二个参数
  • blockIdx: 包含三个元素x, y, z的结构体,分别表示当前线程所在块在网格中x, y, z方向上的索引
  • threadIdx: 包含三个元素x, y, z的结构体,分别表示当前线程在其所在块中x, y, z方向上的索引
  • warpSize: 表明warp的尺寸

变量类型限定符

用来确定某个变量在设备上的内存位置

  • device表示位于全局内存空间,默认类型
  • share表示位于共享内存空间
  • constant表示位于常量内存空间
  • texture表示其绑定的变量可以被纹理缓存加速访问

转载链接

CUDA编程入门笔记1
《GPU高性能编程 CUDA实战》(CUDA By Example)读书笔记

;