#blocks,#threads

时间:2012-06-07 13:10:43

标签: cuda gpu nvidia

我正在查看相关代码:How do I choose grid and block dimensions for CUDA kernels? 以下是来自CUDA how to get grid, block, thread size and parallalize non square matrix calculation

的后续问题
const int n = 128 * 1024;
int blocksize = 512; // value usually chosen by tuning and hardware constraints
int nblocks = n / nthreads; // value determine by block size and total work
madd<<<nblocks,blocksize>>>mAdd(A,B,C,n);

blocksize和nthreads有什么区别?我认为他们是同一个人。这只是一个错字还是我错过了什么?

1 个答案:

答案 0 :(得分:0)

块的数量将是实例数除以每个块的大小。但是,这可能会导致非整数答案。因此,您必须确保向上舍入,以便以浪费一些资源为代价执行每个实例。

所以你真正想做的是应用这个小整数算术技巧:

int nblocks = (n+blocksize-1)/blocksize;