Skip to content

[Klaud Cold] Update dsv4-fp4-b300-dynamo-sglang SGLang image to v0.5.19-cu130 (digest-pinned) and refresh the Dynamo pin / 将 dsv4-fp4-b300-dynamo-sglang 的 SGLang 镜像更新为 v0.5.19-cu130(按 digest 固定)并刷新 Dynamo 提交 - #2896

Closed
Klaud-Cold wants to merge 1 commit into
mainfrom
klaud/auto-d629b31b9684bd94-98f2f964e771b3fd

Conversation

@Klaud-Cold

@Klaud-Cold Klaud-Cold commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Summary / 摘要

Refresh the dsv4-fp4-b300-dynamo-sglang family (DeepSeek-V4-Pro FP4, B300, Dynamo + SGLang disaggregated, 8k/1k, no speculative decoding) from the removed nightly lmsysorg/sglang:nightly-dev-cu13-20260721-8905cbd4 to the digest-pinned release lmsysorg/sglang:v0.5.19-cu130@sha256:d6e7288627be8b02be88e4bba38e73f6d50e2826869f753c13a4c4385ab3eda9, matching the public framework release sglang v0.5.19.

dsv4-fp4-b300-dynamo-sglang 系列(DeepSeek-V4-Pro FP4、B300、Dynamo + SGLang 分离式部署、8k/1k、无投机解码)的镜像从已被删除的 nightly lmsysorg/sglang:nightly-dev-cu13-20260721-8905cbd4 更新为按 digest 固定的正式版 lmsysorg/sglang:v0.5.19-cu130@sha256:d6e7288627be8b02be88e4bba38e73f6d50e2826869f753c13a4c4385ab3eda9,与公开的框架版本 sglang v0.5.19 一致。

Files / 文件

  • configs/nvidia-master.yaml: dsv4-fp4-b300-dynamo-sglang.image (one line).
  • benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/8k1k/disagg-b300-{1p1d-tp4-tp4,1p1d-dep4-dep8,2p1d-dep4-dep8,4p1d-dep4-dep8,6p1d-dep4-dep8}.yaml: model.container equals the master image; dynamo.hash bumped from 41882ae9b07232eed4850fb1daf8c958abb2556a (2026-07-14) to b1c5147f6c9eb036d98e0e25e2a980375f491e78 (2026-09-03); the four DEP recipes replace the deprecated SGLANG_OPT_DEEPGEMM_MEGA_MOE_USE_FP4_ACTS / SGLANG_OPT_DEEPGEMM_MEGA_MOE_USE_MXF4_KIND env vars with enable-w4a4-mxfp4-megamoe: true on prefill and decode.
  • No other family, script, launcher or workflow is touched. Model, precision, topology, concurrency list, workloads, resources and recipe references are unchanged. Only these five recipes reference the family's CONFIG_FILE paths; the -mtp sibling uses separate *-mtp.yaml recipes and is untouched.
  • 未改动其他系列、脚本、启动器或工作流。模型、精度、拓扑、并发列表、负载、资源和配方引用保持不变。只有这五个配方被该系列的 CONFIG_FILE 引用;-mtp 兄弟系列使用独立的 *-mtp.yaml 配方,未做改动。

