Skip to content

feat(config): add GLM-5.2 NVFP4 B200 Dynamo-SGLang AgentX recipes / 新增 GLM-5.2-NVFP4 B200 Dynamo-SGLang AgentX 配方 - #2673

Open
Ankur-singh wants to merge 5 commits into
mainfrom
glm5.2-fp4-b200-agentx-port
Open

feat(config): add GLM-5.2 NVFP4 B200 Dynamo-SGLang AgentX recipes / 新增 GLM-5.2-NVFP4 B200 Dynamo-SGLang AgentX 配方#2673
Ankur-singh wants to merge 5 commits into
mainfrom
glm5.2-fp4-b200-agentx-port

Conversation

@Ankur-singh

Copy link
Copy Markdown
Collaborator

Description

Adds Dynamo-SGLang AgentX coverage for GLM-5.2-NVFP4 on B200: one aggregated
TP8 config and one disaggregated config carrying two topologies (1P2D, 1P3D).

  • glm5.2-fp4-b200-dynamo-sglang-agentic-agg: single TP8 worker doing both
    prefill and decode, swept at concurrency 2, 4, 8, and 12.
  • glm5.2-fp4-b200-dynamo-sglang-agentic-disagg: EP8/DP-attention prefill
    against either 2 or 3 TP8 decode workers (1P2D / 1P3D), both at concurrency
    113, using NIXL for KV transfer between prefill and decode.
  • Both configs use EAGLE MTP and HiCache DRAM KV offload, and pin synthetic
    acceptance to the golden values in golden_al_distribution/glm5.2_mtp.yaml
    (2.99 for the aggregate 3-step config, 2.5 for the disaggregated 2-step
    decode config) for throughput runs only — EVAL_ONLY runs keep real
    target-model verification.
  • The three new recipe YAMLs are vendored under
    benchmarks/multi_node/srt-slurm-recipes/sglang/glm5.2/b200-fp4/agentic/
    and copied into the srt-slurm checkout by a new launch_b200-dgxc.sh
    branch, pinned to srt-slurm v1.0.53
    (217f94387abeddfed7149a71955dc523e07cd765).
  • Also fixes SRT_SLURM_MODEL_PREFIX for this model/precision from
    glm5.2-fp4 to glm-5.2-fp4 so it matches the model.path the recipes
    declare — this model-prefix alias was previously unused by any multi-node
    config, so the fix has no effect on existing entries.

中文说明

为 B200 上的 GLM-5.2-NVFP4 新增 Dynamo-SGLang AgentX 覆盖:一个聚合式 TP8 配置,
以及一个包含两种拓扑(1P2D、1P3D)的分离式配置。

  • glm5.2-fp4-b200-dynamo-sglang-agentic-agg:单个 TP8 worker 同时承担 prefill
    和 decode,在并发度 2、4、8、12 下扫描。
  • glm5.2-fp4-b200-dynamo-sglang-agentic-disagg:EP8/DP-attention 的 prefill
    分别对接 2 个或 3 个 TP8 decode worker(1P2D / 1P3D),均在并发度 113 下运行,
    prefill 与 decode 之间使用 NIXL 传输 KV。
  • 两个配置均使用 EAGLE MTP 和 HiCache DRAM KV 卸载,并仅在吞吐任务中将 synthetic
    acceptance 固定为 golden_al_distribution/glm5.2_mtp.yaml 中的 golden 值(聚合
    3-step 配置为 2.99,分离式 2-step decode 配置为 2.5);EVAL_ONLY 运行则保留真实
    目标模型验证。
  • 三个新配方 YAML 保存在
    benchmarks/multi_node/srt-slurm-recipes/sglang/glm5.2/b200-fp4/agentic/,
    由新增的 launch_b200-dgxc.sh 分支复制进 srt-slurm 检出目录,固定至 srt-slurm
    v1.0.53(217f94387abeddfed7149a71955dc523e07cd765)。
  • 同时将该模型/精度对应的 SRT_SLURM_MODEL_PREFIXglm5.2-fp4 修正为
    glm-5.2-fp4,使其与配方声明的 model.path 一致——此模型前缀别名此前未被任何
    多机配置使用,因此该修正不影响现有条目。

