Skip to content

perf(glm5.2): refresh the B200 FP4 Dynamo SGLang AgentX aggregate curve / perf(glm5.2):刷新 B200 FP4 Dynamo SGLang AgentX 聚合曲线 - #4286

Merged
Oseltamivir merged 3 commits into
mainfrom
ankur/glm52-fp4-b200-dynamo-sglang-agentx
Oct 19, 2026
Merged

Oseltamivir merged 3 commits into
mainfrom
ankur/glm52-fp4-b200-dynamo-sglang-agentx

Conversation

@Ankur-singh

@Ankur-singh Ankur-singh commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

[by Claude Code]

Summary

GLM-5.2 NVFP4 on B200 with Dynamo and SGLang is published from glm5.2-fp4-b200-dynamo-sglang-agentic-agg (TP8 at c1, c4 and c8) and glm5.2-fp4-b200-dynamo-sglang-agentic-disagg (1P4D at c48, 1P1D DEP8 at c64), on lmsysorg/sglang:nightly-dev-20260910-00840301. This PR refreshes the aggregate key in place: it moves glm5.2-fp4-b200-dynamo-sglang-agentic-agg to the image and Dynamo build of glm5.2-fp4-b300-dynamo-sglang-agentic-agg-tp4 (lmsysorg/sglang:nightly-dev-cu13-20260901-07c8f729, Dynamo 1.5.0.dev20260903) and replaces its three TP8 points with six points from the low-latency end to the throughput end. agg-variants.yaml is rewritten for these points and keeps the checkpoint revision pin. The 2026-09-01 nightly is older than the key's current image; it is the image the B300 key already runs these settings on, including the DP-attention path.

AgentX draws one B200 Dynamo SGLang curve for this model across the aggregated and disaggregated keys. The -disagg key is unchanged and not swept, so this PR's points replace the published ones. SGLang cookbook coverage for these settings must merge before this PR does.

AI model disclosure
  • Model/version: claude-opus-5-5 (Claude Opus 5.5, run through Claude Code)
  • Role: prepared the configuration and the perf-changelog entry, ran local configuration checks, and drafted the commits and this description. Delegated workflow agents ran the same model, claude-opus-5-5, and assisted with these steps.
PR checklist and change type

Type of Change

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

