【发布时间】:2013-11-07 05:47:14
【问题描述】:
我想以这种方式启动内核:
kernel_code<<<NUMBER_BLOCKS, NUMBER_THREADS_PER_BLOCK>>> (param1, param2, param3, param4);
因此,仅使用网格的 x 维度。我想用尽可能多的块来调用内核。我以为最大。一维网格中的块数为 65535。
但是,我探索了常量CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X,这听起来与我想找出的数字完全相同。但是,这个常数在我的 GeForce 210 (CUDA 1.2) 上返回 1899336。我哪里错了?
【问题讨论】:
-
所以你怀疑什么是 CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X ?还是别的什么?
-
我正在寻找最大值。当我以上面显示的方式调用它时,我可以分配给内核的块数(仅使用一个维度)。根据 API CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X 是“块的最大 x 维度”,这似乎是指我可以分配给一个块的维度的最大线程数。因此,这可能不是我要找的号码。
-
所以 CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X 是错误的常数是正确的。但是什么值才是正确的值呢?
标签: cuda