Skip to content

[NVIDIA][AgentX] Tune GLM-5.2 FP8 B300 SGLang MTP recipes and extend grid to c28 / [NVIDIA][AgentX] 调优 GLM-5.2 FP8 B300 SGLang MTP 配方并将并发扩展至 c28 - #3836

Open
hshrivastava-droid wants to merge 1 commit into
mainfrom
glm52-fp8-b300-sglang-agentx-mtp-tune
Open

hshrivastava-droid wants to merge 1 commit into
mainfrom
glm52-fp8-b300-sglang-agentx-mtp-tune

Conversation

@hshrivastava-droid

@hshrivastava-droid hshrivastava-droid commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Config-only update to glm5.2-fp8-b300-sglang-agentic-mtp: per-concurrency MTP depth and admission tuning, image pinned by digest, and the grid extended to c20, c24 and c28 (uncapped admission).

AI model disclosure
  • claude-sonnet-5-5 (Claude Sonnet 5.5): prepared the config change and PR text.

@github-actions

github-actions Bot commented Oct 8, 2026

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 任务通过。临时性失败通常可以通过重新运行恢复;参见重新运行失败任务的说明。

@hshrivastava-droid hshrivastava-droid added the full-sweep-enabled Full sweep with canary gate; matrix jobs run to completion despite failures label Oct 8, 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.

Nothing blocking. The comments below are optional suggestions. There is no need to push a fix for them before merging.

Beyond the inline pr-link finding, I also looked at the per-concurrency max-running-requests drop (e.g. c4: 8→3, c12: 24→5, c16: 32→7, now below CONC) and the varying speculative-num-steps/draft-tokens per point — these appear to be intentional MTP/admission tuning rather than bugs, so I'm not flagging them separately.

Extended reasoning...

Config-only change to a single GLM-5.2 FP8 B300 SGLang recipe plus matching master config and an appended perf-changelog entry; no auth/crypto/permission surface. One confirmed issue (placeholder pr-link of pull/0) is already posted inline. I additionally reviewed the max-running-requests-below-concurrency and per-point speculative-decoding depth changes noted as candidates and found them consistent with intentional tuning, not separate bugs worth inline comments.

Comment thread inferencex-e2e/perf-changelog.yaml Outdated
description:
- "Tune GLM-5.2 FP8 B300 SGLang MTP depth, admission caps, and HiCache scheduling per concurrency."
- "Pin the SGLang image by digest."
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/0

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.

🟡 (optional) The new perf-changelog entry's pr-link is https://github.com/SemiAnalysisAI/InferenceX/pull/0, which looks like an unfilled placeholder rather than the real PR number, unlike every prior entry (e.g. pull/3603 immediately above). If merged as-is, maintainers tracing this performance change back to its review discussion get a dead/wrong link instead of the actual PR. Fix: replace pull/0 with the actual PR number before merge.

Why this was flagged

inferencex-e2e/perf-changelog.yaml:9421 sets pr-link to pull/0 for the newly appended glm5.2-fp8-b300-sglang-agentic-mtp entry, while the file's established convention (seen at line 9410, pull/3603) is one real PR link per block. pull/0 does not correspond to any real PR in SemiAnalysisAI/InferenceX. Anyone auditing this perf change via the changelog's pr-link, as the append-only changelog is meant to support, gets a broken/placeholder reference instead of the review history.

Verification: nit. The new appended block at inferencex-e2e/perf-changelog.yaml:9414-9421 ends with pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/0 (line 9421). Every other block uses a real PR number — the immediately preceding block ends .../pull/3603 (line 9412). pull/0 is not a valid GitHub PR number and is clearly an unfilled placeholder, so anyone tracing this perf change back via the changelog's pr-link gets a dead/placeholder reference instead of the actual PR.

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

@nvpohanh

nvpohanh commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator

[by Claude Code] The SGLang cookbook integration of this PR's AgentX config (glm5.2-fp8-b300-sglang-agentic-mtp) will happen in sgl-project/sglang#43083, 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 PR-head recipe as "in progress" until a measured run is pinned.

@nvpohanh

nvpohanh commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator

[by Claude Code] sgl-project/sglang#43083 has been merged. This PR's AgentX config (glm5.2-fp8-b300-sglang-agentic-mtp) 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 (03ffb35db) as "in progress". It switches to the measured run at the next cookbook sync after a run is pinned or this PR merges.

@github-actions

github-actions Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

@nvpohanh staged run 37815475708: https://inferencemax-app-git-staging-semianalysisai.vercel.app/inference?i_dates=2026-10-08~r37815475708

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

