Skip to content

[Doc] cookbook: Refresh SemiAnalysis AgentX launches with five open InferenceX PRs - #45311

Merged
nvpohanh merged 1 commit into
sgl-project:mainfrom
nvpohanh:pohanh/cookbook-agentx-refresh-1020
Oct 20, 2026
Merged

nvpohanh merged 1 commit into
sgl-project:mainfrom
nvpohanh:pohanh/cookbook-agentx-refresh-1020

Conversation

@nvpohanh

@nvpohanh nvpohanh commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

[by Claude Code]

Motivation

The cookbook's Agentic Long-Context Deployment sections (#42726, #43083, #43799, #43983, #44065, #44228, #44654, #44712, #45039, #45111) mirror SemiAnalysis InferenceX AgentX submissions as raw launch commands, each linked to the run that measured it. The configurations are mirrored from SemiAnalysis submissions. This PR refreshes all six pages:

  1. Five open InferenceX PRs are overlaid (table below). New in this round: a Qwen3.5 NVFP4 GB300 Dynamo+SGLang refresh and a DeepSeek-V4.1-Flash H200 SGLang update.
  2. The pages sync to InferenceX main (660b5a8d). Several lanes that [Doc] cookbook: Refresh SemiAnalysis AgentX launches with twelve open InferenceX PRs #45111 showed as in progress have merged and are now verified from the dashboard. Muse Spark Open GB300 enables HiCache above c6.
  3. Lanes no longer overlaid leave or revert. The knob-tuned GLM-5.2 FP8 B300 lane (InferenceX #3933) leaves the page. Qwen3.8-Flash-Next B200 and B300 (InferenceX #4279 / #4280, still WIP) go back to their measured main runs. Muse Spark Open H100 is left out this round (below).

Source

InferenceX main (660b5a8d), with these open InferenceX PRs overlaid:

PR Page Lanes Pinned to
#4333 Qwen3.5 NVFP4 GB300 Dynamo+SGLang Qwen3.5 qwen3.5-fp4-gb300-dynamo-sglang-agentic-agg, -disagg; retires -agg-pareto, -pp-pareto no /use yet: in progress at head 02b72dc0
#4327 DeepSeek-V4.1-Flash H200 SGLang DeepSeek-V4.1 dsv41flash-fp4-h200-sglang-agentic-dspark run 39318221321, named by the PR's /use comment (head 5bfd5559), verified
#4300 GLM-5.2 NVFP4 GB300 Dynamo+SGLang GLM-5.2 glm5.2-fp4-gb300-dynamo-sglang-agentic-agg, -disagg in progress at head 8f965ad4 (as in #45111); its /use 39187209967 came after this round's freeze and measured that same commit, so the commands are the measured ones
#4334 Muse Spark Open B200 SGLang Muse Spark Open musespark-fp4-b200-sglang-agentic-dflash no /use yet: in progress at head 6a8c8179
#3817 DeepSeek-V4 NVFP4 B300 Dynamo+SGLang (NIXL) DeepSeek-V4 dsv4-fp4-b300-dynamo-sglang-agentic-agg, -disagg run 37715955859, named by the PR's /use comment (at b8bafb34), verified (as in #45111)

"In progress" lanes are rendered at the PR head and labeled "In progress in SA InferenceX AgentX". A later sync pins them once the PR gets a /use run or merges.

From InferenceX main, these lanes change status or commands:

PR Lane Pinned to
InferenceX #4180 dsv41flash-fp4-gb300-dynamo-sglang-agentic-agg, -dspark-disagg run 38911006463, verified (was in progress; same commands)
InferenceX #4033 dsv41flash-fp4-gb300-sglang-agentic-dspark run 38614048439, now from the dashboard (#45111 pinned the same run through its /use comment)
InferenceX #4286 glm5.2-fp4-b200-dynamo-sglang-agentic-agg run 39166018772, verified (was in progress; same commands)
InferenceX #4209 qwen3.5-fp8-h200-sglang-agentic-hicache-mtp run 38965319292, verified (was in progress; same commands)
InferenceX #3198 qwen3.5-fp8-h200-sglang-agentic-mtp run 35146004544, verified (below)
InferenceX #4272 qwen3.8next-fp8-h200-sglang-agentic-mtp run 39109720946, verified (same run and commands as before)
InferenceX #2751 / #2758 qwen3.8next-fp4-b200-sglang-agentic-mtp / qwen3.8next-fp4-b300-sglang-agentic-mtp run 34879996995 / run 33039186365, verified (as on the pages before #45111)
InferenceX #4302 musespark-fp4-gb200-sglang-agentic-dflash run 39195111790, verified (was in progress; same commands)
InferenceX #4317 musespark-fp4-gb300-sglang-agentic-dflash run 39258994981, verified
InferenceX #4292 / #4290 musespark-fp4-b300-sglang-agentic-dflash / musespark-fp4-h200-sglang-agentic-dflash run 39181803276 / run 39180248743, verified (full-trace-corpus re-sweeps; same commands)

What this PR does

Page Lanes Deployments Points Hardware
GLM-5.2 16 (was 17) 31 (was 34) 71 (was 78) GB300, GB200, B300, B200, H200
DeepSeek-V4 12 25 68 GB300, GB200, B300, B200, H200
DeepSeek-V4.1 9 21 66 (was 72) GB300, GB200, B300, B200, H200, H100
Qwen3.5 17 50 (was 48) 221 (was 210) GB300, GB200, B300, B200, H200, H100
Qwen3.8-Flash-Next 4 5 24 (was 29) GB300, B300, B200, H200
Muse Spark Open 5 (was 6) 5 (was 6) 53 (was 57) GB300, GB200, B300, B200, H200 (H100 left out)

Only the generated data files change. The component (_agentx.jsx), page text, Deployment panels and Playgrounds are untouched.

Qwen3.5

  • NVFP4 GB300 Dynamo+SGLang (InferenceX #4333, in progress). The image moves from dev-qwen35-agentx-gb300-ccebaceeeca3 to dev-qwen35-agentx-gb300-42ad537de600, pinned by digest.
    • Aggregated: TP2/TP4/TP8 at c5–c10 become TP4 points at c8–c23 (--max-running-requests 1–8) and TP8 (2 nodes) at c11/c18.
    • Disaggregated: 1P1D TP1/TP2 (c38, c56) and 3P1D PP4/DEP8 (c704) become 1P1D/1P2D TP1/TP2 at c20–c48, 2P1D and 3P1D with PP4 prefill and DEP16 decode (4 nodes) at c488–c840, and 3P1D PP4/DEP8 at c704.
    • New settings: Python GC thresholds (--gc-threshold), Gated DeltaNet kernel tuning (SGLANG_GDN_CHUNK_H_BV, SGLANG_GDN_CHUNK_H_NUM_STAGES), SGLANG_EAGER_INPUT_NO_COPY and FLASHINFER_ROUTING_FORCE_BLOCK_PER_TOKEN. The disaggregated Dynamo frontend uses soft session affinity, a per-request decode weight and a two-tier decode worker selector, whose router_policy_config.yaml is shown inline below the frontend command.
  • FP8 H200 -mtp. Back to its measured run (above).

DeepSeek-V4.1-Flash

  • H200 SGLang (InferenceX #4327, verified). The image moves from nightly-dev-cu13-20260923-06008c17 to nightly-dev-cu13-20261013-7224fce1. TP4 and TP8 now cover c1–c16 (was c1–c128), and TP4 c2 runs with --max-running-requests 2. The old tag had been pruned from Docker Hub; the new one is available.
  • GB300. Both Dynamo+SGLang lanes (InferenceX #4180) are verified now; their commands do not change. The derived HiCache tier of the GB300 points measured without offload now takes its flags from Our performance test of DeepSeek-R1-Block-INT8 is inconsistent with #3730 #4180's measured GB300 HiCache worker (--hicache-ratio 1.02). The B200 SGLang lane (2) donated before, because in-progress lanes never donate.

Muse Spark Open

  • GB300 (InferenceX #4317). HiCache is enabled above c6.
  • H100 is left out this round. Its rows from InferenceX #4182's run 38925660934 are still on the dashboard. However, the dashboard's workflow info for 2026-10-17 no longer lists that run or do not merge #4182's changelog entry, so the pipeline cannot pin the lane to a run. InferenceX #4287 (uncapped trace corpus) names it in perf-changelog.yaml, but its Merge Ingest stopped at "Require sweep reuse", so no re-measurement followed. A later refresh brings H100 back once the dashboard names a run for it.
  • B200 (InferenceX #4334, in progress). The image moves to nightly-dev-20261019-3c560089 with the same commands (above).
  • GB200, B300 and H200: unchanged commands (above).

GLM-5.2

  • The knob-tuned FP8 B300 lane (InferenceX #3933) is not overlaid this round, so it leaves the page. The existing FP8 B300 lane stays.
  • GB300 (InferenceX #4300) and B200: unchanged commands.

Qwen3.8-Flash-Next

  • B200 and B300 go back to the day-zero qwen38flashnext image and the points of their measured main runs (B200 c1/4/8/16, B300 c1–c16). The v0.5.21-cu130 retunes (InferenceX #4279 / #4280) are still WIP and not overlaid.

Not mirrored:

  • musespark-fp4-h100-sglang-agentic-dflash (above).
  • qwen3.5-fp8-h100-sglang-agentic still has no dashboard changelog, so it was never measured.
  • qwen3.5-fp4-gb300-dynamo-sglang-agentic-agg-pareto and -pp-pareto are deleted by InferenceX #4333. Their measured main versions stay HiCache donors of last resort.

How the commands are produced

The pipeline is the same as in #45111, with these changes:

  • Agg/disagg siblings. A key whose dashboard changelog names only its agg/disagg sibling is now pinned to that date only if the date has rows for its own lane. Before, GLM-5.2 B200 disagg would have dropped off the page after InferenceX #4286 re-swept only the aggregated lane.
  • Generated config files. srt-slurm writes the Dynamo frontend's --router-policy-config file from the recipe's worker_selection. The renderer now captures it, and the page shows it as router_policy_config.yaml, like nginx.conf.
  • Rules.
    • Kept as submitted: worker flag --gc-threshold; Dynamo frontend flags --router-session-affinity-mode, --router-decode-active-request-weight and --router-policy-config (file shown inline); env SGLANG_GDN_CHUNK_H_BV, SGLANG_GDN_CHUNK_H_NUM_STAGES, SGLANG_EAGER_INPUT_NO_COPY and FLASHINFER_ROUTING_FORCE_BLOCK_PER_TOKEN.
    • Removed: --gc-warning-threshold-secs (only logs a warning) and HF_HUB_OFFLINE (SA pre-stages the checkpoints; readers download them).

Each lane is still rendered at the exact commit of the run that produced its data, or at the PR head while in progress.

  • Removed (SA-only settings): the benchmark harness, cluster paths and caches, telemetry, and InferenceX's synthetic speculative acceptance (disclosed per deployment).
  • Replaced with placeholders: IPs, ports and NICs.
  • Derived variants: router and KV-offload variants that were not run are derived and labeled "Derived — not run".

The data files are generated, so there is no hand-written code to review here.

Validation

  • CI gates.

    • node docs/scripts/check_cookbook_configs.mjs passes.
    • mint broken-links --check-anchors --check-redirects passes.
    • pre-commit run --all-files passes in lmsysorg/sglang:dev-cu13.
  • mint validate still fails on main, for the reason noted in [Doc] cookbook: Refresh SemiAnalysis AgentX launches with twelve open InferenceX PRs #45111: docs/src/snippets/configs/popular-models.jsx has a stray }, at line 100. With that one line removed in a scratch copy (not part of this PR), mint validate passes on this branch.

  • Browser click-through. A headless browser clicked through every combination of hardware, checkpoint, deployment, concurrency, KV tier and router on all six pages under mint dev, opening every tab.

    • That is 2,602 command sets: GLM-5.2 340, DeepSeek-V4 358, DeepSeek-V4.1 396, Qwen3.5 1,096, Qwen3.8-Flash-Next 94 and Muse Spark Open 318.
    • The rendered commands match the expected text exactly, with no browser errors.
    • The "Copy link" URL of every deployment was reopened in a fresh tab and restored the same selection and tab (141 links).
    • The Deployment-panel footer link and section placement checks pass, and two pages that did not opt in show no link.
    • The copy buttons work on a plain-HTTP preview.
  • Decoder and KV flags. The component's own decoder, run through Node, reproduces the Python-generated commands for all 2,602 combinations, including every point's measured tier. Every KV-cache flag in a shown command exists in the SGLang commit of its deployment's image.

  • Round trip and leak scan. Every flag and variable of every submitted launch is kept, rewritten or removed by a rule, and no SemiAnalysis cluster artifact appears in the shown commands.

  • Diff against main.

    Page Command sets
    GLM-5.2 340 identical; 42 removed (InferenceX #3933 not overlaid)
    DeepSeek-V4 358 identical
    DeepSeek-V4.1 312 identical; 60 changed and 36 removed (InferenceX #4327); 24 derived-HiCache rows of GB300 changed (new donor)
    Qwen3.5 962 identical; 12 changed, 24 removed and 90 added (InferenceX #4333); 32 changed (FP8 H200 -mtp, measured run)
    Qwen3.8-Flash-Next 76 identical; 16 changed, 50 removed and 2 added (B200/B300 back to their measured runs)
    Muse Spark Open 266 identical; 28 removed and 52 added (InferenceX #4317); 24 removed (H100)
  • Cluster environment. The table matches the worker fingerprints of measured runs on every cluster with srt-slurm lanes.

  • Argument parsing. 200 distinct sglang.launch_server, dynamo.sglang, sglang_router.launch_router and dynamo.frontend command lines are new since [Doc] cookbook: Refresh SemiAnalysis AgentX launches with twelve open InferenceX PRs #45111. All parse in their own submission images (amd64 builds of the pinned digests; each image's amd64 and arm64 builds come from the same SGLang commit):

    • dev-qwen35-agentx-gb300-42ad537de600@sha256:9b167808… 82/82. The Dynamo commands were checked against Dynamo b208989f, which the launch builds from source;
    • nightly-dev-cu13-20261013-7224fce1 55/55;
    • dev-muse-spark-open@sha256:8cfc5a72… 24/24;
    • nightly-dev-cu13-20261014-684fea8a@sha256:ddae0e39… 16/16;
    • nightly-dev-20261019-3c560089 15/15;
    • nightly-dev-cu13-20261015-a6a8c560@sha256:0a1ba33a… 8/8.

    The other 2,035 of the 2,235 command lines are identical to ones parsed for earlier cookbook PRs. Environment variables are not part of this check.

No serving or benchmark runs were performed for this PR; the numbers live in the linked SemiAnalysis runs. SGLang CI was not triggered.

🤖 Generated with Claude Code


CI States

Latest PR Test (Base): ✅ Run #39368170424
Latest PR Test (Extra): ❌ Run #39368170452
Latest PR Test (AMD ROCm 10): ➖ No AMD PR run found for this commit.

…nferenceX PRs

Regenerate the six Agentic Long-Context Deployment data files from InferenceX
main (660b5a8d) with five open SemiAnalysisAI/InferenceX pull requests
overlaid: 4333, 4327, 4300, 4334 and 3817.

- Qwen3.5: NVFP4 GB300 Dynamo+SGLang refresh on a new image (agg TP4/TP8
  c8-c23, disagg 1P1D/1P2D TP2 and 2P1D/3P1D DEP16 points); two superseded
  pareto keys leave the page.
- DeepSeek-V4.1-Flash: H200 SGLang moves to nightly-20261013-7224fce1 (c1-c16).
  GB300 lanes merged on main are verified; derived HiCache rows use the
  measured GB300 HiCache worker.
- Muse Spark Open: GB300 HiCache above c6; B200 on nightly-20261019-3c560089;
  B300/H200/GB200 now verified on
  main; H100 left out (the dashboard lost its changelog entry).
- GLM-5.2: B200 agg verified on main; the knob-tuned FP8 B300 lane is no
  longer overlaid.
- Qwen3.8-Flash-Next: B200/B300 back to the measured main runs.

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

Copy link
Copy Markdown
Collaborator Author

looks good locally. merging to unblock SA AgentX submissions.

@nvpohanh
nvpohanh merged commit 9e23107 into sgl-project:main Oct 20, 2026
106 of 110 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

deepseek documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant