Clustered launch 竟跑出 128 个 block:一个 CUDA 隐形坑

mike64_t · x · 2026-10-23

作者在测试 CUDA kernel 时发现异常输出:普通 launch 下 64 个 block 按预期运行,但启用 thread block clustered launch 并开启 device update 后,实际跑出了 128 个 block,而 gridDim.x 仍显示 64,且无任何报错。配以经典的「数学看不懂」meme 表达困惑。

后续推文给出定位结论:c[0][0x0c] 与 CTARASTERWIDTH 没有保持同步——即 clustered launch 场景下驱动填充的内核参数与光栅化宽度常量不一致,导致实际执行的 CTA 数量与预期不符。这是一个非常底层的 GPU 驱动/launch 配置坑,对做 CUDA 优化和 kernel 调试的人有参考价值:clustered launch 时不能只信 gridDim,要实际校验 block 执行数。

原文链接 →

「Fun」频道最新

更多「Fun」频道 AI 资讯 →