Prhub

#33109 [Docs] Add verified H200 and B200 DeepSeek-V4 Flash Official results

原始 PR 作者 JustinTong0323 合并时间 2026-08-01 16:05 文件变更 3 提交数 3 评论 6 代码增减 +74 / -12

执行摘要

发布 H200/B200 验证结果,修正部署参数

PR body 明确说明这是 '#33083 的 follow up':上一版只发布了 Flash Official (0731) 配方与 GB300 验证,H200/B200 的 cell 仍是 verified: false。同时实测暴露了默认内存参数不可用:H200 上 FlashInfer MoE workspace 需要 1.34 GiB 但只剩 1.06 GiB,B200 默认 mem-fraction-static 0.944 在 draft CUDA-graph 捕获阶段 632 MiB vs 371 MiB 触发 OOM,因此必须把验证过的内存预留参数固化进配方。评论区 Swipe4057 询问是否对比 FP8 checkpoint,作者澄清本 PR 针对昨日官方发布的 deepseek-ai/DeepSeek-V4-Flash-0731 版本。

值得快速浏览而非精读:重点看 deepseek-v4.jsx 中 mem-fraction-static 0.88/0.90 的取舍逻辑与 B200 从 TP4/DP4 切到 TP8/DP8 的实测依据,以及 benchmarks.jsx 与配方 cell 的 match 元组关联方式——这是 SGLang cookbook 中"数据驱动配方"的代表性做法,后续模型文档维护可复用。无需关注运行时实现细节。

讨论亮点

PR 内没有行级 review 评论,zijiexia 以空 body 批准合并。主要讨论发生在 Issue 评论区:Swipe4057 询问 "Is it possible to add a comparison with the checkpoint https://huggingface.co/sgl-project/DeepSeek-V4-Flash-FP8 on H200?";JustinTong0323 回应 "This PR is to add the bench result for Flash official checkpoint released yesterday: https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash-0731",即明确本 PR 的数据范围限定为官方 0731 版本,不覆盖 FP8 变体对比。另有 gemini-code-assist 机器人的服务下线提示与 mintlify 预览部署提示,无实质技术内容。

实现拆解

  1. 压测数据入档:在 docs_new/src/snippets/configs/deepseek-ai/deepseek-v4-benchmarks.jsx 的 benchmarks 数组中,为 B200 与 H200 的 flash-official + FP4 三个策略(low-latency / balanced / high-throughput)各新增一个 cell,共 6 个 cell、12 条速度记录;每条记录按 match 元组(hw/variant/quant/strategy/nodes)与 deepseek-v4.jsx 的部署 cell 一一对应,数据字段为 ttft_ms、tpot_ms、tokens_per_sec_per_gpu,版本标注为 sglang v0.5.16。原有的 flash (非 official) v0.5.15 记录全部保留,便于新旧配方对照。
  2. 部署配方更新:在 docs_new/src/snippets/configs/deepseek-ai/deepseek-v4.jsx 中把 6 个 flash-official cell 的 verified 从 false 改为 true;B200 三个策略从 --tp 4 / --dp 4 切换为实测的 --tp 8 / --dp 8(与 8 卡 NV18 硬件一致);为 B200 low-latency 增加 --mem-fraction-static 0.90(规避 draft CUDA-graph 捕获 OOM),为 H200 balanced 增加 --mem-fraction-static 0.88(规避 FlashInfer MoE workspace OOM)。低延迟(low-latency)与高吞吐(high-throughput)cell 未加内存参数说明其默认值在此环境下可用。
  3. 手册一致性更新:docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V4.mdx 的模型表格中,Flash Official (0731) 的验证范围描述从 "verified for low-latency serving on 4×GB300" 扩展为 "verified on 8×B200, 4×GB300, and 4×H200",与新增的 cell 状态保持一致。
  4. 质量校验配套:作者通过 pre-commit、esbuild 语法检查(两个 JSX 文件)、npx mint validate、npx mint broken-links、矩阵断言(三个 H200/B200 flash-official cell 均为 verified 且 B200 的 TP8/DP8 与三条压测记录匹配)以及 git diff --check 完成自检;CI 侧 PR Test (Base) 通过,PR Test (Extra) 失败,原因未在 PR 内说明。