Why these exact changes / 变更依据

  • Old tag is gone. Docker Hub returns no manifest for lmsysorg/sglang:nightly-dev-cu13-20260721-8905cbd4 (dated nightlies are cleaned up), so the family can no longer be reproduced from its pinned image. / 旧标签已不存在:Docker Hub 已无 nightly-dev-cu13-20260721-8905cbd4 的 manifest(带日期的 nightly 会被清理),该系列已无法从其固定镜像复现。
  • Same image lineage. v0.5.19-cu130 (pushed 2026-09-04, tag commit 59f20bff) is built by release-docker.yml with the same Dockerfile target (framework_final), CUDA_VERSION=13.0.3, BUILD_TYPE=all and INSTALL_FLASHINFER_JIT_CACHE=1 as the nightly-dev-cu13-* images from release-docker-dev.yml; only the source commit differs. The @sha256 pin follows the existing dsv4-fp4-gb300-dynamo-sglang recipes, and the B300 launcher already normalises @ in squash-file names. / 镜像谱系一致:v0.5.19-cu130nightly-dev-cu13-* 使用同一 Dockerfile target、CUDA 13.0.3 与构建参数,仅源码提交不同;@sha256 固定方式沿用现有 dsv4-fp4-gb300-dynamo-sglang 配方。
  • Dynamo pin must move with SGLang. SGLang v0.5.19 contains config: constructing a config no longer resolves it sgl-project/sglang#35907 (constructing ServerArgs no longer resolves it), #36255, #36972 (server_args.get_model_config() / use_mla_backend() removed) and the ConfigArgumentMerger move to sglang.srt.utils.server_args_config_parser. Dynamo 41882ae9 (2026-07-14) predates all of them; fix(sglang): use resolved args after engine init ai-dynamo/dynamo#13905, #14054 and #14234 add the compatibility shims, and b1c5147f6c9e (2026-09-03) is the first commit containing all three. srt-slurm still builds Dynamo from this pinned commit at run time, as before; no engine or container patching is involved. / Dynamo 提交必须随 SGLang 更新:v0.5.19 包含 #35907、#36255、#36972 以及 ConfigArgumentMerger 模块迁移,旧 Dynamo 提交早于这些改动;dynamo#13905、#14054、#14234 提供兼容层,b1c5147f6c9e 是同时包含三者的首个提交。srt-slurm 仍按原有方式从该提交构建 Dynamo,不涉及引擎或容器补丁。
  • MegaMoE FP4 activations. [DeepSeek V4] Add W4A4 MegaMoE server flag sgl-project/sglang#35918 (in v0.5.19) turned SGLANG_OPT_DEEPGEMM_MEGA_MOE_USE_FP4_ACTS / _USE_MXF4_KIND into warn-only _DeprecatedEnv entries; mega_moe.py now selects mxf4xmxf4 only from --enable-w4a4-mxfp4-megamoe. The flag is added to both prefill and decode of the four megamoe recipes so the recipe keeps its FP4-activation path instead of silently falling back to FP8 activations (see dsv4-fp4-b300-sglang-agentic-hicache-mtp: restore MegaMoE FP4 acts, retarget to cluster:b300-dsxe / 恢复 MegaMoE FP4 激活路径,并迁移至 cluster:b300-dsxe #2878 for the single-node sibling). SGLANG_OPT_DEEPGEMM_MEGA_MOE_NUM_MAX_TOKENS_PER_RANK and every other env var used by the recipes are still live in v0.5.19 environ.py. / [DeepSeek V4] Add W4A4 MegaMoE server flag sgl-project/sglang#35918 已将上述两个环境变量改为仅告警,FP4 激活路径只能通过 --enable-w4a4-mxfp4-megamoe 选择;四个 megamoe 配方的 prefill 与 decode 均加入该标志以保持原行为。其余环境变量在 v0.5.19 中仍然有效。

Local checks / 本地检查

  • generate_sweep_configs.py test-config --config-files configs/nvidia-master.yaml --config-keys dsv4-fp4-b300-dynamo-sglang: same five matrix rows, node-count 2/2/2/3/4 unchanged, only image differs from base.
  • generate_sweep_configs.py full-sweep --config-files configs/nvidia-master.yaml --framework dynamo-sglang: exit 0.
  • pytest utils/matrix_logic/test_generate_sweep_configs.py utils/test_gb300_power_official_contract.py: 121 passed.
  • srtctl dry-run -f <recipe> for all five recipes with the dcgm-power srt-slurm fork pinned by runners/launch_b300-dsxe.sh: exit 0.
  • Capacity check (python -m utils.klaud check-capacity --cluster b300-dsxe) passed before edits and before each dispatch.

Baseline / 基线(published 2026-07-30 / 发布日期 2026-07-30)

Source: GET /api/v1/benchmarks?model=DeepSeek-V4-Pro&date=2026-07-30&exact=true, filtered to hardware=b300, framework=dynamo-sglang, precision=fp4, spec_method=none, isl=8192, osl=1024, benchmark_type=single_turn, image lmsysorg/sglang:nightly-dev-cu13-20260721-8905cbd4. All eight points come from producer run https://github.com/SemiAnalysisAI/InferenceX/actions/runs/30431262611/attempts/1 (Run Sweep - feat: add DSV4 FP4 B300 Dynamo-SGLang STP configuration, from GET /api/v1/workflow-info?date=2026-07-30); logical curve snapshot id 2240 is not a producer id. Time metrics are seconds.

