CUDA 笔记
CUDA 笔记
线程全局索引
- 定义grid和block尺寸:
dim3 grid_size(4);
dim3 block_size(8); - 调用核函数:
kernel_fun<<<grid_size, block_size>>> (…); - 具体的线程的索引方式:
blockIdx.x 从0 到3, threadIx.x从0 到7 - 计算方式:
int id = blockIdx.x * blockDim.x +threadIdx.x;
nvcc 的编译流程
- nvcc 分离全部源代码为:(1)主机代码 (2)设备代码;
- 主机(Host)代码是C/C++语法,设备代码是C/C++扩展语言编写;
- nvcc先将设备代码编译为PTX(Parallel Thread Execution)伪汇编语言,再将PTX代码编译为二进制的cubin目标代码;
- 在将源代码编译为PTX代码时,需要用选项-arch = compute_XY指定一个虚拟架构的计算能力,用以确定代码中能够使用的CUDA功能;
- 在将PTX代码编译为cubin代码时,需要用选项-code=sm_ZW指定一个真实架构的计算能力,用以确定可执行文件能够使用的GPU。