Skip to content

Add GLM-5 NVFP4 GB200 disaggregated Dynamo TRT-LLM STP benchmarks / 新增 GLM-5 NVFP4 GB200 分离式 Dynamo TRT-LLM STP 基准测试 - #1803

Merged
cquil11 merged 16 commits into
mainfrom
rihuo/glm5-gb200-dynamo-trt
Jul 15, 2026
Merged

Add GLM-5 NVFP4 GB200 disaggregated Dynamo TRT-LLM STP benchmarks / 新增 GLM-5 NVFP4 GB200 分离式 Dynamo TRT-LLM STP 基准测试#1803
cquil11 merged 16 commits into
mainfrom
rihuo/glm5-gb200-dynamo-trt

Conversation

@xinli-sw

@xinli-sw xinli-sw commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

submitted on behalf of @richardhuo-nv


Note

Low Risk
Benchmark and launcher configuration only; no application auth, data, or inference runtime code changes.

Overview
Adds glm5-fp4-gb200-dynamo-trt to the NVIDIA master benchmark matrix: multinode disaggregated GLM-5 NVFP4 on GB200 using Dynamo + TensorRT-LLM (STP, non-MTP), with fixed-seq-len scenarios at 1K/1K and 8K/1K and many concurrency-specific prefill/decode search points wired to NVIDIA/srt-slurm recipe YAMLs via CONFIG_FILE.

launch_gb200-nv.sh gains a dynamo-trt branch for glm5 + fp4, setting Lustre model path, served name, and SRT_SLURM_MODEL_PREFIX=nvidia/GLM-5-NVFP4, and updates the unsupported-prefix error message.

perf-changelog.yaml records the new config key and launch-script change for PR #1803.

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

中文说明

代表 @richardhuo-nv 提交。

Note

低风险
本 PR 仅涉及基准测试、recipe(配方)和启动器配置,不修改应用认证、数据处理或推理运行时代码。

概述
在 NVIDIA 主基准测试矩阵中新增 glm5-fp4-gb200-dynamo-trt:使用 Dynamo + TensorRT-LLM 在 GB200 上运行 GLM-5 NVFP4 多节点分离式 STP(非 MTP)基准测试。配置覆盖 1K/1K8K/1K 固定序列长度场景,并通过 CONFIG_FILE 关联多组按并发度划分的预填充/解码 NVIDIA/srt-slurm recipe。

launch_gb200-nv.sh 新增 glm5 + fp4dynamo-trt 分支,配置 Lustre 模型路径、服务名称和 SRT_SLURM_MODEL_PREFIX=nvidia/GLM-5-NVFP4,并更新不受支持的模型前缀错误提示。

perf-changelog.yaml 记录 PR #1803 新增的配置键及启动脚本变更。

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! For vLLM & SGLang, please ensure that your recipes is similar to the official vLLM recipes and/or the SGLang cookbook

If it is not, please create a PR first before we can merge your single node PR into the master branch. Let's ensure that the documentation is first class such that the entire ML community can benefit from your hard work! Thank you

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. If re-running failed jobs is attempted, PR authors are responsible for ensuring it passes. See GitHub's docs on re-running failed jobs: https://docs.github.com/en/actions/how-tos/manage-workflow-runs/re-run-workflows-and-jobs#re-running-failed-jobs-in-a-workflow

As a rule of thumb, generally, PR authors should request a review & get a PR approval from the respective companies' CODEOWNERS before requesting a review from core maintainers.

If additional help is needed, PR authors can reach out to core maintainers over Slack.

export SRT_SLURM_MODEL_PREFIX="nvidia/GLM-5-NVFP4"
else
echo "Unsupported model prefix: $MODEL_PREFIX. Supported prefixes are: gptoss, dsr1, or kimik2.5"
echo "Unsupported model prefix: $MODEL_PREFIX. Supported prefixes are: gptoss, dsr1, kimik2.5, or glm5"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

GLM5 missing srt-slurm checkout

High Severity

