【问题标题】:CUDA grid dimension maxima - where are they defined?CUDA 网格维度最大值 - 它们在哪里定义?
【发布时间】:2021-08-15 22:41:54
【问题描述】:

CUDA programming guide 为块中的网格尺寸提供非设备特定的最大值:x 尺寸为 2^31 - 1,y 和 z 尺寸为 2^16 - 1(表 15,截至 CUDA 11.3) .

我的问题:这些值在哪里定义,在代码中?我还查看了cudaLaunchKernel 上的驱动程序 API 条目,它也没有提及此类常量。我在 CUDA 头文件中搜索了 65535、“

【问题讨论】:

    标签: cuda constants dimensions


    【解决方案1】:

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

    您可以研究deviceQuery 示例代码,看看它是如何工作的。

    【讨论】:

    • 那么,你是说我们不应该假设最大值?任何适合 dim3 的东西都是合法的?
    • 您已经知道有限制。如果您担心限制,正确的做法是在运行时测试任何工作。您以编程方式处理它。据我所知,CUDA 编程模型不能保证未来的 GPU 将不限于 (1,1,1) 网格维度。实际上,据我所知,没有人对此感到担忧。为了迂腐,你在运行时进行测试。
    • 我实际上想在命令行参数解析期间进行一些初步检查,然后才知道要求使用哪个设备以及系统上是否有任何设备。
    猜你喜欢
    • 2016-03-11
    • 1970-01-01
    • 2012-06-26
    • 2014-02-01
    • 2021-04-07
    • 1970-01-01
    • 2012-12-06
    • 2016-12-29
    • 2023-04-04
    相关资源
    最近更新 更多