@nvpohanh

nvpohanh commented Oct 9, 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. 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
  • 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:

  • Scope: this PR changes only glm5.2-fp8-b300-sglang-agentic-mtp (framework: sglang, single-node aggregated TP8 on B300, agentic coding). It has one commit, 3120bc1b9.

    • It changes the recipe benchmarks/single_node/srt-slurm-recipes/glm5.2/sglang/b300-fp8-mtp/agentic.yaml and the master-config entry, and it appends one perf-changelog.yaml entry.
    • The recipe sets the MTP depth and admission cap per point. At C16 it also sets prefill-decode-interval: 8 and hicache-write-policy: write_through. It adds C20, C24 and C28 with admission at 2x CONC, and conc-list grows from [1, 4, 8, 12, 16] to [1, 4, 8, 12, 16, 20, 24, 28]. The image is now pinned by digest.
    • Code quality: the change is config-only, and every override resolves as intended in the logged server args. The new recipe comment says that graph maxima follow admission, and the run confirms it. At C4, C12 and C16, cuda-graph-max-bs stays at 2x CONC, but SGLang captures decode and verify graphs only up to the admission cap (C4 captures bs=[1, 2, 3]). The changelog entry is appended at the end, and its pr-link points to [NVIDIA][AgentX] Tune GLM-5.2 FP8 B300 SGLang MTP recipes and extend grid to c28 / [NVIDIA][AgentX] 调优 GLM-5.2 FP8 B300 SGLang MTP 配方并将并发扩展至 c28 #3836.
  • PR validation: Run Sweep 38304664439 ran on head 3120bc1b90db358d8bca1031225c110f3c60e579, the PR's only commit (attempt 2, success). It is pinned with /use 38304664439.

    • All eight benchmark jobs succeeded: C1 (canary job), C4, C8, C12, C16, C20, C24 and C28.
    • The skipped jobs are the empty fixed-sequence, multi-node, and multi-node canary lane gates.
    • Attempt 1 stopped at reuse-sweep-gate before any benchmark ran. The previous /use named run 37815475708, whose commit 03ffb35 is no longer in the PR.
  • Evals: gsm8k em_strict was 0.9704 (n=1319) at C28 (job, eval_results_all).

    • It clears the default 0.90 threshold in infx/evals/thresholds.yaml, which has no glm5.2 override. It would also clear the 0.94 glm5 floor.
    • The eval ran on the same image digest with the C28 recipe (MTP 3-1-4) and real MTP verification. No SGLANG_SIMULATE_ACC_* variable was set in the eval server environment.
  • Image: upstream lmsysorg/sglang@sha256:2d53500cb72184020c59fe16aab3512d53b1aa8ee6195bfb2aaf5855d58099df. Every job pulled it from registry-1.docker.io#lmsysorg/sglang.

    • The image reports SGLANG_BUILD_COMMIT=20ca564bf77518604b89dc9f7fdba640daabd88b, from sgl-project/sglang build run 34173252286.
    • The entry is framework: sglang, so this submission itself satisfies the engine-ordering item.
  • Chat template: AgentX replay runs aiperf profile --scenario agentx, which uses the streaming chat endpoint. In all eight server logs, every benchmark request is POST /v1/chat/completions (270 at C1 to 3399 at C28). The only other inference request is SGLang's own startup warmup POST /generate, which runs before the server reports ready.

  • Draft precision: the draft is the built-in NextN/MTP layer of zai-org/GLM-5.2-FP8, rev f33c6dc501ee5a2c7e35155653b1b1abbc320951 (still the repository head). It is model.layers.78, with num_nextn_predict_layers: 1. It is served from the same checkpoint (speculative_draft_model_path=/model, no draft revision override).

    • Shipped: the safetensors headers of shards 136-138 show that layer 78's MLA projections (q_a, q_b, kv_a_proj_with_mqa, kv_b, o_proj), DSA indexer wq_b/wk, shared expert, and all 256 routed experts are FP8 E4M3 with 128x128 block scales (F32 weight_scale_inv).
    • Also shipped: eh_proj, enorm, hnorm, the layer norms, the router gate, indexer weights_proj, and shared_head.norm are BF16 and listed in modules_to_not_convert.
    • Effective: the same as shipped, using the pinned image's default handling. The recipe sets no draft quantization or dtype. At all eight points, the logged server args show speculative_draft_model_quantization='fp8' with _speculative_draft_quantization_explicitly_set=False. That is SGLang's default at 20ca564bf: the draft inherits the target's fp8 and loads the serialized FP8 block weights.
    • GlmMoeDsaForCausalLMNextN builds eh_proj as a plain BF16 nn.Linear and the norms as BF16 RMSNorm.
    • The draft KV cache inherits the target's fp8_e4m3 (speculative_draft_kv_cache_dtype=None).
    • SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE does not appear in the recipe, the launch environment, or any of the eight server logs. It defaults to EnvBool(False) at 20ca564bf and applies only to modelopt_fp4 checkpoints.
  • Golden AL: infx/golden_al_distribution/glm5.2_mtp.yaml (thinking_on, measured on glm-5.2-fp8) gives 2.99, 3.33, 3.61 and 3.78 for 3, 4, 5 and 6 speculative tokens. The workflow sets THINKING_MODE=thinking_on.

    • The srt connector keys off speculative-num-steps. The recipe hard-codes no simulation values.

    • Each point's generated config_c<N>.yaml and logged launch environment show SGLANG_SIMULATE_ACC_METHOD=match-expected and SGLANG_SIMULATE_ACC_TOKEN_MODE=real-draft-token, with these SGLANG_SIMULATE_ACC_LEN values:

      Point Steps / draft tokens SGLANG_SIMULATE_ACC_LEN
      C1 6/7 3.78
      C4 4/5 3.33
      C8 3/4 2.99
      C12 5/6 3.61
      C16 4/5 3.33
      C20 3/4 2.99
      C24 3/4 2.99
      C28 3/4 2.99
  • MODELS.md: glm5.2 agentic coding is active, and the support matrix lists native SGLang with native MTP for GLM-5.2.

  • No architecture hacks: there is no --hf-overrides, and json_model_override_args='{}'. The changed knobs are admission caps, MTP depth, CUDA-graph sizing, prefill/decode interleaving, and HiCache write policy. They only schedule the same computation.

    • publish_events_and_metrics is a TRT-LLM engine field that appears only in TRT-LLM srt-slurm recipes. This SGLang path does not support it. enable-metrics is on.
  • No engine patches: the pinned image runs as shipped. The PR changes no scripts. The generated sbatch scripts and recipe locks of all eight points contain no setup script, git apply, sed -i, or engine install. No waiver is needed.

  • Recipe publication: [Docs] Cookbook: refresh SemiAnalysis AgentX launches (DeepSeek-V4.1 GB200/GB300, GLM-5.2 FP8 B300) sgl-project/sglang#43983 was MERGED on 2026-10-13. It refreshes this config, which was first added by [Docs] Cookbook: AgentX launches for Qwen3.5 / Qwen3.8-Flash-Next; refresh GLM-5.2, DeepSeek-V4, DeepSeek-V4.1 sgl-project/sglang#43083 (MERGED on 2026-10-09). The config is published at https://docs.sglang.io/cookbook/autoregressive/GLM/GLM-5.2#agentic-long-context-deployment, and the live page carries head 3120bc1b9.

    • The page lists four "Agg TP8" cells for glm5.2-fp8-b300-sglang-agentic-mtp at head 3120bc1b9, all on the same image digest. They are MTP 6-1-7 (C1), MTP 4-1-5 (C4, plus a C16 patch), MTP 3-1-4 (C8, plus C20, C24 and C28 patches) and MTP 5-1-6 (C12).
    • I resolved each point's launch command from docs/src/snippets/agentx/zai-org/glm-5.2.jsx at sgl-project/sglang main (d8f85223) and compared it with that point's logged server args. All eight points match with no differences, including the C16 --prefill-decode-interval 8 --hicache-write-policy write_through patch and the C20/C24/C28 admission and graph caps.
    • The matching args are: model, --tensor-parallel-size 8 --expert-parallel-size 1, --quantization fp8, --kv-cache-dtype fp8_e4m3, --bf16-gemm-backend cutedsl, EAGLE topk 1 with each point's steps and draft tokens, --chunked-prefill-size 8192, --max-prefill-tokens 8192 and --mem-fraction-static 0.85. They also cover HiCache with 270 GB, direct, page_first_direct and write_back; the glm47/glm45 parsers; --watchdog-timeout 1800; and each point's admission and graph caps.
    • The cookbook environment includes SGLANG_TIMEOUT_KEEP_ALIVE=900 and TORCH_CUDA_ARCH_LIST=10.0.
    • Excluded as InferenceX-only:
      • SGLANG_SIMULATE_ACC_* is the synthetic-acceptance benchmark control, which the page discloses.
      • enable-metrics only exposes the Prometheus metrics that AIPerf collects; it does not change serving behavior.
      • PYTHONNOUSERSITE and SGLANG_CACHE_DIR isolate the container and JIT caches on the shared cluster.
      • The benchmark.env client settings are harness-only.
    • NVIDIA's recipes overview lists GLM-5.2 with SGLang ✅ in its Framework Recipes table, linking to the same cookbook page.
  • append-only: N/A, because the new changelog entry does not use append-only: true.

  • Pareto (at least 5 points on each curve): one curve, glm5.2 / agentic-coding / b300_sglang / fp8 / run 38304664439. The points come from the eight bmk_agentic_* artifacts of that run: request_metrics.throughput.per_gpu.total_tput_tps against request_metrics.latency.e2el. I counted them with infx.workflows.pareto_coverage from main.

    • P90 E2EL frontier: 5 of 8 points (C8, C12, C16, C20, C24).

    • P75 E2EL frontier: 5 of 8 points, the same set.

      Point tok/s/GPU P90 E2EL (s) P75 E2EL (s)
      C1 2355 18.85 10.35
      C4 3544 15.91 6.84
      C8 6172 14.65 6.65
      C12 7733 17.63 7.29
      C16 11355 18.56 8.93
      C20 13291 25.76 11.15
      C24 14902 32.93 15.79
      C28 14422 41.77 23.82
    • C8 dominates C1 and C4, and C24 dominates C28, at both percentiles: each has higher throughput and lower E2EL.

    • Dashboard: https://inferencex.semianalysis.com/inference?unofficialRun=38304664439

    • Every affected curve has at least 5 frontier points, so no core-maintainer review or admin bypass is needed.

