我有以下信息:
Maximum number of threads per block: 512
Maximum sizes of each dimension of a block: 512 x 512 x 64
这是否意味着2d线程块中的最大线程数为512x512,这使我每个块中有262144个线程?
如果是,那么在一个最少256个块的内核中拥有这样数量的线程是一种好习惯吗?
最佳答案
不,这意味着每个块的最大线程数为512,
您可以决定如何在[1 ... 512] x [1 ... 512] x [1 ... 64]上进行布局。
例如在2D模式下16x16就可以了。
至于决定块的大小,要考虑很多因素,例如块所需的内存量以及硬件的半弯曲大小(我不记得它是否总是在Nvidia硬件上为16)。 )。
关于cuda - 每个 block 的最大线程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6612935/