【问题标题】:launch more than 65536 blocks per grid (x dimension) in CUDA在 CUDA 中每个网格(x 维度)启动超过 65536 个块
【发布时间】:2019-02-26 06:20:14
【问题描述】:

我有一个 CUDA 代码,我从 Visual Studio 中的 mex 文件启动。我只在 x 维度上启动块,但如果我尝试启动超过 65536 个块,尽管我的计算容量为 6.1(根据系统信息下的 GPU 设备选项卡),但会出现错误。 同样在系统信息下,它说 MAX_GRID_DIM_X 是 2147483647。在启动这么多块之前我需要更改一些设置或环境变量吗?还有哪些其他因素可能会限制我可以启动的块数?

【问题讨论】:

  • 确认您正在为 compute_30 或更高版本进行编译。旧 CUDA 工具包(9.x 之前)的默认编译器选项是 compute_20,其限制为 65535。

标签: cuda nvidia


【解决方案1】:

在启动这么多块之前,是否需要更改一些设置或环境变量?

没有。

还有哪些其他因素可能会限制我可以启动的区块数量?

编译设置。您必须选择支持 2^31-1 的目标编译架构。在 CUDA 9 上,默认编译架构是 3.0,它支持扩展的 1D 网格大小。在较旧的工具包上,默认值为 2.0 或更早版本,而这些不是。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-31
    • 2011-08-28
    • 1970-01-01
    • 2011-05-22
    • 2012-08-02
    • 1970-01-01
    • 2018-01-16
    相关资源
    最近更新 更多