Signed: nvpohanh

@github-actions

github-actions Bot commented Oct 9, 2026 •

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 /inferencex-e2e/benchmarks/*_node/srt-slurm-recipes/**/b300-*/; perf-changelog.yaml falls to the catch-all.

✅ Check 1 (Passing sweep on in-PR commit): PASS — PR's only commit 3120bc1b9 has all 8 agentic / jobs (C1 canary, C4-C28) and agentic eval / (C28) at success in run 38304664439; the skipped fixed-sequence/multi-node lanes are empty for this agentic-only config.

✅ Check 2 (Evals): PASS — eval_results_all: gsm8k em_strict 0.9704 (n=1319) at C28 on lmsysorg/sglang@sha256:2d53500c…; clears the 0.90 default and the 0.94 glm5 floor in infx/evals/thresholds.yaml.

✅ Check 3 (Upstream recipe): PASS — sgl-project/sglang#43983 MERGED 2026-10-13T06:39Z (refreshing #43083, MERGED 2026-10-09). docs/src/snippets/agentx/zai-org/glm-5.2.jsx on main carries glm5.2-fp8-b300-sglang-agentic-mtp at SHA 3120bc1b9 and the same image digest. It covers all 8 points: MTP 6-1-7 (C1); 4-1-5 (C4, plus the C16 patch with --prefill-decode-interval 8, --hicache-write-policy write_through and cap 7); 3-1-4 (C8, plus C20/C24/C28 at caps 40/48/56); and 5-1-6 (C12). Base args (TP8/EP1, fp8, fp8_e4m3 KV, cutedsl, chunked prefill 8192, HiCache 270/direct/page_first_direct) and env (SGLANG_TIMEOUT_KEEP_ALIVE, TORCH_CUDA_ARCH_LIST) match the recipe. Excluding SGLANG_SIMULATE_ACC_*, enable-metrics, PYTHONNOUSERSITE and SGLANG_CACHE_DIR as InferenceX-only is justified.