conc / 并发 topology / 拓扑 tput/GPU (tok/s) output tput/GPU (tok/s) median TTFT (s) median TPOT (s) median E2EL (s) median interactivity (tok/s/user) benchmark id
1 1P x TP4/EP1 + 1D x TP4/EP1 (4+4 GPUs) 105.7 23.6 0.319 0.0102 9.70 97.7 438001
8 1P x TP4/EP1 + 1D x TP4/EP1 (4+4 GPUs) 629.2 141.5 0.368 0.0130 12.63 76.7 438003
16 1P x TP4/EP1 + 1D x TP4/EP1 (4+4 GPUs) 1091.7 241.9 0.578 0.0150 14.51 66.5 438000
32 1P x TP4/EP1 + 1D x TP4/EP1 (4+4 GPUs) 1786.7 399.6 0.886 0.0178 17.56 56.3 438002
256 1P x TP4/EP4/DP-attn + 1D x TP8/EP8/DP-attn (4+8 GPUs) 5051.4 842.1 11.162 0.0238 32.80 42.0 438004
768 2P x TP4/EP4/DP-attn + 1D x TP8/EP8/DP-attn (8+8 GPUs) 7702.0 1710.8 21.938 0.0286 47.89 34.9 437998
2048 4P x TP4/EP4/DP-attn + 1D x TP8/EP8/DP-attn (16+8 GPUs) 10243.4 3417.6 28.569 0.0377 63.19 26.5 437999
3072 6P x TP4/EP4/DP-attn + 1D x TP8/EP8/DP-attn (24+8 GPUs) 11212.4 4983.0 21.867 0.0463 63.95 21.6 438005

Published evaluations for the baseline run / 基线运行的已发布评测GET /api/v1/evaluations, filtered to the same identity and producer run):

task / 任务 conc / 并发 topology / 拓扑 metrics / 指标 eval id
gsm8k 32 1P TP4/EP1 + 1D TP4/EP1 em_flexible=0.9674, em_flexible_se=0.0049, em_strict=0.9682, em_strict_se=0.0048, n_eff=1319 9030
gsm8k 256 1P TP4/EP4 + 1D TP8/EP8 em_flexible=0.9659, em_flexible_se=0.0050, em_strict=0.9659, em_strict_se=0.0050, n_eff=1319 9031
gsm8k 768 2P TP4/EP4 + 1D TP8/EP8 em_flexible=0.9666, em_flexible_se=0.0049, em_strict=0.9674, em_strict_se=0.0049, n_eff=1319 9027
gsm8k 2048 4P TP4/EP4 + 1D TP8/EP8 em_flexible=0.9644, em_flexible_se=0.0051, em_strict=0.9644, em_strict_se=0.0051, n_eff=1319 9028
gsm8k 3072 6P TP4/EP4 + 1D TP8/EP8 em_flexible=0.9674, em_flexible_se=0.0049, em_strict=0.9674, em_strict_se=0.0049, n_eff=1319 9029

Attempts / 尝试记录

