这是一个关于如何确定 CUDA 网格、块和线程大小的问题。这是一个额外的问题,一张张贴 给你。
在这个链接之后,talonmies 的答案包含一个代码片段(见下文)。我不理解“通常由调优和硬件约束选择的值”这样的评论。
我还没有找到一个很好的解释或澄清,解释这在 CUDA 文档。总之,我的问题是如何确定给定以下代码的最佳 blocksize
(线程数) :
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);