以下cuda Kernel语法的含义

时间:2012-08-20 12:54:22

标签: visual-c++ cuda opencl

以下语法的含义是什么:

Kernel_fun<<<256, 128, 2056>>>(arg1, arg2, arg3);

哪个值表示工作组,哪个值表示线程。

1 个答案:

答案 0 :(得分:10)

CUDA Programming Guide,附录B.22(截至2019年5月):

  

通过插入表达式来指定执行配置   形式&lt;&lt;&lt; Dg,Db,Ns,S&gt;&gt;函数名称和。之间   带括号的参数列表,其中:

     
      
  • Dg的类型为dim3(参见第B.3.2节)并指定网格的尺寸和大小,使得Dg.x * Dg.y * Dg.z等于数字   正在发射的区块;对于设备,Dg.z必须等于1   计算能力1.x;

  •   
  • Db的类型为dim3(参见B.3.2节),并指定每个块的尺寸和大小,使得Db.x * Db.y * Db.z等于   每个块的线程数;

  •   
  • Ns的类型为size_t,并指定共享内存中为此调用每个块动态分配的字节数   除了静态分配的内存;这是动态的   分配的内存由声明为的任何变量使用   如B.2.3节所述的外部阵列; Ns是可选的   默认为0的参数;

  •   
  • S的类型为cudaStream_t,并指定关联的流; S是可选参数,默认为0.

  •   

简而言之: <<< number of blocks, number of threads, dynamic memory per block, associated stream >>>