SGLang 0.5.6 在 B200 DeepSeek R1 FP4 上的表现:低并发下最高提升 1.8 倍

针对 DeepSeek V3 的分段 CUDA graph、统一事件循环和 JIT 内核将 8k/1k 吞吐量从 508 提升至 907 tok/s/GPU,使用相同的 16 GPU B200 资源池

SemiAnalysis··6 分钟阅读·阅读英文原文·benchmarkinferencegpunvidiab200deepseeksglangfp4
本页目录 (click to expand)

B200 运行 SGLang 0.5.6 处理 DeepSeek R1 NVFP4 在 8k/1k 工作负载并发数 4 下达到 907 tok/s/GPU,相比 0.5.5 的 508 tok/s/GPU 提升了 1.79 倍。两次测试使用相同的 16 GPU 资源池,TP 4 / EP 4 配置。唯一的变化是 Docker 镜像从 lmsysorg/sglang:v0.5.5-cu129-amd64 更新为 lmsysorg/sglang:v0.5.6-cu129-amd64。

SGLang 0.5.6 于 2025-12-03 发布,InferenceX 基准测试在 28 天后的 2025-12-31(镜像更新当天)捕捉到了完整的性能提升效果。这正是我们构建 InferenceX 自动化基准测试循环的原因 — 在硬件不变的情况下,第一时间捕捉软件驱动的性能变化。

性能提升在低并发下最为显著。在并发数 4 和 8 时,解码循环的每步耗时中有相当比例花在 Python 调度器和内核分发代码上而非矩阵乘法中,因此 0.5.6 的调度器和计算图优化效果最为直接。在高并发下 tensor core 接近饱和,较小的吞吐量提升(并发数 64 为 1.03 倍,并发数 128 为 1.16 倍)来自重构后的注意力内核路径。

SGLang 0.5.6 中的关键更新

SGLang 0.5.6 于 2025-12-03 发布。三项更新与低并发吞吐量提升直接相关。分段 CUDA graph 支持扩展到了 DeepSeek V3 和 MLA 注意力路径,减少了构建和回放计算图的每步 Python 开销。事件循环在 PD 分离式、重叠式和 DP 注意力服务模式间统一,降低了内部循环开销。引入了 JIT 内核,减少了启动成本并允许内核编译针对运行时观察到的形状进行特化。

另外三项 0.5.6 更新影响注意力内核路径。MHA 和 MLA KV 缓存重构以支持 FP4。FlashInfer TRTLLM GEN MHA 路径重新启用。FlashInfer 更新至 0.5.2。这些在高并发下更为重要,此时 KV 缓存较大且注意力计算是主要开销。并发数 128 下的 1.16 倍提升即来自此路径。

基准测试数据

所有数据均为 DeepSeek R1 NVFP4,ISL 8192 / OSL 1024,来自 InferenceX。0.5.5 数据来自 2025-12-15 的测试,镜像由 InferenceX PR #204 设置,该 PR 于 2025-11-10 将 B200 SGLang 配置从 v0.5.3rc1-cu129-b200 升级至 v0.5.5-cu129-amd64。0.5.6 数据来自 2025-12-31 的测试,由 InferenceX PR #276 触发,该 PR 将 Docker 镜像更新至 v0.5.6-cu129-amd64,无其他配置更改。

B200 SGLang,DeepSeek R1 NVFP4,TP 4 / EP 4 解码,16 GPU 非分离式资源池。该方案遵循 SGLang DeepSeek V3/R1 部署指南

版本并发数tok/s/GPUTPOT (ms)tok/s/user提升
0.5.545089.2108.4基准
0.5.5890311.686.5基准
0.5.5161,47115.763.8基准
0.5.5322,30222.245.1基准
0.5.5643,32333.729.6基准
0.5.51284,43054.918.2基准
0.5.649079.2108.51.79x
0.5.681,43711.686.01.59x
0.5.6161,50015.564.61.02x
0.5.6323,06322.045.61.33x
0.5.6643,41932.930.41.03x
0.5.61285,14553.718.61.16x

加粗行是本文的核心数据:0.5.6 在并发数 4 下达到 907 tok/s/GPU,相比 0.5.5 的 508 提升 1.79 倍,硬件和方案完全相同。在匹配并发数下,两个版本的交互性几乎一致。各并发数下 TPOT 在四舍五入范围内不变。0.5.6 以相同的每用户 token 速率服务了更多用户。

DeepSeek R1 NVFP4 8k/1k B200 SGLang 在 TP 4 EP 4 下的每 GPU 吞吐量,SGLang 0.5.5 vs 0.5.6 跨并发数扫描
B200 DeepSeek R1 NVFP4 8k/1k,SGLang 0.5.5(2025-12-15)vs SGLang 0.5.6(2025-12-31)跨并发数的每 GPU 吞吐量。

实时图表,预筛选为 0.5.5 和 0.5.6 两次测试中 B200 SGLang 上的 DeepSeek R1。

各项优化在曲线上的作用位置

TP 4 / EP 4 配置下 DeepSeek R1 NVFP4 的解码有固定的每步开销。内核启动、Python 调度器处理和计算图构建是主要贡献项,与注意力和 MoE GEMM 计算并列。在并发数 4 时,GEMM 规模较小,固定开销占步骤耗时的比例显著。减少固定开销直接加速了每步执行,这就是最大提升比(并发数 4 为 1.79 倍,并发数 8 为 1.59 倍)出现在低并发的原因。分段 CUDA graph 和 JIT 内核是相关的发布项。

在并发数 128 时,KV 缓存较大,注意力计算是每步的主要开销。重构后的 MHA 和 MLA KV 缓存对 FP4 的支持以及重新启用的 FlashInfer TRTLLM GEN MHA 路径在并发数 128 下产生了 1.16 倍的提升,尽管调度器开销的减少在此并发量级已趋于平坦。在中等并发数(16、32、64)下,两种效果均不占主导,吞吐量提升较小且不太稳定(1.02 倍、1.33 倍、1.03 倍)。

本文由英文原文翻译而来,如有歧义以英文版为准。所有文章版权归 © SemiAnalysis 所有,保留所有权利。覆盖应用源代码的 AGPL-3.0 许可证不适用于文章内容。