每个块的最大线程数

时间:2011-07-07 15:16:16

标签: cuda gpu

我有以下信息:

Maximum number of threads per block:           512
Maximum sizes of each dimension of a block:    512 x 512 x 64

这是否意味着2d线程块中的最大线程数为512x512,这使得每个块中有262144个线程?
如果是,那么在一个至少256个块的内核中拥有这么多线程是一个好习惯吗?

2 个答案:

答案 0 :(得分:12)

不,这意味着每个块的最大线程数为512,

您可以决定如何在[1 ... 512] x [1 ... 512] x [1 ... 64]之间进行布局。

例如16x16可以在2D中使用。

至于块的大小决定,需要考虑很多事情,例如块需要的内存量以及硬件上的半翘曲有多大(我不记得它是否总是16在Nvidia硬件上)。

答案 1 :(得分:1)

不,这意味着您的区块可以有512个最大X / Y或64个Z,但不能同时具有所有区域。实际上,您的信息已经表示最大块大小为512个线程。 现在,没有最佳块,因为它取决于运行代码的硬件,还取决于您的特定算法。