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 7 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 7 commits into
mainfrom
glm5.2-fp4-b200-agentx-port

Conversation

@Ankur-singh

@Ankur-singh Ankur-singh commented Aug 19, 2026

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.

Note

Low Risk
Benchmark and Slurm launcher configuration only; no changes to core serving or auth paths, with scope limited to new matrix entries and nscale launch wiring.

Overview
Adds AgentX agentic-coding benchmark coverage for GLM-5.2-NVFP4 on B200 via Dynamo + disaggregated or aggregated SGLang, wired to the new cluster:b200-nscale runner pool.

Three checked-in srt-slurm recipes (glm5.2-agentx-agg, 1p2d, 1p3d) define TP8 serving (EAGLE MTP, HiCache DRAM offload, NIXL KV transfer for disagg, KV router session affinity) and run agentic_srt.sh. nvidia-master.yaml registers glm5.2-fp4-b200-dynamo-sglang-agentic-agg (concurrency 2/4/8/12) and …-disagg (1P2D and 1P3D at concurrency 113), pointing each sweep point at the matching recipe and enabling golden synthetic MTP acceptance only for throughput jobs.

launch_b200-nscale-slurm.sh now accepts glm5.2/fp4/dynamo-sglang/MTP, stages GLM-5.2-NVFP4 from node-local scratch, clones srt-slurm v1.0.53, copies the vendored recipes, and skips preflight like other large on-node weights. runners.yaml and perf-changelog.yaml document the new cluster and config keys.

Reviewed by Cursor Bugbot for commit 158aafc. Bugbot is set up for automated code reviews on this repo. Configure here.

新增 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

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 4ef323c. Configure here.

Comment thread configs/runners.yaml
- b200-nscale-slurm_5
- b200-nscale-slurm_6
- b200-nscale-slurm_7
- b200-nscale-slurm_8

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicate nscale cluster runner mapping

Low Severity

cluster:b200-nscale is inserted again even though the same key and runner list already exist earlier in runners.yaml. Duplicate YAML keys are last-write-wins, so a later edit to only one block can be silently ignored.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 4ef323c. Configure here.

@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.

2 participants