Checklist

  • I have completed the AI model disclosure and kept it current
  • I have tested my changes locally (configuration generation, matrix and changelog checks; GPU results come from this PR's sweep)
  • I have updated documentation if necessary
  • If python -m infx.matrix.changed --base origin/main lists affected config keys, I have appended one new entry covering them to the physical end of inferencex-e2e/perf-changelog.yaml; if it lists none, I have added none. I have not edited historical entries
  • If this PR appends an inferencex-e2e/perf-changelog.yaml entry, it carries exactly one primary sweep label (a maintainer applies it on fork PRs): full-sweep-fail-fast (recommended), full-sweep-enabled, or non-canary-full-sweep-enabled. Optional modifiers all-evals, evals-only, and agentx-fast require a primary label; the last two block reuse while applied.
  • Before merging via reuse, an authorized maintainer (OWNER/MEMBER/COLLABORATOR) has commented /use <run_id> (or the legacy /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 primary sweep label will no longer automatically kick off new sweeps. Remove and re-add the primary sweep label to force a new sweep.
中文

GLM-5.2 NVFP4 在 B200 上基于 Dynamo 与 SGLang 的已发布曲线来自 glm5.2-fp4-b200-dynamo-sglang-agentic-agg(TP8,并发 1、4、8)和 glm5.2-fp4-b200-dynamo-sglang-agentic-disagg(并发 48 的 1P4D 与并发 64 的 1P1D DEP8),使用 lmsysorg/sglang:nightly-dev-20260910-00840301 镜像。本 PR 原地刷新聚合配置:将 glm5.2-fp4-b200-dynamo-sglang-agentic-agg 迁移到与 glm5.2-fp4-b300-dynamo-sglang-agentic-agg-tp4 相同的镜像和 Dynamo 版本(lmsysorg/sglang:nightly-dev-cu13-20260901-07c8f729,Dynamo 1.5.0.dev20260903),并以 6 个测试点替换原有的 3 个 TP8 测试点,覆盖从低延迟端到高吞吐量端的整条曲线。agg-variants.yaml 按这些测试点重写,并保留检查点的 revision 固定。2026-09-01 nightly 镜像早于该配置当前使用的镜像;B300 配置已在该镜像上使用这些设置(包括 DP attention 路径)。

AgentX 将该模型在 B200 上的 Dynamo SGLang 聚合与分离式配置绘制为同一条曲线。-disagg 配置保持不变且不参与本次扫描,因此本 PR 的测试点将替换已发布的测试点。对应设置的 SGLang cookbook 文档须在本 PR 合并前合并。

AI 模型使用说明:使用 claude-opus-5-5(Claude Opus 5.5,通过 Claude Code 运行)准备配置和 perf-changelog 条目、运行本地配置检查,并起草提交和本说明;委派的工作流 agent 使用同一模型 claude-opus-5-5,协助完成上述工作。

改动类型为配置变更。本地测试仅包括配置生成、matrix 和 changelog 检查,GPU 结果来自本 PR 的扫描。检查清单已在上方填写。

Move glm5.2-fp4-b200-dynamo-sglang-agentic-agg to SGLang
nightly-dev-cu13-20260901-07c8f729 and Dynamo 1.5.0.dev20260903 (KV
router), the image and Dynamo build of the B300 aggregated key, with
one aggregated engine per point, EAGLE speculative decoding (5 steps, 6
draft tokens) and HiCache write-back host-DRAM offload. HiCache takes
170 GB per rank, so the KV and DSA indexer host pools of the four ranks
on each NUMA node fit that node. agg-variants.yaml is rewritten for the
new points and keeps the checkpoint revision pin.

Sweep six points in place of the three TP8 points: TP8 and TP4 at
concurrency 1, TP4 at concurrency 4, 8 and 12, and TP8 MoE with DP8
attention at concurrency 32. At concurrency 1, admission and decode CUDA
graphs are capped at 2 for TP8 and at 1 for TP4, so fan-out subagents
queue instead of widening the decode batch. The DP8 attention point runs
attention TP1 per rank with the DP LM head and the prefill delayer,
mem-fraction-static 0.82, and 8192-token prefill chunks and 16 running
requests per rank. The disaggregated key is unchanged.

将 glm5.2-fp4-b200-dynamo-sglang-agentic-agg 迁移到 SGLang
nightly-dev-cu13-20260901-07c8f729 与 Dynamo 1.5.0.dev20260903(KV 路由),
即 B300 聚合配置所用的镜像和 Dynamo 版本;每个测试点使用一个聚合引擎,
采用 EAGLE 投机解码(5 步,6 个草稿 token)和 HiCache write-back 主机
内存卸载。HiCache 每个 rank 170 GB,使每个 NUMA 节点上四个 rank 的 KV 与
DSA indexer 主机缓存池能够放入该节点的内存。agg-variants.yaml 按新的测试
点重写,并保留检查点的 revision 固定。

以 6 个测试点替换原有的 3 个 TP8 测试点:TP8 与 TP4 并发 1,TP4 并发 4、
8、12,以及 TP8 MoE 配合 DP8 attention 的并发 32。在并发 1 下,TP8 的准
入请求数与解码 CUDA graph 上限为 2,TP4 为 1,使 fan-out 子 agent 排队等
待,而不是扩大解码批次。DP8 attention 测试点每个 rank 的 attention TP 为
1,启用 DP LM head 与 prefill delayer,mem-fraction-static 为 0.82,每个
rank 的预填充分块为 8192 token、运行请求数上限为 16。分离式配置保持不
变。

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

Copy link
Copy Markdown
Contributor

Thanks for the contribution!

  • Review: If this PR changes files owned by someone other than a repository admin or @SemiAnalysisAI/core, ask one eligible CODEOWNER to complete the latest PR_REVIEW_CHECKLIST.md before contacting a core maintainer on Slack. Follow the template exactly, including As a PR reviewer and CODEOWNER, I have reviewed this and have, so sign-off verification triggers.
  • PR verification: Sweeps run only when the PR appends an inferencex-e2e/perf-changelog.yaml entry and carries exactly one primary label: full-sweep-fail-fast (strongly recommended; canary plus per-matrix fail-fast), full-sweep-enabled (canary; matrix jobs continue after a failure), or non-canary-full-sweep-enabled (no canary or fail-fast). The modifiers all-evals, evals-only, and agentx-fast require a primary label. On fork PRs, a maintainer applies the label. See sweep labels and reuse.
  • After merging: PR authors must ensure all GitHub Actions jobs pass. Transient failures often pass on rerun; see how to rerun failed jobs.
中文

感谢你的贡献!

  • **审阅:**如果 PR 修改的文件归属于仓库管理员及 @SemiAnalysisAI/core 之外的 CODEOWNER,请先联系一位有资格的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,再通过 Slack 联系核心维护者。必须严格遵循模板,并保留 As a PR reviewer and CODEOWNER, I have reviewed this and have,才能触发签核验证。
  • **PR 验证:**只有当 PR 在 inferencex-e2e/perf-changelog.yaml 末尾追加了条目,并且恰好带有一个主标签时,才会运行扫描:full-sweep-fail-fast(强烈推荐;canary 加逐矩阵 fail-fast)、full-sweep-enabled(有 canary;矩阵任务在失败后继续运行)或 non-canary-full-sweep-enabled(无 canary,也无 fail-fast)。修饰标签 all-evals、evals-only 和 agentx-fast 必须与主标签一起使用。fork PR 的标签由维护者添加。参见扫描标签与复用。
  • **合并后:**PR 作者必须确保所有 GitHub Actions 任务通过。临时性失败通常可以通过重新运行恢复;参见重新运行失败任务的说明。

Point the glm5.2-fp4-b200-dynamo-sglang-agentic-agg
perf-changelog entry at PR #4286.

将 glm5.2-fp4-b200-dynamo-sglang-agentic-agg 的 perf-changelog 条目链接到 PR #4286。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Ankur-singh Ankur-singh added the full-sweep-enabled Full sweep with canary gate; matrix jobs run to completion despite failures label Oct 18, 2026

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I reviewed this PR and found no bugs. These are CODEOWNER-owned NVIDIA benchmark paths, and the PR changes a lot of engine tuning (TP4 base, DP8 attention point, new image and Dynamo build), so a human owner should still look it over.

What was reviewed:

  • Each of the six master search-space points against its recipe override: the override names, tp (4 vs 8 through gpus/tensor-parallel-size), dp-attn and conc all match.
  • The perf-changelog entry is added only at the tail, existing bytes are unchanged, and it covers the one affected key. Its pr-link is still the pull/XXX placeholder.
  • The new recipe comments explain specific lines; they are not header or history comments.
Extended reasoning...

The change rewrites the GLM-5.2 NVFP4 B200 Dynamo+SGLang AgentX aggregate srt-slurm recipe, updates the matching nvidia-master.yaml key (image, router version, dram-utilization, and six search points instead of three), and adds one perf-changelog entry. It touches no security-sensitive surface; it is benchmark configuration only. Both the recipe directory and nvidia-master.yaml are covered by CODEOWNERS entries, which rules out auto-approval. The tuning choices also need a domain owner's judgment, and the description says the PR depends on an external SGLang cookbook change merging first.

This review covers commit dd11e6f, which is no longer the latest commit on this pull request; later commits are not covered by it.

@github-actions

Copy link
Copy Markdown
Contributor

@nvpohanh

Copy link
Copy Markdown
Collaborator

[by Claude Code] The SGLang cookbook integration of this PR's AgentX config (glm5.2-fp4-b200-dynamo-sglang-agentic-agg) will happen in sgl-project/sglang#45111, in the Agentic Long-Context Deployment section of the GLM-5.2 cookbook page.

This PR has no authorized /use <run_id> comment yet, so the cookbook shows the recipe at this PR's head (3f3f6f5c7) as "in progress". A later cookbook PR switches it to the measured run once a run is pinned or this PR merges.

@nvpohanh

Copy link
Copy Markdown
Collaborator

[by Claude Code] sgl-project/sglang#45111 has been merged. This PR's AgentX config (glm5.2-fp4-b200-dynamo-sglang-agentic-agg) is now in the Agentic Long-Context Deployment section of the SGLang GLM-5.2 cookbook: https://docs.sglang.io/cookbook/autoregressive/GLM/GLM-5.2#agentic-long-context-deployment

This PR has no authorized /use <run_id> comment yet, so the cookbook shows the recipe at this PR's head (3f3f6f5c7) as "in progress". A later cookbook PR switches it to the measured run once a run is pinned or this PR merges.

@nvpohanh

Copy link
Copy Markdown
Collaborator

/use 39166018772

@github-actions

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

@nvpohanh staged run 39166018772.

This run remains available across future /stage-results requests. Staging the same run ID again updates its staged data. Staging workflow

@nvpohanh

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. Please link to GitHub Action workflow that shows this.
  • Verified that this PR passes evals. Please link to GitHub Action workflow that shows this.
  • Verified that speculative decoding PRs uses chat templates to align the AL distribution to real world
  • Verified that every draft model and draft head is served as it ships: the draft that ships with the served checkpoint, at its stored precision, through the pinned upstream image's default handling, with the shipped and effective draft precision recorded in the additional detail section. No submission-side quantization, dtype override, checkpoint substitution, or patch may lower draft precision below that default, regardless of eval results or AL. Explicitly verified that SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE is not enabled in the effective recipe, including inherited settings; enabling it is prohibited going forward, and historical runs do not grant an exception. See Draft-model precision for what counts as the default and the MLPerf comparison.
  • 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 infx/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 against the current MODELS.md that this PR does not submit a deprecated model, scenario, or model-scenario combination.
  • 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; target/verifier FLOPs at lower precisions is fine, given that the config passes private evals, but this does not permit lowering draft-model or draft-head precision below what ships. As an general north star princple, we should only use optimizations which is used in production by customers that care about accuracy
  • For affected Dynamo TRT-LLM benchmarks, verified that iteration/KV-cache metrics are collected and published under the pinned Dynamo implementation and effective engine settings. Resolve the installed Dynamo version separately from the container tag; use supported metrics controls without requiring KV events. Record the version and configuration evidence in the additional detail section. See verifier Check 17. N/A for unaffected serving paths or frameworks without these Dynamo settings.
  • 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 affected vLLM/SGLang production serving configuration in this PR, including Dynamo deployments, is documented in the official vLLM recipes and/or the SGLang cookbook, for both single-node and multi-node aggregated and disaggregated serving. The documentation covers production-useful flags, environment variables, and launch commands (including prefill, decode, and router/frontend commands for disaggregation); InferenceX-only benchmark/harness settings are excluded with reasoning in the additional detail section:
    • I linked the corresponding upstream PR in the vLLM recipe repo or SGLang cookbook source 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 this PR uses append-only: true, verified that it only adds generated points or recipe variants inside a selected existing config/scenario and existing same-image visual curve: every previously generated point remains present with the same recipe, no prior point is removed or rerun, and every benchmark-affecting change in the complete diff can affect only the corresponding newly appended points (never an existing point), regardless of which file contains it.
  • If any of the above criteria cannot reasonably be satisfied, I have provided additional reasoning below.
  • Reported measured throughput/E2EL Pareto counts and evidence per affected curve (≥5 points strongly recommended). Below 5 or unverifiable: tag a core maintainer for review; recorded admin bypass required before merge. N/A if no curves are affected. Details.

Additional detail section:

  • Assessed head: 3f3f6f5c78ec10dff2133e2d0d5c29416e41b1ec. Checklist template matches main at d892f56af. The diff only changes config: the rewritten glm5.2/sglang/b200-fp4/agentx/agg-variants.yaml, the glm5.2-fp4-b200-dynamo-sglang-agentic-agg entry in nvidia-master.yaml, and one perf-changelog.yaml entry appended at the end. Every master search-space point maps to its recipe override, with matching TP, DP attention and concurrency. The -disagg key and its recipe are unchanged.

  • PR validation: Run Sweep 39166018772 (pull_request, head 3f3f6f5c7, attempt 1) completed success. All six benchmark jobs succeeded and none were skipped: the TP8 c1 canary, plus multi-node agentic / TP4 c1, c4, c8 and c12 and TP8 DP8-attention c32. The multi-node agentic eval / job also succeeded. The generic single-node and eval / jobs were skipped only because the PR changes no single-node config. No benchmark point dropped a request to an error; only warmup records are excluded. Pinned with /use 39166018772.

  • Evals: in eval_results_all of run 39166018772, gsm8k em_strict is 0.9689 (n=1319, TP8 DP8-attention c32, infrastructure_success: true). That clears the gsm8k threshold of 0.90 that infx/evals/thresholds.yaml applies to glm5.2. The eval ran on the config image, lmsysorg/sglang:nightly-dev-cu13-20260901-07c8f729.

  • Chat template: the AgentX client (agentx profile) drives the OpenAI chat endpoint. The run's profile_export_aiperf.json (TP4 c1) records input_config.endpoint.type: chat with streaming: true.

  • Draft precision (shipped = effective = BF16):

    • Shipped: the embedded MTP head (layer 78) of nvidia/GLM-5.2-NVFP4 at the recipe-pinned revision aec724e8. hf_quant_config.json excludes model.layers.78* from NVFP4. The safetensors index lists 791 model.layers.78.* tensors, none of them scale tensors; layer 77 has 2,304. The head is therefore stored in BF16.
    • Pinned image default: GlmMoeDsaForCausalLMNextN (in glm4_moe.py at SGLang 07c8f729) subclasses DeepseekV3ForCausalLMNextN. For modelopt_fp4, DeepseekModelNextN drops the quant config, so the draft is built unquantized. The FP8 MoE cast in enable_nextn_moe_bf16_cast_to_fp8 needs both SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE true and the DeepGEMM MoE backend.
    • Effective: the recipe sets no speculative-draft-model-quantization, draft path, draft dtype, draft KV override or SGLANG_GLM_NEXTN_MOE_PTPC. All worker logs print Overriding DeepseekV3ForCausalLMNextN quant config for modelopt_fp4. GlmMoeDsaForCausalLMNextN loads 5.37 GB per rank at TP4 and 2.78 GB per rank at TP8, about 21.5 GB in total. That matches BF16 experts (about 19.4 GB for 257 x 3 x 6144 x 2048 parameters), not NVFP4 (about 5.5 GB).
    • SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE: not enabled. The base recipe sets it to '0', no override changes it, and the worker env of all seven server jobs shows =0. At 07c8f729, environ.py declares it EnvBool(False) and parses "0" as False.
  • Golden AL: from infx/golden_al_distribution/glm5.2_mtp.yaml, glm-5.2-fp8, thinking_on, 5 speculative tokens: 3.61. The recipe uses speculative-num-steps: 5, speculative-eagle-topk: 1 and speculative-num-draft-tokens: 6. The job log shows THINKING_MODE: thinking_on. All six benchmark workers show SGLANG_SIMULATE_ACC_LEN=3.61, SGLANG_SIMULATE_ACC_METHOD=match-expected and SGLANG_SIMULATE_ACC_TOKEN_MODE=real-draft-token; infx/srt_slurm/synthetic_acceptance.py injects them. The eval job runs without them, as intended.

  • MODELS.md: GLM-5.2 (glm5.2) agentic coding is active.

  • No architecture hacks: there is no --hf-overrides, --json-model-override-args or model-file edit. DP attention, the DP LM head and the prefill delayer split or schedule the same computation.

  • Dynamo TRT-LLM metrics: N/A. The PR affects only a dynamo-sglang config.

  • Upstream image: lmsysorg/sglang:nightly-dev-cu13-20260901-07c8f729 is published on Docker Hub under lmsysorg (amd64 and arm64, 2026-09-01).

  • Engine-first ordering: the PR changes only a dynamo-sglang (open-source engine) entry.

  • SGLang cookbook: sgl-project/sglang#45111 is MERGED (2026-10-19T07:24:09Z). The published page is GLM-5.2 — Agentic Long-Context Deployment.

    • Coverage: its data (docs/src/snippets/agentx/zai-org/glm-5.2.jsx on main, provenance PR perf(glm5.2): refresh the B200 FP4 Dynamo SGLang AgentX aggregate curve / perf(glm5.2):刷新 B200 FP4 Dynamo SGLang AgentX 聚合曲线 #4286 at 3f3f6f5c7) covers all six deployments of glm5.2-fp4-b200-dynamo-sglang-agentic-agg: TP8 c1, TP4 c1/c4/c8/c12, and TP8 DP8-attention c32. Each uses the same image and the golden AL of 3.61.
    • Comparison method: I decoded the published commands with the page's own decoder (_agentx.jsx) and compared them with the effective recipe at 3f3f6f5c7, point by point. Every production-useful worker flag and environment variable matches, including parallelism, DP attention, the DP LM head, the prefill delayer, MTP, the HiCache settings and size, mem-fraction-static, chunked prefill, max-running-requests, cuda-graph-max-bs, the cutedsl BF16 GEMM backend, the parsers, SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE=0, SGLANG_TIMEOUT_KEEP_ALIVE and TORCH_CUDA_ARCH_LIST.
    • Frontend and Dynamo: the Dynamo frontend args match: router-mode kv, a session-affinity TTL of 3600 and the disabled thresholds. The install step pins ai-dynamo==1.5.0.dev20260903, as the recipe does.
    • Excluded as InferenceX-only:
      • --enable-metrics, PYTHONUNBUFFERED, DYN_SKIP_SGLANG_LOG_FORMATTING: metrics and logging, with no serving effect.
      • PIP_BREAK_SYSTEM_PACKAGES, PYTHONNOUSERSITE: let srt-slurm install Dynamo at job start. The cookbook's install step covers this.
      • AIPERF_*, AGENTIC_WARMUP_GRACE_PERIOD: benchmark environment.
      • Slurm, health-check, sbatch/srun, observability and etcd/NATS placement settings.
  • No patches: there are no patches, setup scripts, source mounts or site-packages edits, and the SGLang image runs as shipped. Dynamo comes from the published 1.5.0.dev20260903 wheel through srt-slurm's standard dynamo.install. No waiver is needed.

  • append-only: N/A. The changelog entry does not use append-only: true.

  • Pareto coverage: the PR affects one curve, GLM-5.2 / agentic-coding / B200 dynamo-sglang / FP4. I measured it as p90_e2el against tput_per_gpu, from results_bmk of run 39166018772 (attempt 1, 3f3f6f5c7, one image). infx.workflows.pareto_coverage from main reports 6 measured points, 0 invalid, and 5 frontier points (PASS):

    • TP8 c1 (14.50 s, 2,833)
    • TP4 c4 (15.14 s, 7,803)
    • TP4 c8 (18.92 s, 12,228)
    • TP4 c12 (31.41 s, 13,576)
    • TP8 DP8-attention c32 (35.31 s, 19,534)

    TP4 c1 (18.34 s, 5,064) is dominated.

Signed: nvpohanh

@github-actions

Copy link
Copy Markdown
Contributor

✅✅✅ Verdict: PASS ✅✅✅

Passed and not applicable checks

✅ Check 0 (CODEOWNER): PASS — @nvpohanh is a named owner of inferencex-e2e/configs/nvidia-master.yaml and the **/b200-*/ srt-slurm recipe path; perf-changelog.yaml falls under the catch-all only.

✅ Check 1 (Passing sweep on in-PR commit): PASS — Run Sweep 39166018772 (pull_request, attempt 1) ran on PR head 3f3f6f5c7; all six executed multi-node agentic / and canary jobs, plus multi-node agentic eval /, concluded success. The generic single-node */ and eval / jobs were skipped only because the PR changes no single-node config.

✅ Check 2 (Evals pass): PASS — eval_results_all from run 39166018772 reports gsm8k em_strict 0.9689 (n=1319, infrastructure_success: true, TP8 DP8-attention c32), above the 0.90 default threshold that applies to glm5.2, on the config image lmsysorg/sglang:nightly-dev-cu13-20260901-07c8f729.

✅ Check 3 (Upstream recipe): PASS — sgl-project/sglang#45111 is MERGED (2026-10-19T07:24:09Z). The glm-5.2.jsx data on main (provenance PR 4286 at 3f3f6f5c7) covers TP8 c1, TP4 c1/c4/c8/c12 and TP8 DP8-attention c32 on the same image. Worker flags and env match the recipe for every point, as do the KV-router frontend args and the ai-dynamo==1.5.0.dev20260903 install. The exclusions (--enable-metrics, logging, pip, AIPerf and Slurm settings) are InferenceX-only and justified in the sign-off.

✅ Check 4 (Reuse command): PASS — /use 39166018772 was posted by nvpohanh (COLLABORATOR) on its own line.

✅ Check 5 (Latest checklist): PASS — every item in the current PR_REVIEW_CHECKLIST.md template, including the upstream-PR sub-item, appears checked in the sign-off.

✅ Check 6 (Upstream image / ordering): PASS — the entry uses upstream lmsysorg/sglang:nightly-dev-cu13-20260901-07c8f729 with framework: dynamo-sglang (an open-source engine), so the ordering rule does not apply.

✅ Check 7 (Deprecated models): PASS — MODELS.md lists GLM-5.2 (glm5.2) agentic coding as active on 2026-10-19.

✅ Check 8 (No architecture hacks): PASS — the diff contains no --hf-overrides, --json-model-override-args or model-file edits; DP attention, DP LM head and the prefill delayer only partition or schedule the same computation.

✅ Check 9 (Spec-decode chat template): PASS — the AgentX client drives the OpenAI /v1/chat/completions endpoint, so MTP points go through the chat template.

✅ Check 10 (No engine patches): PASS — no patches, inline source rewrites or forked engine wheels; the SGLang image runs as shipped, and Dynamo is the published 1.5.0.dev20260903 wheel.

✅ Check 11 (Golden AL): PASS — the job log shows SGLANG_SIMULATE_ACC_LEN=3.61, match-expected and real-draft-token injected by infx.srt_slurm.synthetic_acceptance with THINKING_MODE: thinking_on. That equals glm5.2_mtp.yaml thinking_on level 5 (3.61), matching speculative-num-steps: 5.

➖ Check 12 (Append-only): N/A — the new changelog entry does not set append-only: true.

✅ Check 13 (Draft precision): PASS — the embedded MTP head (layer 78) of nvidia/GLM-5.2-NVFP4@aec724e8 is excluded from NVFP4 by hf_quant_config.json (model.layers.78*), so it is stored in BF16. The recipe sets no draft quantization, dtype or path override. SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE is '0' in the recipe, and the worker env in the job log shows =0 (no =1).

✅ Check 14 (Pareto coverage): PASS — the curve GLM-5.2 / agentic-coding / B200 dynamo-sglang / FP4 / p90 from run 39166018772 results_bmk (one image) has 6 measured points, 0 invalid and 5/5 frontier points per infx.workflows.pareto_coverage; TP4 c1 is dominated.

✅ Check 15 (PR description): PASS — the old/new image, Dynamo build, six-point topology, unchanged -disagg key (1P4D c48, 1P1D c64 on nightly-dev-20260910-00840301) and B300 image claim all match the code at 3f3f6f5c7.

✅ Check 16 (NVIDIA overview): PASS — the NVIDIA overview Framework Recipes table has a GLM-5.2 row with a populated SGLang cell.

➖ Check 17 (Metrics publication): N/A — the PR affects only a dynamo-sglang config, not a Dynamo TRT-LLM path with these metrics controls.

Assessed commit: 3f3f6f5c78ec10dff2133e2d0d5c29416e41b1ec.

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

lgtm

@Oseltamivir
Oseltamivir merged commit dcb1eee into main Oct 19, 2026
26 checks passed
@Oseltamivir
Oseltamivir deleted the ankur/glm52-fp4-b200-dynamo-sglang-agentx branch October 19, 2026 11:11
Duyi-Wang added a commit that referenced this pull request Oct 19, 2026
同步 main 新增的 #4286 性能记录,消除 changelog 校验中的历史删除差异;保留不经过 canary 的全量 sweep 标签。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

full-sweep-enabled Full sweep with canary gate; matrix jobs run to completion despite failures

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants