2012-04-26 99 views
2

我只是想知道什么叫有CUDA内核函数

<<<BLOCK_NUM, THREAD_NUM>>> 

<<<BLOCK_NUM, THREAD_NUM, THREAD_NUM * sizeof(float)>>> ? 

回答

8

在第二种情况下,额外的参数一个CUDA内核函数之间的差异指定的动态共享内存量分配给内核中的每个块。

例如,如果你有这样限定的内核:

__global__ void kernel(...) 
{ 

    extern __shared__ float buffer[]; 

} 

第二内核启动会尝试分配THREAD_NUM字共享存储器阵列buffer用于内核的每个块。有关更多信息,请参阅CUDA 4.1编程指南的附录B.17。