每个块的最大线程数

lin*_*ina 9 cuda gpu

我有以下信息:

Maximum number of threads per block:           512
Maximum sizes of each dimension of a block:    512 x 512 x 64
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*sen 12

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

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

例如16x16在2D中可以.

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