GPU

GPU的性能指标:1. 核心数 2. GPU显存容量 3. GPU计算峰值 4. 显存带宽

GPU不能单独计算,CPU + GPU组成异构计算架构

主机(Host, 即CPU)和设备(Device,即GPU)之间的内存访问一般通过PCle总线链接。

CUDA编译开发环境

image.png

CUDA核函数

  1. 核函数在 GPU 上 进行 并行执行

  2. 注意:

    1. 限定词 __global__ 修饰核函数
    2. 返回值必须是 void
  3. 形式:

    __global__ void kernel_function(argument arg)
    {
    	printf("Hello World form the GPU!\\n");
    } // 或交换 __global__ 和 void,顺序无关
    

核函数注意事项

  1. 核函数只能访问GPU内存
  2. 核函数不能使用变长参数
  3. 核函数不能使用静态变量
  4. 核函数不能使用函数指针
  5. 核函数具有异步性

CUDA程序编写流程

int main(void)
{
	主机代码; // 对 GPU 配置,预处理
	核函数调用;
	主机代码; // 回传GPU处理后的数据到主机,对CPU,GPU内存释放
	return 0;
}