文件 模块 状态 重要度
docs_new/src/snippets/configs/deepseek-ai/deepseek-v4.jsx 部署配置 modified 5.63
docs_new/src/snippets/configs/deepseek-ai/deepseek-v4-benchmarks.jsx 压测数据 modified 5.84
docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V4.mdx 模型手册 modified 1.74

关键源码片段

docs_new/src/snippets/configs/deepseek-ai/deepseek-v4.jsx configuration

部署配方核心:6 个 flash-official cell 从 verified: false 改为 true,B200 三个策略从 TP4/DP4 切换为实测的 TP8/DP8,并为 B200 low-latency 与 H200 balanced 新增 --mem-fraction-static 0.90/0.88。这些 flags 会被 cookbook 页面直接渲染为用户可复制的启动命令,是本 PR 对用户行为影响最大的文件。

// DeepSeek-V4 Flash Official 部署配方 cell(docs_new/src/snippets/configs/deepseek-ai/deepseek-v4.jsx)
// 每个 cell 通过 match 元组(硬件 / 变体 / 量化 / 策略 / 节点数)与 benchmarks.jsx 的压测记录一一对应。
// verified: true 表示该组合已在目标硬件上跑通并留有正式基准数据,配方可直接照抄到部署命令。{
  // B200 低延迟:实测 TP8 + FlashInfer MXFP4 + DSpark
  match: { hw: "b200", variant: "flash-official", quant: "fp4", strategy: "low-latency", nodes: "single" },
  verified: true,
  env: [],
  flags: [
    "--trust-remote-code",
    "--model-path {{MODEL_NAME}}",
    "--tp 8", // 8 卡 B200 实测配置,替代原 TP4
    "--moe-runner-backend flashinfer_mxfp4",
    "--speculative-algorithm DSPARK",
    "--chunked-prefill-size 4096",
    "--disable-flashinfer-autotune",
    "--swa-full-tokens-ratio 0.1",
    "--mem-fraction-static 0.90", // 默认 0.944 在 draft CUDA-graph 捕获阶段 OOM(需 632 MiB、仅剩 371 MiB)
    "--host {{HOST_IP}}",
    "--port {{PORT}}",
  ],
},{
  // H200 均衡:实测 TP4 + FlashInfer MXFP4 + DSpark
  match: { hw: "h200", variant: "flash-official", quant: "fp4", strategy: "balanced", nodes: "single" },
  verified: true,
  env: [],
  flags: [
    "--trust-remote-code",
    "--model-path {{MODEL_NAME}}",
    "--tp 4",
    "--moe-runner-backend flashinfer_mxfp4",
    "--speculative-algorithm DSPARK",
    "--mem-fraction-static 0.88", // 默认静态内存下 FlashInfer MoE workspace OOM(需 1.34 GiB、仅剩 1.06 GiB)
    "--host {{HOST_IP}}",
    "--port {{PORT}}",
  ],
},
docs_new/src/snippets/configs/deepseek-ai/deepseek-v4-benchmarks.jsx configuration

承载本 PR 的 12 条 v0.5.16 实测压测记录:B200 与 H200 的 flash-official FP4 三策略各 2 个并发点(TTFT/TPOT/tok per s per GPU)。数据按 match 元组与 deepseek-v4.jsx 的 cell 强关联,是 verified 状态的数据支撑。

