[Bug] All models hang on GB300 (SM103) with FlashInfer 0.6.7

这个报错发生在 vLLM 搭配 FlashInfer 0.6.7 在 GB300(SM103,计算能力 10.3)上执行大批量推理时,模型会无限期挂起。优先排查是否启用了 TRTLLM attention,并将其回退到 FlashInfer 默认 attention 后端。

快速结论:这个报错发生在 vLLM 搭配 FlashInfer 0.6.7 在 GB300(SM103,计算能力 10.3)上执行大批量推理时,模型会无限期挂起。优先排查是否启用了 TRTLLM attention,并将其回退到 FlashInfer 默认 attention 后端。

适用环境:vLLM(含 0.27.1 版本)、FlashInfer 0.6.7、NVIDIA GB300(SM103 / CC 10.3)、GB200(SM100 / CC 10.0)不受影响。

最快修复方案:暂无确认的一步修复方案。可优先尝试将 --attention-config.use_trtllm_attention 设为 0,强制使用 FlashInfer 默认 attention 后端,经验证可解决挂起问题。

注意事项:该方案依赖限制 supports_trtllm_attention() 只匹配精确 SM100 的补丁(PR #38730),目前尚在修复流程中;降低性能或改变 attention 路径,需在目标硬件上重新做正确性和吞吐验证。

问题场景

用户在使用 vLLM 的 bench throughput 命令进行大批量(768 prompts)推理时触发挂起。问题在 GB300(SM103)上复现,涉及多种模型格式(FP8、FP4、BF16),包括 Qwen3-8B-FP8、Nemotron-Nano-9B-v2-FP8 和 Qwen2.5-7B。另有一位用户报告在 vLLM 0.27.1 + FlashInfer 0.6.7 上服务 30B MoE 模型(NVIDIA-Nemotron-3-Nano-30B-A3B-BF16)时,首次推理请求即挂起。

报错原文

[Bug] All models hang on GB300 (SM103) with FlashInfer 0.6.7

Hangs at "Processed prompts: 0%"
GPU shows 99% SM utilization and 0% memory bandwidth

The process hangs indefinitely trying to download MoE batched GEMM cubins for sm_103 from NVIDIA's kernel CDN — the cubins don't exist yet.

原因分析

可能原因是 FlashInfer 0.6.6 升级到 0.6.7 后,TRTLLM attention 内核不再与 SM103 向前兼容。vLLM 的 supports_trtllm_attention() 判断逻辑将整个 CC 10.x 家族视为同一架构,导致 SM103 被错误地分配到 TRTLLM attention 路径。该路径尝试从 NVIDIA 内核 CDN 下载针对 sm_103 的 MoE 批量 GEMM cubins,但这些 cubins 尚不存在,下载过程永久挂起。GPU 显示高 SM 利用率但零内存带宽,符合卡在内核下载/加载阶段的特征。GB200(SM100)不受影响,因为 sm_100 的 cubins 已可用。

环境排查

  • 确认 GPU 是否为 GB300(SM103,CC 10.3),GB200(SM100)不受影响。
  • 确认 vLLM 版本(Issue 中确认 0.27.1 可复现)和 FlashInfer 版本是否为 0.6.7。
  • 检查是否启用了 TRTLLM attention(默认启用)--attention-config.use_trtllm_attention 的值。
  • 确认是否使用 MoE 模型(如 Nemotron 系列),因为 cubin 下载挂起与 MoE 批量 GEMM 相关。
  • 检查多卡环境下 TP 尺寸是否小于 GPU 总数(该场景下更容易触发)。

解决步骤

  1. 最直接的方式:在启动命令中加入 --attention-config.use_trtllm_attention=0,强制使用 FlashInfer 默认 attention 后端,验证是否解决挂起。
  2. 如果无法添加该参数(例如使用旧版本),检查当前 vLLM 的 supports_trtllm_attention() 是否符合已知问题,考虑临时更改该函数,使其只在精确 SM100(CC 10.0)时返回 True,而不是整个 CC 10.x 家族。经验证,SM103 回退到 FlashInfer 默认后端后工作正常。
  3. 关注 FlashInfer 侧修复进展(flashinfer-ai/flashinfer#2939),待修复发布后升级 FlashInfer。
  4. 对于 MoE 模型服务器场景,如果时间紧迫,可考虑回退到 transformers 主分支(5.16.0.dev0)使用原生 NemotronH 支持做评估,但这不适用于生产环境。

验证方法

在 GB300(SM103)上重新运行原先挂起的吞吐基准或推理请求,确认不再卡在 “Processed prompts: 0%” 且 GPU 内存带宽恢复正常。同时建议用小批量(如 4 prompts)做正确性验证,确认 attention 回退没有引入精度问题。

参考来源

vllm-project/vllm #38729

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 18929

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注