从理论上讲,每个网格的直径可以达到65535个块,最大为65535*65535*65535.
我的问题是:如果你调用这样的内核kernel<<< BLOCKS,THREADS >>>()
(没有dim3对象),BLOCKS可用的最大数量是多少?
在我的应用程序中,我将其设置为192000并且似乎工作正常...问题是我使用的内核更改了一个巨大数组的内容,所以虽然我检查了数组的某些部分并且看起来很好,我无法确定内核是否在其他部分表现得很奇怪.
为了记录,我有一个2.1 GPU,GTX 500 ti.
per*_*eal 12
使用3.0或更高的计算能力,您可以在x维度中拥有最多2 ^ 32 - 1个块,在y和z维度中最多可以包含65535个块.见表H.1.每个计算的功能支持CUDA C编程指南9.1版的功能.
正如Pavan所指出的,如果你没有为网格配置提供dim3,你将只使用x维度,因此每个维度限制适用于此处.