CUDA:网格中的最大块数!=特写设备属性最大网格尺寸?

CUDA:网格中的最大块数!=特写设备属性最大网格尺寸?,cuda,Cuda,我希望以这种方式启动内核: kernel_code<<<NUMBER_BLOCKS, NUMBER_THREADS_PER_BLOCK>>> (param1, param2, param3, param4); kernel_代码(param1、param2、param3、param4); 因此,仅使用栅格的x维。我想用尽可能多的块调用内核。我认为一维网格中的最大块数应该是65535 然而,我研究了常量CU\u DEVICE\u ATTRIBUTE\u MA

我希望以这种方式启动内核:

kernel_code<<<NUMBER_BLOCKS, NUMBER_THREADS_PER_BLOCK>>> (param1, param2, param3, param4);
kernel_代码(param1、param2、param3、param4);
因此,仅使用栅格的x维。我想用尽可能多的块调用内核。我认为一维网格中的最大块数应该是65535


然而,我研究了常量
CU\u DEVICE\u ATTRIBUTE\u MAX\u GRID\u DIM\u X
,它听起来和我想找出的数字完全一样。但是,这个常量在我的GeForce 210(CUDA 1.2)上返回1899336。我做错了什么?

参考驱动程序API文档,给出网格x方向最大块数的参数是:

•CU_设备_属性_MAX_GRID_DIM_X:网格的最大X维

正如您所猜测的,您指示的参数给出了块中的最大线程数(x维):

•CU_设备_属性_MAX_BLOCK_DIM_X:块的最大X维

在a上,
MAX_GRID_DIM_X
参数应为65535。()

如果您得到的是其他号码,则用于检索此数据的代码可能有问题(您尚未显示),或者您的机器设置有问题


尝试运行并检查CUDA驱动程序API的代码。

那么您的疑问是CU\u设备\u属性\u最大\u网格\u尺寸\u X是什么?或者别的什么?我在寻找我可以分配给内核的最大块数,当我以上面所示的方式调用它时(只使用了一个维度)。根据API CU_DEVICE_属性_MAX_BLOCK_DIM_X是“块的最大X维”,它似乎是指我可以分配给一个块维度的最大线程数。因此,这可能不是我要找的数字。因此,CU\U设备\U属性\U最大\U块\U DIM\U X是错误的常数是正确的。那么正确的值是什么呢?