Attempt / 尝试 Image / SHA Run Benchmarks / 基准 Evals / 评测 Δ vs baseline (per point) / 相对基线差异 Diagnosis / 诊断
Baseline (published 2026-07-30) / 基线 lmsysorg/sglang:nightly-dev-cu13-20260721-8905cbd4 (Dynamo 41882ae9) https://github.com/SemiAnalysisAI/InferenceX/actions/runs/30431262611 8/8 points published (table above) see evaluation table above / 见上方评测表 Reference only; the old image is never rerun. / 仅作参考,不重跑旧镜像。
Attempt 1 (initial update) / 尝试 1(首次更新) lmsysorg/sglang:v0.5.19-cu130@sha256:d6e72886… (Dynamo b1c5147f) @ 001e9af8413ed8d323b3cd0dd9e5e3925069e308 https://github.com/SemiAnalysisAI/InferenceX/actions/runs/34281233059 (e2e-tests.yml from main, inputs.ref = measured SHA, klaud-run=true, fail-fast=true) failed: 0/5 matrix rows measured. c768 (2P DEP4 + 1D DEP8) failed; TP4x1D c1x8x16x32, c256, c2048, c3072 cancelled by fail-fast before finishing. results_bmk artifact is empty (142 bytes). failed: 0/5 eval rows. TP4x1D eval-only job failed; the other four eval-only jobs cancelled by fail-fast. eval_results_all is empty. N/A: no measured points (infrastructure failure before the server became healthy). / 无可比较数据(服务器健康前即因基础设施故障中止)。 Both failing jobs (Slurm jobs 958 and 961) landed on nodes dsxe-sa-b300-prd0-gpu-00 + gpu-01. On gpu-01 the decode worker and frontend containers aborted at start: pyxis: --container-mounts: source path does not exist: /scratch/models/DeepSeek-V4-Pro (node-local staged weights missing on that node). The prefill workers on gpu-00 started normally with the new image and began the pinned Dynamo source build before being killed by the teardown. Not attributable to the image, Dynamo pin or recipe flags. / 两次失败的作业都落在 gpu-00+gpu-01gpu-01 缺少节点本地模型目录 /scratch/models/DeepSeek-V4-Pro,decode 与 frontend 容器无法挂载而启动失败;gpu-00 上的 prefill 使用新镜像正常启动。与镜像、Dynamo 提交或配方标志无关。
Attempt 2 (repair 1: retry, no code change) / 尝试 2(修复 1:重试,无代码改动) same image and Dynamo pin @ 001e9af8413ed8d323b3cd0dd9e5e3925069e308 https://github.com/SemiAnalysisAI/InferenceX/actions/runs/34283344876 (e2e-tests.yml from main, inputs.ref = measured SHA, klaud-run=true, fail-fast=true) failed: 0/5 matrix rows measured. c768 (2P DEP4 + 1D DEP8) failed; TP4x1D c1x8x16x32, c256, c2048, c3072 cancelled by fail-fast. results_bmk empty (142 bytes). failed: 0/5 eval rows. c2048 eval-only job failed; the other four eval-only jobs cancelled by fail-fast. eval_results_all empty. N/A: no measured points (same infrastructure failure). / 无可比较数据(同一基础设施故障)。 Same root cause as attempt 1, now on two nodes. Slurm job 963 (c768) again allocated gpu-00+gpu-01 and the gpu-01 decode/frontend containers failed with pyxis: --container-mounts: source path does not exist: /scratch/models/DeepSeek-V4-Pro. Slurm job 969 (c2048 eval-only, head node dsxe-sa-b300-prd0-gpu-11) failed even earlier in srtctl with FileNotFoundError: Model path does not exist: /scratch/models/DeepSeek-V4-Pro. The launcher documents /scratch/models as node-local NVMe with the same layout on every compute node; at least gpu-01 and gpu-11 currently lack the DeepSeek-V4-Pro directory. Not attributable to the image, Dynamo pin or recipe flags. / 与尝试 1 同一根因,且出现在两个节点:作业 963 再次分到 gpu-00+gpu-01gpu-01 容器挂载失败;作业 969(c2048 仅评测,头节点 gpu-11)在 srtctl 阶段即报 Model path does not exist: /scratch/models/DeepSeek-V4-Pro。至少 gpu-01gpu-11 缺少节点本地的 DeepSeek-V4-Pro 权重目录。与镜像、Dynamo 提交或配方标志无关。

Status / 状态

Stopped: the same failure occurred twice without progress (repair budget used: 1 of 3). Both targeted attempts died before any SGLang server became healthy because /scratch/models/DeepSeek-V4-Pro is missing on at least two b300-dsxe compute nodes (dsxe-sa-b300-prd0-gpu-01, dsxe-sa-b300-prd0-gpu-11). That is cluster weight staging, outside the scope of an image refresh, so no further GPU attempts were made. Both e2e runs (34281233059, 34283344876) are confirmed terminal; every matrix job is failed or cancelled, and the collection jobs completed with empty artifacts.