The new glm5-fp4-gb200-dynamo-trt sweep uses CONFIG_FILE paths under recipes/GLM5/... on NVIDIA srt-slurm sa-submission-q2-2026, but launch_gb200-nv.sh only selects that repo for kimik2.5 dynamo-trt. glm5 falls through to the cquil11/srt-slurm-nv clone, so recipe files are missing and the launcher exits when validating CONFIG_FILE.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit e99f46e. Configure here.

@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 and found 1 potential issue.

There are 2 total unresolved issues (including 1 from previous review).

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 0137194. Configure here.

Comment thread perf-changelog.yaml
- "Align MiniMax-M3 B200 vLLM fixed-sequence serving with MiniMax-M2.5 FP8 B200 settings by setting VLLM_FLOAT32_MATMUL_PRECISION=high and restoring max cudagraph capture size 2048."
- "Add TP4+EP4 coverage for MiniMax-M3 B200: DP-attention rows for 1k1k/8k1k and the missing non-DP-attention row for 8k1k."
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1779

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 changelog triggers wrong sweep

Medium Severity

This commit appends a second perf-changelog.yaml block for minimaxm3-fp8-b200-vllm that matches the entry already at lines 3853–3858. process_changelog.py builds the PR sweep from added diff lines only, so that duplicate is treated as a new changelog contribution and schedules minimaxm3-fp8-b200-vllm benchmarks alongside glm5-fp4-gb200-dynamo-trt.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 0137194. Configure here.

@github-actions

Copy link
Copy Markdown
Contributor

@functionstackx functionstackx left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

waiting on glm5 nvfp4 gb200 non-mtp sgl PR first

would like prefer if @SemiAnalysisAI/core quick whip up "best effort/good faith attempt" at an sgl GLM gb200 disagg non-mtp config rn and then merge then first in so then we can merge in trtllm?

@github-actions

Copy link
Copy Markdown
Contributor

…non-MTP)

Adds `glm5-fp4-gb200-dynamo-trt` covering 13 ISL1K/OSL1K + 10 ISL8K/OSL1K STP
recipes from NVIDIA/srt-slurm `sa-submission-q2-2026` under
`recipes/GLM5/disagg/trtllm_dynamo/gb200_nvfp4/{ISL1K_OSL1K,ISL8K_OSL1K}/STP`.

Model naming aligned with the GLM-5.1 convention already used by the GB200
dynamo-sglang entry: `model: nvidia/GLM-5.1-NVFP4`, `model-prefix: glm5.1`,
`MODEL_PATH=/mnt/lustre01/models/GLM-5.1-NVFP4`. `SRT_SLURM_MODEL_PREFIX`
matches the upstream recipe's `model.path` alias (`nvidia/GLM-5-NVFP4`).
`launch_gb200-nv.sh` gains a `glm5.1 + fp4` case in the dynamo-trt
dispatch block and a matching srt-slurm clone entry.
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

…runtime

Ports the 23 STP recipes (13 ISL1K_OSL1K + 10 ISL8K_OSL1K) from
NVIDIA/srt-slurm sa-submission-q2-2026 into
benchmarks/multi_node/srt-slurm-recipes/GLM5/... so that the version
consumed by the sweep is pinned to this PR rather than tracking upstream
drift. Mirrors the same overlay convention PR #1780 used for the
dynamo-sglang GLM5.1 recipes.

launch_gb200-nv.sh adds `mkdir -p recipes/GLM5 && cp -rT ...` to the
existing glm5.1 dynamo-trt clone case so the local tree overrides the
upstream copy in the srt-slurm checkout before srtctl reads any recipe.
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

- nvidia-master.yaml: model nvidia/GLM-5-NVFP4, model-prefix glm5
- launch_gb200-nv.sh: dynamo-trt glm5/fp4 case uses
  MODEL_PATH=/home/sa-shared/glm-model/GLM-5-NVFP4,
  SERVED_MODEL_NAME=glm-5-nvfp4; matching srt-slurm overlay branch
  keyed on MODEL_PREFIX=glm5
