CUDA 笔记

CUDA 笔记

线程全局索引

  • 定义grid和block尺寸:
    dim3 grid_size(4);
    dim3 block_size(8);
  • 调用核函数:
    kernel_fun<<>> (…);
  • 具体的线程的索引方式:
    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。

你可能感兴趣的:(cuda编程,linux,c++)