已停止:同一故障连续出现两次且无进展(已使用修复次数:1/3)。 两次目标尝试都在任何 SGLang 服务器就绪之前中止,原因是 b300-dsxe 至少两个计算节点(gpu-01gpu-11)缺少 /scratch/models/DeepSeek-V4-Pro。这属于集群权重预置问题,超出镜像刷新范围,因此不再消耗 GPU。两个 e2e 运行(34281233059、34283344876)均已确认结束;所有矩阵作业为失败或已取消,收集作业完成但产物为空。

  • No perf-changelog.yaml entry was appended and the PR stays a draft without a sweep label, because no updated-image attempt has passed yet. / 由于尚无通过的目标尝试,未追加 perf-changelog.yaml 条目,PR 保持草稿且未加 sweep 标签。
  • The change itself is ready to re-test once the node-local weights are restored (or the affected nodes are drained): re-dispatch e2e-tests.yml with test-config --config-files configs/nvidia-master.yaml --config-keys dsv4-fp4-b300-dynamo-sglang at this SHA. The prefill containers on gpu-00 started with the new image and began the pinned Dynamo source build before teardown, so the image pull and container start are known to work. / 节点本地权重恢复(或问题节点被下线)后即可重新测试:在此 SHA 上重新分发上述 e2e-tests.yml 命令。gpu-00 上的 prefill 容器已使用新镜像启动并开始构建固定的 Dynamo 源码,说明镜像拉取与容器启动正常。
  • Image-level compatibility (Dynamo b1c5147f vs SGLang v0.5.19 API, --enable-w4a4-mxfp4-megamoe) has not been exercised on GPU in this PR; it is supported by the source-level evidence above only. / 镜像层面的兼容性(Dynamo 与 SGLang v0.5.19 的 API、--enable-w4a4-mxfp4-megamoe)尚未在 GPU 上实际验证,目前仅有上述源码层面的证据。

Limitations / 局限性

  • A green targeted benchmark proves this family runs on the new image; it does not prove that every global repository check passes. / 目标基准通过只能证明该系列可在新镜像上运行,不能证明所有全局检查都通过。
  • Deltas are computed only for points whose topology, concurrency and dataset match the published baseline; unmatched or invalid points are excluded from any improvement claim. / 差异只对拓扑、并发和数据集与基线一致的点计算;不匹配或无效的点不计入改进结论。
  • Performance improvements are best effort; regressions are reported, not used as a rejection threshold. / 性能提升为尽力而为;回退会如实报告,不作为拒绝阈值。

🤖 Generated with Claude Code

…resh Dynamo

Replace the removed nightly lmsysorg/sglang:nightly-dev-cu13-20260721-8905cbd4
with the digest-pinned release lmsysorg/sglang:v0.5.19-cu130 in the master
config and the five srt-slurm recipes it references. Bump the Dynamo source
pin to b1c5147f6c9e so the worker imports against the v0.5.19 ServerArgs API,
and switch the four DEP recipes from the deprecated
SGLANG_OPT_DEEPGEMM_MEGA_MOE_USE_FP4_ACTS / _USE_MXF4_KIND env vars to
--enable-w4a4-mxfp4-megamoe so MegaMoE keeps the FP4-activation path.

将已被删除的 nightly 镜像 lmsysorg/sglang:nightly-dev-cu13-20260721-8905cbd4
替换为按 digest 固定的正式版 lmsysorg/sglang:v0.5.19-cu130,同时更新主配置和
其引用的五个 srt-slurm 配方。将 Dynamo 源码提交固定到 b1c5147f6c9e,以匹配
v0.5.19 的 ServerArgs API;四个 DEP 配方改用 --enable-w4a4-mxfp4-megamoe
取代已弃用的 SGLANG_OPT_DEEPGEMM_MEGA_MOE_USE_FP4_ACTS / _USE_MXF4_KIND
环境变量,保持 MegaMoE 的 FP4 激活路径。

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Thanks for the contribution! Please reach out to respective companies' CODEOWNER to fill in the latest PR_REVIEW_CHECKLIST.md before pinging core maintainer on Slack for review. In order for the signoff PR check bot to trigger, you must follow the PR_REVIEW_CHECKLIST.md template correctly, including the phrase As a PR reviewer and CODEOWNER, I have reviewed this and have.

For PR verification, add the full-sweep-fail-fast label (strongly recommended) to this PR — the benchmark sweep only runs on labeled PRs. Use full-sweep-enabled only if you need matrix jobs to keep running past a failure.

PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. See GitHub's docs on re-running failed jobs


感谢你的贡献!请联系相应公司的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,然后再在 Slack 上联系核心维护者进行审阅。为了触发 signoff PR 检查机器人,你必须正确遵循 PR_REVIEW_CHECKLIST.md 模板,包括保留英文语句 As a PR reviewer and CODEOWNER, I have reviewed this and have

如需进行 PR 验证,请为此 PR 添加 full-sweep-fail-fast 标签(强烈推荐)— 基准测试 sweep 仅在带有标签的 PR 上运行。仅当需要矩阵任务在失败后继续运行时才使用 full-sweep-enabled

PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档

@adibarra adibarra closed this Sep 8, 2026
@adibarra
adibarra deleted the klaud/auto-d629b31b9684bd94-98f2f964e771b3fd branch September 8, 2026 22:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

2 participants