我有以下信息:
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个) ).