// DeepSeek-V4 per-cell benchmark numbers, keyed by the same `match` tuple as
// deepseek-v4.jsx cells. See _deployment.jsx for the speed/accuracy schema.
// 新增记录统一标注 sglang v0.5.16,tokens_per_sec_per_gpu 为总吞吐(输入 + 输出)。export const benchmarks = [
  // ====================================================================
  // B200 + FP4 Flash Official(v0.5.16 实测,8 卡 TP8)
  // ====================================================================
  {
    match: { hw: "b200", variant: "flash-official", quant: "fp4", strategy: "low-latency", nodes: "single" },
    sglang_version: "0.5.16",
    speed: [
      { workload: { dataset: "random", isl: 8192, osl: 1024, max_concurrency: 1 },
        ttft_ms: 218.90, tpot_ms: 1.28, tokens_per_sec_per_gpu: 481 },
      { workload: { dataset: "random", isl: 8192, osl: 1024, max_concurrency: 16 },
        ttft_ms: 189.89, tpot_ms: 3.38, tokens_per_sec_per_gpu: 3383 },
    ],
  },
  {
    // 高吞吐策略:MegaMoE target-only,无 DSpark
    match: { hw: "b200", variant: "flash-official", quant: "fp4", strategy: "high-throughput", nodes: "single" },
    sglang_version: "0.5.16",
    speed: [
      { workload: { dataset: "random", isl: 8192, osl: 1024, max_concurrency: 1024 },
        ttft_ms: 74853.51, tpot_ms: 51.72, tokens_per_sec_per_gpu: 5464 },
      { workload: { dataset: "random", isl: 8192, osl: 1024, max_concurrency: 4096 },
        ttft_ms: 216241.01, tpot_ms: 51.80, tokens_per_sec_per_gpu: 5301 },
    ],
  },
  // ... H200 三条 flash-official 记录结构相同,tp 4、mem-fraction-static 0.88 见 deepseek-v4.jsx
];

评论区精华

是否补充 FP8 checkpoint 在 H200 上的对比数据 question

Swipe4057 在 Issue 评论区询问能否加入 sgl-project/DeepSeek-V4-Flash-FP8 checkpoint 在 H200 上的对比。

结论:JustinTong0323 回应:本 PR 发布的是官方 0731 版本(deepseek-ai/DeepSeek-V4-Flash-0731,昨日发布)的验证与压测结果,不包含 FP8 变体对比。 · 已答复

风险与影响

  1. 参数与实测环境强绑定:mem-fraction-static 0.88/0.90 是在 4×H200(driver 580.159.03)与 8×B200(driver 580.126.09、NV18 互联)上标定的,其他驱动版本、GPU 组合(如 8×H200、4×B200)或 CUDA 版本下所需预留空间可能不同,用户直接照搬可能仍遇到 OOM 或浪费 KV cache 容量。
  2. 内存预留降低容量的副作用:mem-fraction-static 从默认值下调会压缩 KV cache 可用空间,在长上下文或高并发场景可能降低可服务请求数;PR 只验证了 isl 8192/osl 1024 的固定 workload,未覆盖更长序列。
  3. 跨版本对比的方向性:PR body 自述与旧 H200 Flash FP4 数据、与 GB300 的对比是 "directional across checkpoint and SGLang-version changes",用户不宜将这些百分比当作严格回归结论。
  4. CI 状态不一致:PR Test (Base) 通过但 PR Test (Extra) 失败,文档改动不触碰运行时代码,但失败原因未在 PR 中澄清,存在未被发现的文档构建或链路问题可能。
  5. 新旧配方并存易混淆:B200 的 flash-official 已切到 TP8/DP8,而相邻的 flash(EAGLE)cell 仍是 TP4/DP4,两套配置差异较大,读者需注意 cell 的 variant 字段,避免混用。

对用户:在 cookbook 中按 H200/B200 部署 Flash Official (0731) 的用户可直接获得已验证的启动命令,规避两处真实 OOM 陷阱,并有 12 条 TTFT/TPOT/吞吐数据支撑硬件选型与容量评估。对团队:确立了"先压测、后 verified"的配方发布流程,benchmarks.jsx 与 deepseek-v4.jsx 双份数据通过 match 元组强关联,可被矩阵断言自动校验,后续版本更新时不易漂移。影响范围严格限定在 docs_new 文档站点渲染层,不涉及 SGLang 运行时行为。

文档数据依赖实测环境 内存预留参数需按硬件调整 基准对比跨版本具方向性 pr-test-extra CI 失败待确认

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论