The serving image is the upstream SGLang image
lmsysorg/sglang:nightly-dev-cu13-20260805-211ee642. TRT-LLM is only used by
selected SGLang kernel backends in this recipe.

服务镜像为上游 SGLang 镜像
lmsysorg/sglang:nightly-dev-cu13-20260805-211ee642。本配方中的 TRT-LLM 仅用于
部分 SGLang kernel backend。

Related Issue

N/A

Type of Change

  • Bug fix
  • New feature
  • Configuration change
  • Documentation update
  • Other (please describe)

Validation

  • process_changelog.py against this diff generates six throughput jobs
    (four aggregate concurrency points, two disaggregated topologies) and two
    AgentX eval jobs (one per disaggregated topology).

  • generate_sweep_configs.py test-config resolves both new config keys with
    no errors.

  • YAML parsing, bash -n on the launch script, and git diff --check all
    pass.

  • Golden synthetic-acceptance lengths (2.99 aggregate / 2.5 disaggregated)
    match golden_al_distribution/glm5.2_mtp.yaml.

  • Synthetic acceptance is injected through the shared
    inject_synthetic_acceptance.py launcher helper, which is a no-op whenever
    EVAL_ONLY is set, so eval runs keep real target-model verification.

  • 针对本次 diff 运行 process_changelog.py,生成六个吞吐任务(四个聚合并发点、
    两个分离式拓扑)和两个 AgentX eval 任务(每个分离式拓扑一个)。

  • generate_sweep_configs.py test-config 可正确解析两个新增 config key,无报错。

  • YAML 解析、launch 脚本的 bash -n,以及 git diff --check 均通过。

  • Golden synthetic acceptance 长度(聚合 2.99 / 分离式 2.5)与
    golden_al_distribution/glm5.2_mtp.yaml 一致。

  • Synthetic acceptance 通过共享的 inject_synthetic_acceptance.py launcher
    helper 注入,在设置 EVAL_ONLY 时为 no-op,因此 eval 运行仍保留真实目标模型
    验证。

Checklist

  • I have tested my changes locally
  • I have updated documentation if necessary (not applicable; no user-facing procedure changed)
  • For every change that can affect benchmark performance and every recipe addition or modification, I have appended a new entry to the physical end of perf-changelog.yaml and have not edited historical entries
  • Before merging via reuse, an authorized maintainer (OWNER/MEMBER/COLLABORATOR) has commented /reuse-sweep-run on this PR. Do this only once there is a final full sweep that is all green with evals passing, since after this comment the sweep label will no longer automatically kick off new sweeps. Remove and re-add the label to force one.

新增 GLM-5.2-NVFP4 B200 Dynamo-SGLang AgentX 聚合式与分离式配方:覆盖并发度 2/4/8/12 的聚合 TP8,以及并发度 113 的 1P2D 和 1P3D 分离式配置,使用 EAGLE MTP、HiCache DRAM 卸载和 NIXL KV 传输,吞吐任务注入 golden synthetic acceptance。
@github-actions

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 关于重新运行失败任务的文档

1 similar comment
@github-actions

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 关于重新运行失败任务的文档

在性能变更日志中补充 PR #2673 链接。
将 GLM-5.2 B200 AgentX 聚合式与分离式配置改由 Nscale 集群运行:注册新的 cluster:b200-nscale 精确机群标签,扩展 launch_b200-nscale-slurm.sh 支持该模型/框架组合并对本地 NVMe 模型路径跳过 srtctl preflight,同时撤销此前对 launch_b200-dgxc.sh 的改动。
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

2 similar comments
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

sbatch_directives.cpus-per-task was ported verbatim from NVIDIA/srt-slurm#314
(a DGXC-tuned value) and does not match the b200-nscale cluster's registered
per-node CPU count, causing every job routed there to fail at submission with
'sbatch: error: CPU count per node can not be satisfied'. All three recipes
already request the whole node via use_exclusive_sbatch_directive: true, so
the explicit cpus-per-task constraint is redundant on top of --exclusive and
safe to drop entirely (precedent: sglang/glm5.2/agentic/disagg-h200-2p2d-*.yaml
already omits it).
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant