如何为CUDA内核选择网格和块尺寸?

如何为CUDA内核选择网格和块尺寸?

这是一个关于如何确定CUDA网格、块和线程大小的问题。这是在这里张贴的问题的另一个问题:

https://stackoverflow.com/a/5643838/1292251

按照这个链接,来自Talonmies的答案包含一个代码片段(见下文)。我不明白“值通常是由调优和硬件约束选择的”这句话。

我没有找到一个很好的解释或澄清,解释这在数据自动化系统的文件。总之,我的问题是如何确定最优条形(=线程数)给定以下代码:

const int n = 128 * 1024;int blocksize = 512; // value usually chosen by tuning and hardware constraintsint nblocks = n / nthreads; 
// value determine by block size and total workmadd<<<nblocks,blocksize>>>mAdd(A,B,C,n);

顺便说一下,我从上面的链接开始我的问题,因为它部分地回答了我的第一个问题。如果这不是一个正确的方式来问题堆叠溢出,请原谅或建议我。


慕仙森
浏览 1674回答 3
3回答

ibeautiful

块的选择通常是为了使“占用”最大化。查询数据自动化系统的占用情况以获得更多信息。特别是,请参阅数据自动化系统占用率计算器电子表格。
打开App,查看更多内容
随时随地看视频慕课网APP