AREX Feed Article
vLLM 在 GB200 NVL72 上把 Qwen3.5 推到单 GPU 25K TPS,完整配方已公开
vLLM 官方技术博客在 8 月 6 日公布了一项推理性能成绩:在 GB200 NVL72 系统上以分离式 prefill/decode 架构服务 Qwen3.5-397B-A17B-NVFP4,单 GPU 总吞吐量达到 25,000 tokens/s。
所有配置以可复现的 recipe 文件形式发布在 srt-slurm-recipes 仓库,Docker 镜像版本、Dynamo 版本、每条命令行参数均可追溯。
Qwen3.8 发布前,NVIDIA 团队先把推理栈跑通了
在推文中写道:"As we prepare for Qwen 3.8 drop, @NVIDIAAI team led the optimizations in vLLM for Qwen 3.5, setting an exceptional foundation for production serving."(在准备 Qwen3.8 发布的过程中,NVIDIA 团队主导了 vLLM 中针对 Qwen3.5 的优化工作,为生产级服务打下了坚实基础。)
推文获得了 407 个赞和 39 次转发。vLLM 团队在推文中将这次优化定位为 Qwen3.8 的铺垫——Qwen3.5 的混合架构路径跑通之后,Qwen3.8 的推理栈已经有了现成的起点。
的致谢名单列出了十位贡献者,分别来自 NVIDIA、Inferact、Mistral、Red Hat 和阿里巴巴。博客在引言中称,社区持续贡献使 Qwen3.5 的分离式服务路径"已经成熟"。
Qwen3.5 混合了 Full Attention 和 GDN,状态怎么传?
Qwen3.5 发布于 2026 年初,vLLM 博客称它"remains one of the most widely used models among customers"(仍然是客户中使用最广泛的模型之一)。它的架构混合了标准 Full Attention 层和 Gated Delta Network(GDN)层,给分离式服务制造了两个工程难题。
第一个难题在计算侧:GDN 层在 Blackwell GPU 上的 prefill 内核性能不足,旧的 FLA/Triton 实现无法充分利用新硬件。
第二个难题在传输侧:prefill 节点必须把两类结构完全不同的状态——全注意力 KV cache 和 Mamba 风格的 SSM 状态——同时传给 decode 节点,传统 KV 传输机制只认识其中一种。
这两项挑战在社区过去数月的迭代中被逐一解决,最终汇聚成这次 25K TPS 的基准成绩。
5.92× 内核加速、1650 描述符、竞态修复
三项关键优化共同撑起了 25K 的单 GPU 吞吐。
GDN prefill 内核重写
FlashInfer 社区提交了 Blackwell 优化的 GDN prefill 内核(PR #3001),vLLM 随后通过 PR #40717 在 prefill 侧启用。
在 8×B200 系统上跑 Qwen3.5-397B-A17B-NVFP4,微基准测得 GDN 内核性能最高提升 5.92 倍,端到端 prefill 吞吐提升 1.13 倍,平均 TTFT 降低 12%。在支持的 Blackwell 配置上,vLLM 会自动选择 FlashInfer 路径。
混合缓存与 GDN 状态传输
核心 PR #36687 引入了双描述符视图和同构 TP 支持,prefill 和 decode 节点可通过 NIXL 同时传输两种状态。
HMA 逻辑块到物理内存的映射改进将传输描述符从 4,284 个压缩到 1,650 个,吞吐提升约 7%。Qwen3.5 的 GDN 层适配在 PR #41869 中完成。
无竞争异步调度
两个补丁 PR #48481 和 #45357 修复了 KV 块传输中的竞态条件。此前启用 async scheduling 会导致准确率崩溃至零;修复后,异步调度成为跨越 25K 门槛的关键开关。
测试环境为 GB200 集群,NVLink72 互联,输入/输出序列长度 8192/1024。Prefill 侧使用 4 到 8 个 DEP2 端点,decode 侧固定一个 DEP8 端点。并发量从 64 扫到 5120,所有五个配置在 GSM8K 上的准确率均为 88%。
不是一条 benchmark 截图,是一组可复现的配方文件
vLLM 博客公布的配方覆盖了五个基础配置(4×DEP2 到 8×DEP2),每个配置附带三个衍生变体:基准吞吐扫描、GSM8K 精度验证、高并发单点测量。每条 recipe 通过一行 srtctl run --file <recipe>.yaml 即可启动。
关键配置参数值得拆开来看。--async-scheduling 是核心开关,前提是构建已包含前述竞态修复。VLLM_SSM_CONV_STATE_LAYOUT=DS 强制要求,否则 SSM 状态传输无法工作。--mamba-ssm-cache-dtype bfloat16 显著增加 decode 端 KV cache 有效容量。--language-model-only 关闭多模态输入,同时解锁融合 QK-norm + RoPE + gate 路径。Prefill 端的 --max-num-batched-tokens 16384 在端点较少时贡献了约 +8% 的 GPU 总吞吐。
博客还列出了一组运维经验。Dynamo 默认日志量极大,设置 DYN_LOG=error 才能让日志文件可读。--api-server-count 1 可以恢复 vLLM 默认被禁用的统计输出——博客写道,没有这些指标,"we would hardly have identified the bottlenecks of the individual configurations"。
25K TPS 的工程量,Qwen3.8 可以直接继承
vLLM 团队在博客结尾表示,下一阶段将从最大化单 GPU 总吞吐转向优化单用户 Generation TPS,这意味着从 DEP 拓扑向 TEP 或纯 TP 拓扑迁移,以及对更多 GPU 的利用。
Qwen3.5-397B 是客户用得最多的模型之一,而 Qwen3.8 发布在即。博客呈现的每一项优化——内核重写、状态传输、异步调度——连同完整的复现配方,已经构成 Qwen3.8 上线时可以直接继承的推理栈。