我只是想知道用
调用 CUDA 内核函数有什么区别<<<BLOCK_NUM, THREAD_NUM>>>
和
<<<BLOCK_NUM, THREAD_NUM, THREAD_NUM * sizeof(float)>>> ?
最佳答案
第二种情况下的附加参数指定要分配给内核中每个 block 的动态共享内存量。
例如,如果您有一个这样定义的内核:
__global__ void kernel(...)
{
extern __shared__ float buffer[];
}
第二次内核启动将尝试为每个内核 block 的共享内存数组 buffer
分配 THREAD_NUM
字。有关详细信息,请参阅 CUDA 4.1 编程指南的附录 B.17。
关于CUDA核函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10330572/