vLLM 新增对 NVIDIA Vera Rubin NVL72 的支持,吞吐量提升 7.8 倍

TL;DR

vLLM 宣布正式支持 NVIDIA Vera Rubin NVL72 GPU,与上一代 GB200 NVL72 相比,每 GPU 推理吞吐量最高提升 7.8 倍,并在 MLPerf 上实现最高 3.7 倍的视觉语言模型(VLM)吞吐量提升。


Vera Rubin NVL72 概览

  • 计算优势 – NVL72 的 NVFP4 推理 FLOPS 约为 GB200 NVL72 的 5 倍。
  • 内存带宽 – Rubin 上的 HBM4 带宽是 GB200 的 HBM3e 的 2.4 倍。
  • GPU 间网络 – 第六代 NVLink 的带宽比 Blackwell 一代高出 1.7 倍,降低了集合通信延迟。
  • Softmax 加速 – 指数吞吐量在 FP32 下快 2 倍,在 BF16/FP16 下快 4 倍,有助于注意力机制跟上更快的 GEMM 内核。

这些硬件改进专为智能体 AI 工作负载而设计,并为 vLLM 报告的性能提升奠定了基础。


Day-0 兼容性

  • Blackwell 系列内核 – Rubin 是 Blackwell 衍生架构(SM107)。vLLM 现有的 Blackwell 内核(面向 SM100f)无需修改即可在 Rubin 上运行。
  • 容器可用性 – 使用 CUDA 13.4 和 PyTorch 2.15 构建的每日 Docker 镜像已发布为 vllm/vllm-openai:cu134-nightly,可直接拉取用于 Rubin 部署。
  • 模型覆盖 – 开箱即用的支持现在包括 DeepSeek、Kimi、GLM、MiniMax 和其他社区模型。

Rubin 调优内核

vLLM 通过 FlashInfer 0.7.0 及其自身分支集成了多个 Rubin 专用内核:

  • 针对 Rubin 张量核心指令调优的 Attention、GEMM 和 MoE 内核。
  • 针对 Rubin 指数运算优化的 MiniMax 稀疏注意力(MSA)预填充内核。
  • 用于注意力和 MSA 的 FP8 内核,利用 Rubin 的高吞吐 FP8 路径。

这些内核已上游到 FlashInfer、MSA 和 Humming 等库中,确保更广泛的生态系统受益。


局部性感知的混合专家(MoE)

  • CUDA 13.4 局部性域 允许 SM 从最近的 HBM 区域读取权重,减少跨域流量。
  • Split-N 策略 将 MoE 权重矩阵按列分片,每个分片分配到不同的局部性域。
  • 性能影响 – 在 MiniMax M3 MoE 模型上的早期实验显示,启用局部性域后,小 token 解码平均加速 1.2 倍,即使在默认模式下仅激活 212 个 SM 中的 200 个也是如此。回填模式可恢复全部 SM 利用率,并带来类似的收益。

这些结果表明,通过软件层面的内存局部性优化,可以有效利用 Rubin 增加的内存带宽。


基准测试结果

AgentX(SemiAnalysis)– LLM 吞吐量

  • 每 GPU 吞吐量 – vLLM 在 Rubin NVL72 上,在匹配交互性的情况下,吞吐量是 GB200 NVL72 的 7.84 倍。
  • TPS 受限场景 – 在 150 TPS 限制下,Rubin 的吞吐量高出 5.18 倍。

MLPerf Inference v6.1 – 视觉语言模型

  • 模型 – Qwen3-VL-235B-A22B,通过 vLLM(后端)和 Dynamo(路由器)提供服务。
  • 吞吐量提升 – 在离线、服务器和交互模式下,Rubin NVL72 的吞吐量比 GB300 NVL72 最高提升 3.7 倍。
  • 参考 – 详细结果已发布在 NVIDIA 关于 Rubin MLPerf 性能的博客文章中。

这些早期数据证实,Rubin 的架构升级在纯文本和多模态工作负载中均能转化为显著的现实世界推理加速。


路线图与未来优化

vLLM 社区计划采取多项后续步骤,进一步挖掘 Rubin 的能力:

  • 集成 FlashInfer 的 sm107 MegaMoE 内核。
  • 全面启用所有 MoE 层的局部性域。
  • 使用 PDL 和 Lamport Sync 重叠内核以隐藏延迟。
  • 为延迟敏感型服务开发巨型内核。
  • 为 Kimi K3 优化 KDA/MLA 内核,并为 DeepSeek-V4.1-Flash 优化 Rubin 专用的 CSA/HCA 内核。
  • 完成 Rubin 专用的 MSA 解码内核和通过 FlashInfer 实现的 CFT 计数写入 MoE 全对全 内核。

NVIDIA、Inferact、Red Hat 以及更广泛的 vLLM 社区之间的持续合作将推动这些改进。


快速开始

  1. 拉取 Rubin 兼容的每日镜像:
    docker pull vllm/vllm-openai:cu134-nightly
    
  2. 使用适当的后端标志启动 vLLM(例如,--linear-backend flashinfer_cutedsl、--moe-backend flashinfer_cutedsl)。
  3. 如果需要完整的 SM 利用率,通过设置 cudaDevSmResourceGroupBackfill=1 启用局部性域。

仓库中 Rubin 支持的 PR 引用包括 #55953、#53443、#54640、#56545 和 #59288。


致谢

该版本反映了 NVIDIA、Inferact、Red Hat 和 vLLM 社区 的共同努力。特别感谢提供早期硬件访问权限、贡献 Rubin 专用内核调优以及维护每日 Docker 构建的工程师们。


附录:内核配置速查表

内核 启用标志 备注
Dense NVFP4 / MXFP4 GEMM --linear-backend flashinfer_cutedsl(NVFP4)或 flashinfer_cutlass(MXFP4) 匹配检查点时的默认设置
NVFP4 MoE --moe-backend flashinfer_cutedsl
批量专家格式 MoE(W4A4) `--enable-expert-parallel --data-parallel-size N --all2all-backend deepep_low_latency nixl_ep`
FP8 BMM(静态每张量) 通过 FlashInfer 自动调优
FP8 注意力(TRT-LLM) --kv-cache-dtype fp8 + `--attention-backend FLASHINFER FLASHINFER_MLA`
FP8 MSA 预填充 --attention-config.minimax_m3_msa_decode_backend=cutlass

这些标志暴露了 Rubin 优化的路径,可实现上述性能提升。

Sources