Skip to content

feat(glm52-agentx): add compact B300 Dynamo+TRT-LLM recipes / 新增紧凑布局的 B300 Dynamo+TRT-LLM 配方 - #2789

Open
Ankur-singh wants to merge 6 commits into
mainfrom
glm5.2-fp4-b300-dynamo-trt-agentic-mtp-compact
Open

feat(glm52-agentx): add compact B300 Dynamo+TRT-LLM recipes / 新增紧凑布局的 B300 Dynamo+TRT-LLM 配方#2789
Ankur-singh wants to merge 6 commits into
mainfrom
glm5.2-fp4-b300-dynamo-trt-agentic-mtp-compact

Conversation

@Ankur-singh

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

Copy link
Copy Markdown
Collaborator

Description

Adds six GLM-5.2 NVFP4 AgentX srt-slurm recipes on B300 using Dynamo + TensorRT-LLM disaggregated serving with compact worker packing. The master config now selects the complete compact curve at concurrency 1, 20, 30, 60, 227, and 233, spanning the 1p1d, 1p4d, 3p4d, 6p1d, and 8p2d recipes. The recipes exclude b300-001,b300-002,b300-004,b300-005,b300-009,b300-010,b300-012,b300-013,b300-014,b300-015,b300-018 from their Slurm allocations.

中文说明

新增六个 GLM-5.2 NVFP4 AgentX srt-slurm 配方,在 B300 上使用 Dynamo + TensorRT-LLM 解耦式服务和紧凑工作进程布局。主配置现已启用并发 1、20、30、60、227 和 233 的完整紧凑曲线,涵盖 1p1d、1p4d、3p4d、6p1d 和 8p2d 配方。这些配方在 Slurm 分配时排除 b300-001,b300-002,b300-004,b300-005,b300-009,b300-010,b300-012,b300-013,b300-014,b300-015,b300-018。

Related Issue

N/A

Type of Change

  • Bug fix
  • New feature
  • Configuration change
  • Documentation update
  • Other

Checklist

  • I have tested my changes locally
  • I have updated documentation if necessary
  • 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

Medium Risk
Changes multinode benchmark orchestration, UCX/fabric pinning, and srt-slurm integration rather than application logic, but misconfiguration could break AgentX runs or skew cluster networking performance.

Overview
Adds GLM-5.2 NVFP4 AgentX coverage on B300 via six new srt-slurm disaggregated Dynamo + TensorRT-LLM recipes (compact worker packing, NIXL KV transfer, MTP speculative decode), spanning 1p1d through 8p2d layouts at concurrencies 1, 20, 30, 60, 227, and 233. Recipes set SRT_FABRIC_MODE (bia_faithful or symmetric), host-cache sizing, decode batch/CUDA-graph shapes, and Slurm node exclude lists for bad B300 hosts.

b300_ctx_hca_pin.sh pins prefill context ranks to per-GPU InfiniBand HCA pairs (with ACTIVE-port filtering); decode and non-matching launches stay unpinned. launch_b300-nv.sh wires this path: pinned srt-slurm revision, recipe copy into the clone, container UCX (skips host ucx-no-ud mount), preamble mount + default_bash_preamble, agentic AIPERF/HF hub mounts, --no-preflight for /scratch models, eval orchestrator on head, optional stripping of forced MTP acceptance tokens, RESULT_FILENAME override, and meta_env.json for eval score validation.

agentic_srt.sh now sets AIPERF_SERVER_URL from SRT_FRONTEND_HOST/SRT_FRONTEND_PORT when present and uses that base for frontend metrics drain polling instead of hardcoded localhost.

configs/nvidia-master.yaml registers glm5.2-fp4-b300-dynamo-trt-agentic-mtp-compact with search-space entries pointing at each recipe; perf-changelog.yaml documents the new config key.

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

新增 GLM-5.2 B300 AgentX 紧凑布局配方。
@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 #2789 链接。
@github-actions

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

仅保留 8p2d 主配置条目,并在 srt-slurm 配方中排除指定的 B300 节点。
更新性能变更日志,说明 GLM-5.2 B300 实验仅启用 8p2d 配置并排除不可用节点。
同步 origin/main,并保留 PR #2789 的性能变更日志条目。

@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 3 potential issues.

Fix All in Cursor

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

Reviewed by Cursor Bugbot for commit d4571f7. Configure here.

DYN_TOKENIZER_CACHE: '1'
DYN_TOKENIZER_CACHE_BYTES: '8000000000'
ETCD_LEASE_TTL: '120'
type: dynamo

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Selected recipe omits frontend placement

High Severity

The enabled 8p2d recipe and 6p1d omit orchestrator_placement: first_decode, unlike the other compact recipes. The eval rewrite only replaces that exact field with head, so it is a no-op here. Throughput then uses the srt-slurm default instead of first-decode, and eval loopback on the allocation head may miss the frontend.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit d4571f7. Configure here.

sbatch_directives:
exclude: b300-001,b300-002,b300-004,b300-005,b300-009,b300-010,b300-012,b300-013,b300-014,b300-015,b300-018
srun_options:
cpu-bind: verbose,mask_cpu:0x0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff,0x0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff,0x0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff,0x0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff,0xffffffffffffffff0000000000000000ffffffffffffffff0000000000000000,0xffffffffffffffff0000000000000000ffffffffffffffff0000000000000000,0xffffffffffffffff0000000000000000ffffffffffffffff0000000000000000,0xffffffffffffffff0000000000000000ffffffffffffffff0000000000000000

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CPU masks break compact worker packing

Medium Severity

Every compact recipe passes one 8-entry mask_cpu list. A 4-GPU worker is a 4-task srun, so Slurm applies only the first four masks. The second prefill worker on a node (physical GPUs 4-7) is therefore bound to the GPU 0-3 NUMA socket. HCA pinning uses the physical GPU, so NIC and CPU affinity disagree on half of the compact prefill ranks.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit d4571f7. Configure here.

Comment thread runners/launch_b300-nv.sh
elif [[ $MODEL_PREFIX == "glm5.2" && $PRECISION == "fp4" && $FRAMEWORK == "dynamo-trt" ]]; then
export SERVED_MODEL_NAME="nvidia/GLM-5.2-NVFP4"
export MODEL_PATH="/scratch/models/GLM-5.2-NVFP4"
export SRT_SLURM_MODEL_PREFIX="nvidia/GLM-5.2-NVFP4"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Launcher served name mismatches recipes

Low Severity

The B300 launcher exports SERVED_MODEL_NAME as nvidia/GLM-5.2-NVFP4, while every new recipe and the working GB300 launcher use GLM-5.2-NVFP4. If the host export reaches the client or eval wait, the chat request uses a different wire name than the frontend and warmup 404s.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit d4571f7. Configure here.

Restore the c1, c20, c30, c60, and c227 compact topology points and update the performance changelog to describe the full six-point curve.

中文:恢复 c1、c20、c30、c60 和 c227 紧凑拓扑点,并更新性能变更日志以描述完整的六点曲线。
@github-actions

github-actions Bot commented Sep 2, 2026

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