- perf-changelog: describe as GLM-5 with the new model path
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Prior /home/sa-shared path was not present on the watchtower login node
(the launcher's model-path pre-check surfaced FileNotFoundError immediately).
Move MODEL_PATH to /mnt/lustre01/slurm-shared/glm-model/GLM-5-NVFP4, which
is on Lustre and cross-mounted to every watchtower compute node.
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

- Rename benchmarks/multi_node/srt-slurm-recipes/GLM5/disagg/trtllm_dynamo/
  gb200_nvfp4/** -> benchmarks/multi_node/srt-slurm-recipes/trtllm/glm5/... .
- launch_gb200-nv.sh dynamo-trt+glm5 branch: git checkout v1.0.17,
  mkdir -p recipes/trtllm/glm5, cp -rT src/dst updated.
- configs/nvidia-master.yaml: 23 CONFIG_FILE= paths under
  glm5-fp4-gb200-dynamo-trt retargeted to recipes/trtllm/glm5/... ;
  matching doc-URL comments repointed at v1.0.17.
- perf-changelog: PR 1803 description updated to v1.0.17 + new overlay path.

gb300 sibling entries (recipes/GLM5/.../gb300_nvfp4/**) intentionally
untouched — separate PR.
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

hshrivastava-droid and others added 2 commits July 13, 2026 14:35
Picks up NVIDIA/srt-slurm#261, which sets the dynamo.trtllm
publish_events + metrics flags to false by default. Applies the
bump in three places: the git checkout in launch_gb200-nv.sh, the
23 source-URL comments in configs/nvidia-master.yaml, and the
perf-changelog description bullets for glm5-fp4-gb200-dynamo-trt.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

3 similar comments
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@hshrivastava-droid

Copy link
Copy Markdown
Collaborator

/reuse-sweep-run

@Ankur-singh Ankur-singh changed the title [NV]Add GLM-5 NVFP4 GB200 disagg non-mtp TRT-LLM benchmarks via Dynamo Add GLM-5 NVFP4 GB200 disaggregated Dynamo TRT-LLM STP benchmarks / 新增 GLM-5 NVFP4 GB200 分离式 Dynamo TRT-LLM STP 基准测试 Jul 15, 2026
@Ankur-singh

Ankur-singh commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

As a PR reviewer and CODEOWNER, I have reviewed this and have:

  • Verified that as of the moment of typing this, this is the latest version of PR_REVIEW_CHECKLIST.md
  • Verified that the general code quality meets the InferenceX standard and does not make the code quality any worse.
  • Verified that this PR has passed PR validation. Run Sweep #29287890247
  • Verified that this PR passes evals. Run Sweep #29287890247
  • Verified that speculative decoding PRs uses chat templates to align the AL distribution to real world
  • For agentic workloads: verified that speculative-decoding configs (EAGLE / MTP / draft models) run with simulated synthetic acceptance, with the acceptance-length value taken from the committed golden AL curve in golden_al_distribution/ for that model, thinking mode, and draft length. A submission may choose any supported draft length, but it may not substitute a different acceptance target.
  • Verified that the model architecture isn't changed with benchmark hacks like using --hf-overrides to skipping indexer for every x layers on models that don't natively support this. As a general rule, we won't accept optimizations that reduces the number of model architecture FLOPs. Anything that makes that same computation run faster is fair game; FLOPs at lower precisions is fine, given that the config passes private evals. As an general north star princple, we should only use optimizations which is used in production by customers that care about accuracy
  • If an company claims that they support vLLM/SGLang as first class LLM inference engines on their hardware, I have verified that the respective vLLM submission made using upstream https://hub.docker.com/u/vllm docker repo, upstream SGLang https://hub.docker.com/u/lmsysorg docker repo. The only exceptions are for new hardware, such as MI455X UALoE72, Vera Rubin NVL72, Rubin NVL8, etc., and for new model architectures where there is an actual reason why vLLM/SGLang does not fundamentally support them yet as supported by vLLM/SGLang community maintainers
  • If an company claims that they support vLLM/SGLang as first class upstream in-tree LLM inference engines on their hardware, I have have verified that the respective vLLM/SGLang submission has been made before additional frameworks (TRT-LLM, ATOM, etc.). The only exceptions are for new hardware, such as MI455X UALoE72, Vera Rubin NVL72, Rubin NVL8, etc., and for new model architectures where there is an actual reason why vLLM/SGLang does not fundamentally support them yet.
  • Verified that every single-node vLLM/SGLang recipe in this PR is documented in the official vLLM recipes and/or the SGLang cookbook:
    • I linked the corresponding upstream PR in the vLLM recipe repo or SGLang repo and verified that it is MERGED before this InferenceX PR merges. An opened, draft, or closed-without-merge upstream PR does not satisfy this requirement. If the matching recipe was already published, I linked the published recipe/cookbook page in the additional detail section below.
  • Verified that this PR does not patch the inference engine or serving stack — the pinned image must run as shipped. This covers .patch files / git apply / patch, inline patches embedded in benchmark scripts (e.g. a python3/sed heredoc that rewrites installed engine sources before serving), in-place edits of site-packages, monkey-patching, overwriting container files, and installing forked/rebuilt engine wheels on top of the pinned image. The only exception is a patch covered by a filled-out waiver at docs/waiver/<PR_NUMBER>.md — named after the PR that introduces the patch and filed in that same PR, stating what is patched, why the unmodified upstream image cannot run this benchmark, the upstream PR/issue link, and the removal plan — which I have linked below in the additional detail section.
  • If any of the above criteria cannot reasonably be satisfied, I have provided additional reasoning below.

Additional detail section:

  • This is a disaggregated Dynamo TRT-LLM STP submission; the speculative-decoding, AgentX, and single-node recipe requirements are not applicable. / 本 PR 是分离式 Dynamo TRT-LLM STP 提交;投机解码、AgentX 和单节点 recipe(配方)要求不适用。
  • The SGLang-first prerequisite is satisfied by merged PR #1780, which uses the upstream lmsysorg/sglang image. / 已合并的 PR #1780 使用上游 lmsysorg/sglang 镜像,已满足优先提交 SGLang 配置的要求。

Signed: Ankur-singh

@Klaud-Cold

Copy link
Copy Markdown
Collaborator

✅✅✅ Verdict: PASS ✅✅✅

✅ Check 0 (CODEOWNER): PASS — Ankur-singh is a listed owner of configs/nvidia-master.yaml; all other changed paths fall under the catch-all only.
✅ Check 1 (sweep on in-PR commit): PASS — head commit ccdc2d7e carries green executed multi-node 1k1k /, multi-node 8k1k / and multi-node eval / check-runs from run 29287890247 (single-node/agentic lanes correctly skipped for this multi-node-only PR).
✅ Check 2 (evals pass): PASS — 8 GSM8K evals for GLM-5-NVFP4/dynamo-trt/GB200 score 0.9575–0.9682, above the committed glm5 bar of 0.94 (utils/evals/thresholds.json); eval jobs ran the PR's exact image nvcr.io/nvidia/ai-dynamo/tensorrtllm-runtime:1.3.0-dev.1-cuda13.
➖ Check 3 (recipe link): N/A — disaggregated/multi-node submission (multinode: true, disagg: true, all recipes under benchmarks/multi_node/srt-slurm-recipes/**); the recipe-link requirement applies to single-node recipes only.
✅ Check 4 (reuse command): PASS — /reuse-sweep-run posted by hshrivastava-droid (COLLABORATOR).
✅ Check 5 (latest checklist): PASS — sign-off contains every item of the current docs/PR_REVIEW_CHECKLIST.md, all checked.
✅ Check 6 (upstream image / engine-first): PASS — entry is framework: dynamo-trt so the upstream vLLM/SGLang image rule doesn't apply to it; engine-first is satisfied by merged PR #1780 (glm5-fp4-gb200-dynamo-sglang on upstream lmsysorg/sglang, merged 2026-07-08), as the sign-off states.
✅ Check 7 (no architecture hacks): PASS — no hf-overrides/layer-or-expert trimming in the diff; trtllm_config sets only parallelism/scheduler/kv-cache knobs.
➖ Check 8 (spec-decode chat templates): N/A — no speculative decoding (STP, mtp0, spec_decoding: none).
✅ Check 9 (no engine patches): PASS — launcher clones NVIDIA/srt-slurm at v1.0.26 and overlays only this PR's committed recipe YAMLs (harness config); the pinned engine image runs as shipped.
➖ Check 10 (agentic golden AL): N/A — no agentic speculative-decoding changes.

cquil11 added 4 commits July 15, 2026 15:16
Set the top-level kv-p2p-transfer field required by disaggregated matrix validation. The TRT-LLM recipes retain UCX as their internal cache transceiver backend.\n\n中文:为 GLM-5 分离式配置声明顶层 NIXL KV 传输方式,以满足矩阵校验要求;TRT-LLM recipe 继续使用 UCX 作为内部缓存传输后端。
@cquil11
cquil11 merged commit 1b0f55d into main Jul 15, 2026
25 checks passed
@cquil11
cquil11 deleted the rihuo/glm5-gb200-dynamo-trt branch July 15, 2026 20:45
@Klaud-Cold

Copy link
Copy Markdown
Collaborator

✅✅✅ Verdict: PASS ✅✅✅

✅ Check 0 (CODEOWNER): PASS — Ankur-singh is a listed owner of configs/nvidia-master.yaml; all other changed paths fall under the catch-all only, which a recognized CODEOWNER satisfies.
✅ Check 1 (sweep on in-PR commit): PASS — run 29287890247 executed on ccdc2d7e, still in this PR, with all multi-node 1k1k /, multi-node 8k1k /, and multi-node eval / jobs success (single-node jobs correctly skipped for this multi-node config).
✅ Check 2 (evals pass): PASS — 8 GSM8K results for GLM-5-NVFP4 in that run's eval_results_all artifact score 0.9575–0.9682, well above the glm5 bar of 0.92 in utils/evals/validate_scores.py, on the same nvcr.io/nvidia/ai-dynamo/tensorrtllm-runtime:1.3.0-dev.1-cuda13 image this PR pins.
➖ Check 3 (recipe link): N/A — disaggregated/multi-node submission (multinode: true, disagg: true, files under benchmarks/multi_node/srt-slurm-recipes/**); the recipe-link requirement applies to single-node recipes only.
✅ Check 4 (reuse command): PASS — /reuse-sweep-run posted by hshrivastava-droid (COLLABORATOR).
✅ Check 5 (latest checklist): PASS — every item in the current docs/PR_REVIEW_CHECKLIST.md template is present and checked in the sign-off.
✅ Check 6 (upstream image / engine-first): PASS — the new entry is framework: dynamo-trt (no vLLM/SGLang entries changed, so the upstream-image rule does not apply to it), and the SGLang-engine submission for glm5 on GB200 already exists (glm5-fp4-gb200-dynamo-sglang, upstream lmsysorg/sglang image, merged via PR #1780 as documented in the sign-off).
✅ Check 7 (no architecture hacks): PASS — no --hf-overrides / model-override / layer-trimming knobs in the diff; recipe YAMLs set only parallelism, batching, kv-cache, and transport settings.
➖ Check 8 (spec-decode chat template): N/A — no speculative decoding in this PR (all configs are STP mtp0, spec_decoding: none).
✅ Check 9 (no engine patches): PASS — the launcher pins NVIDIA/srt-slurm at v1.0.26 and only cp -rT-adds this PR's own reviewed recipe YAMLs under recipes/trtllm/glm5/ (a path that does not exist upstream, so nothing shipped is overwritten); the TRT-LLM engine image runs as shipped. Informational: the in-diff comment links to srt-slurm/blob/v1.0.26/recipes/trtllm/glm5/... are dead — those recipes exist only in this repo.
➖ Check 10 (agentic golden AL): N/A — no agentic speculative-decoding changes.

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

Projects

Development

Successfully merging this pull request may close these issues.

6 participants