✅ Check 4 (Reuse command): PASS — /use 38304664439 posted by nvpohanh (COLLABORATOR) on 2026-10-13.

✅ Check 5 (Latest checklist): PASS — all 17 current-template items, including the sub-item, are present and checked.

✅ Check 6 (Upstream image / ordering): PASS — framework: sglang on B300 uses the upstream lmsysorg/sglang@sha256:2d53500c…; an open-source engine entry is not subject to the ordering rule.

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

✅ Check 8 (No architecture hacks): PASS — the recipe at the pinned SHA has no hf-overrides/model-override/config edits; the changes are admission, MTP depth, graph sizing, prefill-decode interval and HiCache write policy. publish_events_and_metrics is a TRT-LLM field that the SGLang engine path does not support.

✅ Check 9 (Chat template for spec decode): PASS — AgentX replay drives the chat endpoint; the C28 server metrics are keyed endpoint: /v1/chat/completions (results/benchmark.log).

✅ Check 10 (No engine patches): PASS — the change is config-only (recipe, master config, changelog); no scripts, patches, git apply/sed -i or engine installs; the cookbook entry lists setup: [].

✅ Check 11 (Agentic golden AL): PASS — the job logs set SGLANG_SIMULATE_ACC_METHOD=match-expected / TOKEN_MODE=real-draft-token with SGLANG_SIMULATE_ACC_LEN 3.78 (C1, K6), 3.33 (C4/C16, K4), 3.61 (C12, K5) and 2.99 (C28, K3). These equal glm5.2_mtp.yaml glm-5.2-fp8 thinking_on.

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

