[Bug]: [Usage]: RTX PRO 5000 (SM120) deadlocks at 3-4W during vLLM 0.32.0 startup with 70B NVFP4 model, even with –enforce-eager

vLLM 0.32.0 在 RTX PRO 5000(SM120)上加载 70B NVFP4 模型启动时,GPU 会卡在 3-4W 低功耗状态并死锁;Issue 最终定位为 Hugging Face Xet 下载器( xet_get )死锁,而不是 SM120 内核或推理引擎问题,优先排查模型下载链

快速结论:vLLM 0.32.0 在 RTX PRO 5000(SM120)上加载 70B NVFP4 模型启动时,GPU 会卡在 3-4W 低功耗状态并死锁;Issue 最终定位为 Hugging Face Xet 下载器(xet_get)死锁,而不是 SM120 内核或推理引擎问题,优先排查模型下载链路。

适用环境:Ubuntu 26.04.1 LTS(x86_64)、Python 3.14.4、PyTorch 2.13.0+cu132(CUDA 13.2)、vLLM 0.32.0、flashinfer-python 0.7.0.post1、transformers 5.19.0、NVIDIA RTX PRO 5000 Blackwell(SM120)加 T1000、Intel i9-14900K。

最快修复方案:设置 export HF_HUB_DISABLE_XET=1,先用 hf download 或 huggingface-cli download 手动下载模型,再让 vLLM 指向本地目录路径而不是 HF 仓库名启动。

注意事项:该方案只绕开下载层死锁,不涉及 SM120 内核修复;首次启动时 FlashInfer autotuner 可能耗时约 9 分钟,属正常现象,之后会缓存配置。Issue 中的成功示例使用 70B MXFP8 模型、--quantization compressed-tensors、--cpu-offload-gb 30 等参数,属于该用户 48GB 显存下的配置,不建议直接照搬,需按自己的模型和显存调整。

问题场景

用户在 Ubuntu 26.04.1 上,使用 vLLM 0.32.0 在 NVIDIA RTX PRO 5000 Blackwell(SM120)上启动 70B NVFP4 模型服务。启动阶段 GPU 功耗停滞在 3-4W,进程无响应,即使加上 --enforce-eager 也仍然死锁。collect_env 中 CUDA Archs: Not Set,用户设置了 FLASHINFER_CUDA_ARCH_LIST=12.0f 但未被 vLLM 识别;同时 TORCHINDUCTOR_COMPILE_THREADS=1 把编译限制为单线程,最初怀疑与启动死锁有关。

报错原文

[Bug]: [Usage]: RTX PRO 5000 (SM120) deadlocks at 3-4W during vLLM 0.32.0 startup with 70B NVFP4 model, even with --enforce-eager

原因分析

Issue 最终确认:启动卡死并非 SM120 内核问题,也非 vLLM 推理引擎问题,而是 Hugging Face Xet 下载器(xet_get)中的死锁。vLLM 启动时需要通过 HF 拉取模型权重,Xet 下载路径卡住后整个启动流程无法推进,表现为 GPU 长时间处于 3-4W 空闲功耗。正文中提到的 CUDA Archs: Not Set 和单线程编译可能会干扰初判,但它们并非本次死锁的根因。

环境排查

  • 确认 vLLM 版本为 0.32.0,并核对是否命中该 Issue 的启动场景。
  • 确认是否设置了 HF_HUB_DISABLE_XET=1,是否仍让 vLLM 直接以 HF 仓库名拉取模型。
  • 确认 PyTorch 版本 2.13.0+cu132 与 CUDA 13.2 环境一致。
  • 确认显卡为 RTX PRO 5000 Blackwell(SM120),collect_env 中 CUDA Archs 的实际取值。
  • 检查 FLASHINFER_CUDA_ARCH_LIST 是否被 vLLM 识别,以及 TORCHINDUCTOR_COMPILE_THREADS 的取值设置。
  • 观察启动时 GPU 功耗是否长期停留在 3-4W,并检查是否有 HF 下载相关进程阻塞。

解决步骤

  1. 设置环境变量,关闭 Xet 下载通道:export HF_HUB_DISABLE_XET=1。
  2. 在启动 vLLM 前,手动预下载模型:使用 hf download 或 huggingface-cli download 下载所需模型到本地。
  3. 启动 vLLM 时,模型参数指向本地目录路径(如 /path/to/model),不要继续使用 HF 仓库名。
  4. 按需补充启动参数。Issue 中的成功示例为:vllm serve /path/to/model --quantization compressed-tensors --max-model-len 6144 --gpu-memory-utilization 0.95 --cpu-offload-gb 30。其中量化方式、上下文长度、显存利用率和 CPU offload 需根据实际模型和硬件调整。
  5. 首次启动时耐心等待 FlashInfer autotuner 完成(约 9 分钟),不要因短暂无响应而中断。

验证方法

服务启动后,GPU 不应再长时间停留在 3-4W 低功耗死锁状态;日志中应出现服务器成功启动的信息。Issue 报告用户在 48GB RTX PRO 5000 上成功服务 70B 模型,且 FlashInfer 配置完成缓存。重新启动时可观察 autotuner 是否复用缓存、启动时间是否缩短。

参考来源

vllm-project/vllm #63536

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 30003

发表回复

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