CUDA 网格维度最大值 - 它们在哪里定义?

CUDA grid dimension maxima - where are they defined?

CUDA programming guide 给出块中网格维度的非设备特定最大值:x 维度为 2^31 - 1,y 和 z 维度为 2^16 - 1(table 15,从 CUDA 11.3 开始。

我的问题:这些值在代码中的何处定义?我还查看了 cudaLaunchKernel 上的驱动程序 API 条目,它也没有提到此类常量。我在 CUDA 头文件中搜索了 65535、“<< 16”和“<<16”,但也没有成功。

它们没有在代码中定义。它们是设备的 属性,检查是在运行时进行的(这很容易证明),并且检查是针对从相关设备检索到的属性完成的。

您可以研究 deviceQuery 示例代码以了解其工作原理。