vLLM PD Serving 运行 Qwen3.8-2.4T 模型实现 5K TPS/GPU 和 180 gen tok/s/user
TL;DR
vLLM 对 Qwen3.8-2.4T 模型的 PD Serving 在高吞吐模式下达到了 每 GPU 5,000 总 token 吞吐量,在低延迟模式下达到了 每用户 180 生成 token/s,在 GB300 NVL72 集群上为该模型建立了完整的帕累托前沿(pareto frontier)。
公告概述
本篇博客详细介绍了 vLLM 如何在 GB300 NVL72 集群上使用 8K/1K 工作负载实现上述性能。文中提供了可复现的 srt‑slurm 配方、分步调优方法论,以及平衡总 token 吞吐量 (TPS) 与每用户交互性(每用户生成 TPS)的完整帕累托前沿。该方法论比原始数据更具价值,因为它适用于任何模型。
最大化吞吐量:并发与 KV‑Cache 限制
结论
每 GPU 的总 token 吞吐量主要受限于 KV‑cache 容量,而 KV‑cache 容量又由每个请求的 GDN 状态大小决定。
技术细节
- 模型架构:Qwen3.8-2.4T 拥有 92 层(69 层 GDN,23 层 Full‑Attn),每层包含 512 个专家的 MoE 模块。
- 权重占用:91 GiB 非专家权重,1,242 GiB 专家权重。
- KV‑cache 组成:
- Full‑Attn 状态:每 token 每层 2 KiB。
- GDN 状态(每个请求):4 MiB (SSM) + 120 KiB (conv) ≈ 4.216 MiB。
- 块大小设置:GDN 状态占主导地位,导致每个块可容纳 2,112 个 token(每个块 4.125 MiB)。
- GPU 内存基准:GB300 提供 279 GB;在扣除驱动程序、CUDA 上下文和 8 % 的安全预留后,剩余约 254 GiB 用于权重、激活值、CUDA 图和 KV‑cache。
- 峰值激活内存:按拓扑测量(例如,TP8 且 20 个序列使用 0.57 GiB,TP4DP4 且 272 个序列最多使用 2.24 GiB)。
- CUDA‑graph 预留:估算较为保守;实际使用量通常较低,但预留可防止 OOM。
- KV‑cache 可用性:在扣除非权重内存(约 20 GiB)后,剩余内存决定了可并发处理的请求数量。TP4DP4 拓扑提供了最多的 KV‑cache 空间,从而实现了最高的并发度。
Prefill(预填充)性能测量
结论
对于低并发场景,TP4DP2+EP 拓扑产生最佳的预填充吞吐量;在更高并发下,TP2DP4+EP 成为主导。
结果
预填充吞吐量是在 ISL/OSL = 8192/2 的条件下测量的。曲线显示了一个明显的交叉点,随着并发量增加,TP2DP4+EP 超过了 TP4DP2+EP。
Decode(解码)性能测量
结论
MTP(投机解码)显著提高了解码吞吐量,直到 KV‑cache 成为瓶颈;整体最佳解码拓扑是 TEP8 with MTP,其次是在极高并发下的 TP4DP4+EP。
结果
解码测试使用 ISL/OSL = 1/1000。启用带有三个投机 token 的 MTP 后,每 GPU 吞吐量有所提升,此后 TEP8 拓扑(带 MTP)处于领先地位,直到达到 KV‑cache 限制,之后 TP4DP4+EP 取得领先。
分离式帕累托前沿
结论
结合最优的预填充和解码配置,最终得出的帕累托前沿显示该模型实现了 每 GPU 5K 总 token 吞吐量 和 每用户 180 生成 token/s。
环境与可复现性
- 硬件:GB300 集群,NVLink72 互联。
- 工作负载:ISL = 8192,OSL = 1024,并发度 1–2560。
- 模型:来自 HuggingFace 的
Inferact/Qwen3.8-2.4T-A95B-NVFP4。 - 软件栈:
- vLLM Docker 镜像
vllm/vllm-openai:nightly-a9a17(版本v0.26.1rc1.dev1177+ga9a17e709)。 - Dynamo 1.2.0.dev20260526。
- srt‑slurm v1.0.98。
- AIPerf v0.12.0。
- vLLM Docker 镜像
- 配方:所有启动脚本均位于
srt‑slurm‑recipes仓库的recipes/multi-node/Qwen3.8/GB300/8k1k/vllm/disagg目录下。
准确性验证
所有配置均在 GSM8K 基准测试上进行了验证,全面达到 95 % 的准确率,证实了性能提升并未牺牲模型质量。
性能可视化
- 图 3 – 每个分离式配置的帕累托曲线(针对并发度的单独扫描)。
- 图 4 – 综合帕累托前沿,显示了总 TPS 与每用户生成速度之间的最优权衡。
对从业者的启示
结论
所介绍的调优工作流——估算 KV‑cache、测量激活值和 CUDA‑graph 开销,以及针对工作负载选择拓扑——使从业者能够在 vLLM 上为任何大规模模型复现前沿级的性能。
实践要点
- KV‑cache 大小是主要限制因素;准确计算每个请求的 GDN 状态以估算最大并发度。
- 预留足够的 GPU 内存(默认 8 % 安全余量)以应对 CUDA‑graph 估算误差。
- 根据 KV‑cache 余量选择解码拓扑:TP4DP4+EP 最大化缓存空间,而 TEP8 在缓存充足时表现优异。
- 为解码工作负载启用 MTP,以在 KV‑cache 饱和前提升吞吐量。
- 使用提供的 srt‑slurm 配方来复现确切环境,并在您自己的集群上验证结果。
致谢
感谢 Artem Perevedentsev (NVIDIA)、Vadim Gimpelson (NVIDIA)、Xin Li (NVIDIA) 以及更广泛的 vLLM 社区的贡献与审阅。
Sources
- OriginalPD Serving of Qwen3.8-2.4T