✅ Check 13 (Draft as shipped): PASS — the draft is the checkpoint's built-in NextN layer (zai-org/GLM-5.2-FP8, block FP8 with BF16 exclusions). The recipe sets no draft quantization, dtype, draft path or draft KV override, so the draft inherits the target's fp8 by SGLang default and serves at the stored precision. SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE is absent from the recipe and from the logged launch env (C28 job Env: line). It only applies to modelopt_fp4.

✅ Check 14 (Pareto coverage): PASS — one curve, glm5.2/agentic-coding/b300_sglang/fp8/run 38304664439, from the 8 bmk_agentic_* artifacts (per_gpu.total_tput_tps vs e2el). infx.workflows.pareto_coverage gives P90 5/8 and P75 5/8 frontier points (C8, C12, C16, C20, C24); C1/C4 are dominated by C8 and C28 by C24. Dashboard.

✅ Check 15 (PR description): PASS — the body's per-concurrency MTP/admission tuning, digest-pinned image, and c20/c24/c28 extension at 2x-CONC admission match the pinned recipe and master config.

✅ Check 16 (NVIDIA overview): PASS — the NVIDIA overview Framework Recipes table lists GLM-5.2 with SGLang ✅, linking to the GLM-5.2 cookbook page (B300).

Assessed commit: 3120bc1b90db358d8bca1031225c110f3c60e579.

…grid to c28 / [NVIDIA][AgentX] 调优 GLM-5.2 FP8 B300 SGLang MTP 配方并将并发扩展至 c28

Tune MTP depth, admission caps and HiCache scheduling with one recipe per
concurrency (c1 K6/cap2, c4 K4/cap3, c8 unchanged, c12 K5/cap5, c16 K4/cap7
with prefill-decode-interval 8 and write_through), pin the upstream SGLang
image by digest, and add c20, c24 and c28 with uncapped admission (2x CONC).

按并发调优 MTP 深度、准入上限和 HiCache 调度,每个并发一个配方;按摘要固定
上游 SGLang 镜像;新增 c20、c24、c28(不限制准入,2x CONC)。

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@hshrivastava-droid
hshrivastava-droid force-pushed the glm52-fp8-b300-sglang-agentx-mtp-tune branch from 03ffb35 to 3120bc1 Compare October 12, 2026 20:30
@hshrivastava-droid hshrivastava-droid changed the title Tune GLM-5.2 FP8 B300 SGLang AgentX recipes / 优化 GLM-5.2 FP8 B300 SGLang AgentX 配置 [NVIDIA][AgentX] Tune GLM-5.2 FP8 B300 SGLang MTP recipes and extend grid to c28 / [NVIDIA][AgentX] 调优 GLM-5.2 FP8 B300 SGLang MTP 配方并将并发扩展至 c28 Oct 12, 2026
@SemiAnalysisAI SemiAnalysisAI deleted a comment from nvpohanh Oct 12, 2026
@nvpohanh

Copy link
Copy Markdown
Collaborator

[by Claude Code] The SGLang cookbook update of this PR's AgentX config (glm5.2-fp8-b300-sglang-agentic-mtp) will happen in sgl-project/sglang#43983, in the Agentic Long-Context Deployment section of the GLM-5.2 cookbook page. The config has been live in that section since sgl-project/sglang#43083; sgl-project/sglang#43983 refreshes it with the pin below.

This PR has no authorized /use <run_id> comment yet, so the cookbook shows the recipe at this PR's head (3120bc1b9) as "in progress". It switches to the measured run at the next cookbook sync after a run is pinned or this PR merges.

@nvpohanh

Copy link
Copy Markdown
Collaborator

[by Claude Code] sgl-project/sglang#43983 has been merged. This PR's AgentX config (glm5.2-fp8-b300-sglang-agentic-mtp) 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 (3120bc1b9) as "in progress". It switches to the measured run at the next cookbook sync after a run is pinned or this PR merges.

@nvpohanh

Copy link
Copy Markdown
Collaborator

/use 38304664439

@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

@nvpohanh staged run 38304664439.

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

This branch has not been deployed

No deployments
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: No status

Development

Successfully merging this pull request may close these issues.

2 participants