Skip to content

Add Qwen3.5 B300 Dynamo-SGLang AgentX recipes / 添加 Qwen3.5 B300 Dynamo-SGLang AgentX 配方 - #2978

Open
RohitNagraj wants to merge 9 commits into
mainfrom
qwen3.5-fp4-b300-dynamo-sglang-agentic-pareto
Open

RohitNagraj wants to merge 9 commits into
mainfrom
qwen3.5-fp4-b300-dynamo-sglang-agentic-pareto

Conversation

@RohitNagraj

@RohitNagraj RohitNagraj commented Sep 10, 2026 •

Copy link
Copy Markdown
Collaborator

[by Claude Code]

Summary

Adds the Qwen3.5 NVFP4 B300 Dynamo+SGLang AgentX configuration qwen3.5-fp4-b300-dynamo-sglang-agentic-pareto. It runs five aggregate MTP points on b300-dsxe behind sglang-router, built from four srt-slurm recipes:

  • TP2/EP2 at c64
  • TP2 with MTP7 and batch caps of 4 and 8, at c36 and c44
  • TP2 with MTP5 and a batch cap of 2, at c40
  • TP4 with MTP6 and a batch cap of 1, at c4

Synthetic acceptance uses the committed Qwen3.5 thinking-on golden acceptance length for each recipe's MTP step count. For Qwen3.5 SGLang, the injector also requires speculative-num-draft-tokens = speculative-num-steps + 1.

This update moves all four recipes to lmsysorg/sglang:nightly-dev-20261013-7224fce1 (SGLang 7224fce1). That image is already CUDA 13, so its tag has no cu13 suffix. The update also aligns the recipes with that image and with current main:

  • NextN draft at shipped precision: removes SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE from all four recipes.
  • Aliases removed in this image:
    • TP2/EP2 now uses cuda-graph-max-bs-decode instead of cuda-graph-max-bs. The old alias is gone, and --cuda-graph-max-bs is now an ambiguous prefix of --cuda-graph-max-bs-decode and --cuda-graph-max-bs-prefill.
    • SGLANG_DISABLE_TP_MEMORY_INBALANCE_CHECK=1 becomes SGLANG_ENABLE_TP_MEMORY_INBALANCE_CHECK=0. The old name is no longer forwarded, so without this change the TP memory-imbalance check would raise instead of warn.
  • Attention DP: no point uses attention DP. The deprecated enable-dp-attention: false is dropped rather than converted to attn-dp-size.
  • Settings with no effect in this image, dropped:
    • Environment variables SGLang no longer reads: SGLANG_ENABLE_SPEC_V2, SGLANG_ENABLE_FLASHINFER_GEMM, SGLANG_FLASHINFER_FP4_GEMM_BACKEND, and SGLANG_CUTEDSL_MOE_NVFP4_DISPATCH. Its replacement, SGLANG_MOE_NVFP4_DISPATCH=1, stays.
    • false booleans that srt-slurm never passes to SGLang: enable-dp-attention, enable-dp-lm-head, enable-symm-mem, and enable-dynamic-chunking.
    • Settings that only matter on code paths these TP-only aggregate workers never use:
      • SGLANG_SCHEDULER_SKIP_ALL_GATHER and SGLANG_NCCL_ALL_GATHER_IN_OVERLAP_SCHEDULER_SYNC_BATCH: read only by the DP-attention MLP sync.
      • MC_FORCE_MNNVL and MC_TE_METRIC: no Mooncake component runs.
      • NVSHMEM_REMOTE_TRANSPORT: no DeepEP or pplx dispatcher runs.
      • load-balance-method: read only when DP > 1.
      • moe-dense-tp-size: read only by the attention-DP and attention-TP-gather paths, and the recipes set disable-attn-tp-gather.
      • hicache-io-backend: kernel: SGLang rewrites it to direct for page_first_direct.
  • Current main: merges main and makes two more fixes.
  • The perf-changelog entry describes the final state.

Note: the earlier /reuse-sweep-run 34548026742 comment pins a run on the previous image. Before merging, a new /use <run_id> must name a green sweep of this head.

AI model disclosure
  • Model/version: claude-opus-5-5 (Claude Opus 5.5), through Claude Code.
  • Role: prepared the nightly-dev-20261013-7224fce1 update in this revision: image bump, flag and environment audit against the SGLang 7224fce1 source, merge of main, local validation, and this description.
  • Earlier commits on this PR do not record the models that prepared them, so those models could not be verified.
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
  • I have updated documentation if necessary
  • For every change that can affect benchmark performance and every recipe addition or modification, I have appended a new entry to the physical end of inferencex-e2e/perf-changelog.yaml and have not edited historical entries
  • If this PR can affect benchmark performance or adds or modifies a recipe, 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.
中文

概述

新增 Qwen3.5 NVFP4 B300 Dynamo+SGLang AgentX 配置 qwen3.5-fp4-b300-dynamo-sglang-agentic-pareto。它在 b300-dsxe 上通过 sglang-router 运行五个聚合式 MTP 测试点,由四个 srt-slurm 配方组成:

  • TP2/EP2,c64
  • TP2,MTP7,批次上限 4 和 8,分别对应 c36 和 c44
  • TP2,MTP5,批次上限 2,c40
  • TP4,MTP6,批次上限 1,c4

合成接受长度按各配方的 MTP 步数取自已提交的 Qwen3.5 thinking-on 黄金接受长度。对 Qwen3.5 SGLang,注入器还要求 speculative-num-draft-tokens = speculative-num-steps + 1。

本次更新将四个配方迁移到 lmsysorg/sglang:nightly-dev-20261013-7224fce1(SGLang 7224fce1)。该镜像本身已基于 CUDA 13,因此标签中不带 cu13 后缀。同时,本次更新使配方与该镜像和当前 main 保持一致:

  • NextN 草稿层保持发布时的精度: 从四个配方中移除 SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE。
  • 该镜像中已移除的别名:
    • TP2/EP2 改用 cuda-graph-max-bs-decode,不再使用 cuda-graph-max-bs。旧别名已被移除,而 --cuda-graph-max-bs 现在是 --cuda-graph-max-bs-decode 和 --cuda-graph-max-bs-prefill 的歧义前缀。
    • SGLANG_DISABLE_TP_MEMORY_INBALANCE_CHECK=1 改为 SGLANG_ENABLE_TP_MEMORY_INBALANCE_CHECK=0。旧变量名不再被转发;若不修改,TP 显存不均衡检查会直接报错,而不是只发出警告。
  • 注意力 DP: 所有测试点都不使用注意力 DP,因此直接移除已弃用的 enable-dp-attention: false,而不是改写为 attn-dp-size。
  • 移除在该镜像中不起作用的设置:
    • SGLang 不再读取的环境变量:SGLANG_ENABLE_SPEC_V2、SGLANG_ENABLE_FLASHINFER_GEMM、SGLANG_FLASHINFER_FP4_GEMM_BACKEND 和 SGLANG_CUTEDSL_MOE_NVFP4_DISPATCH。其替代变量 SGLANG_MOE_NVFP4_DISPATCH=1 保留。
    • srt-slurm 从不传给 SGLang 的 false 布尔参数:enable-dp-attention、enable-dp-lm-head、enable-symm-mem 和 enable-dynamic-chunking。
    • 只在这些仅 TP 的聚合 worker 不会使用的代码路径上起作用的设置:
      • SGLANG_SCHEDULER_SKIP_ALL_GATHER 和 SGLANG_NCCL_ALL_GATHER_IN_OVERLAP_SCHEDULER_SYNC_BATCH:只被 DP 注意力的 MLP 同步读取。
      • MC_FORCE_MNNVL 和 MC_TE_METRIC:没有运行任何 Mooncake 组件。
      • NVSHMEM_REMOTE_TRANSPORT:没有运行 DeepEP 或 pplx 分发器。
      • load-balance-method:只在 DP > 1 时读取。
      • moe-dense-tp-size:只被注意力 DP 和注意力 TP gather 路径读取,而配方已设置 disable-attn-tp-gather。
      • hicache-io-backend: kernel:在 page_first_direct 布局下,SGLang 会将其改写为 direct。
  • 当前 main: 合并 main,并另做两项修复。
  • perf-changelog 条目描述的是最终状态。

注意: 此前的 /reuse-sweep-run 34548026742 评论固定的是旧镜像上的运行。合并前,需要用新的 /use <run_id> 指定当前 head 上全部通过的 sweep。

AI 模型使用说明: 本次修订由 claude-opus-5-5(Claude Opus 5.5)通过 Claude Code 完成,工作内容包括:升级镜像,对照 SGLang 7224fce1 源码审查参数和环境变量,合并 main,本地验证,以及撰写本说明。此前的提交没有记录所用模型,因此无法确认。

添加 Qwen3.5 NVFP4 B300 Dynamo-SGLang AgentX 配置和配方,并校验合成接受长度与已提交的黄金曲线一致。
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! Please reach out to respective companies' CODEOWNER to fill in the latest PR_REVIEW_CHECKLIST.md before pinging core maintainer on Slack for review. In order for the signoff PR check bot to trigger, you must follow the PR_REVIEW_CHECKLIST.md template correctly, including the phrase As a PR reviewer and CODEOWNER, I have reviewed this and have.

For PR verification, add the full-sweep-fail-fast label (strongly recommended) to this PR — the benchmark sweep only runs on labeled PRs. Use full-sweep-enabled only if you need matrix jobs to keep running past a failure.

PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. See GitHub's docs on re-running failed jobs


感谢你的贡献!请联系相应公司的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,然后再在 Slack 上联系核心维护者进行审阅。为了触发 signoff PR 检查机器人,你必须正确遵循 PR_REVIEW_CHECKLIST.md 模板,包括保留英文语句 As a PR reviewer and CODEOWNER, I have reviewed this and have。

如需进行 PR 验证,请为此 PR 添加 full-sweep-fail-fast 标签(强烈推荐)— 基准测试 sweep 仅在带有标签的 PR 上运行。仅当需要矩阵任务在失败后继续运行时才使用 full-sweep-enabled。

PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! Please reach out to respective companies' CODEOWNER to fill in the latest PR_REVIEW_CHECKLIST.md before pinging core maintainer on Slack for review. In order for the signoff PR check bot to trigger, you must follow the PR_REVIEW_CHECKLIST.md template correctly, including the phrase As a PR reviewer and CODEOWNER, I have reviewed this and have.

For PR verification, add the full-sweep-fail-fast label (strongly recommended) to this PR — the benchmark sweep only runs on labeled PRs. Use full-sweep-enabled only if you need matrix jobs to keep running past a failure.

PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. See GitHub's docs on re-running failed jobs


感谢你的贡献!请联系相应公司的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,然后再在 Slack 上联系核心维护者进行审阅。为了触发 signoff PR 检查机器人,你必须正确遵循 PR_REVIEW_CHECKLIST.md 模板,包括保留英文语句 As a PR reviewer and CODEOWNER, I have reviewed this and have。

如需进行 PR 验证,请为此 PR 添加 full-sweep-fail-fast 标签(强烈推荐)— 基准测试 sweep 仅在带有标签的 PR 上运行。仅当需要矩阵任务在失败后继续运行时才使用 full-sweep-enabled。

PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档

在性能变更日志中补充 Qwen3.5 B300 PR #2978 链接。
@RohitNagraj RohitNagraj added the full-sweep-enabled Full sweep with canary gate; matrix jobs run to completion despite failures label Sep 10, 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 what's already flagged inline, I checked whether the launch script's job-name sed override (sed -i "s/^name:.*/.../") would silently no-op on the two new recipes that wrap everything under a top-level base: key (where name: is indented two spaces) — that base:/zip_override_running_cap: matrix format predates this PR (already used by the glm5/glm5.2 recipes), so it's pre-existing behavior rather than a regression introduced here.

Extended reasoning...

This run reported a confirmed finding (perf-changelog.yaml's new entry still has a placeholder pull/XXX pr-link) that will be posted inline, plus additional verified findings that are not being surfaced individually in this review body per the dedup/cap policy. Since verified findings exist, approval is not appropriate. I independently re-examined the candidate concern that two of the four new recipe YAMLs indent name: under a top-level base: key, which would make the launch script's unconditional sed -i "s/^name:.*/name: \"${RUNNER_NAME}\"/" fail to match and silently leave the recipe's default job name in place. I confirmed via git grep against the pre-PR commit that this base: + zip_override_running_cap: matrix wrapping format already exists in the repository (glm5 and glm5.2 recipes use it), so the same sed limitation already applied before this change — it is not a new regression introduced by this diff, just an existing gap this PR's new recipes happen to also hit. Given the outstanding verified-but-unposted findings, a human should still review before merge.

Additional findings (no inline location):

  • 🟡 perf-changelog.yaml — The new changelog entry's pr-link is still the placeholder .../pull/XXX instead of the real PR URL, unlike every other historical entry which links a real PR. Fix: replace with the actual pull request URL before merge, per the append-only changelog convention that requires a real, verifiable PR link for traceability.

    Extended reasoning...

    perf-changelog.yaml is append-only and byte-sensitive; the new entry at the physical tail (config-keys: qwen3.5-fp4-b300-dynamo-sglang-agentic-pareto) ends with pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/XXX. All prior entries (2925, 2954, 2955, 2969, ...) use real PR numbers. If merged as-is, anyone auditing this recipe/config change later via the changelog gets a dead/placeholder link instead of the actual PR, breaking the traceability the append-only convention exists to guarantee.

    Verification: nit. The changelog entry added by this diff at line 7149 of perf-changelog.yaml ends with pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/XXX (a placeholder), for config-keys qwen3.5-fp4-b300-dynamo-sglang-agentic-pareto, while adjacent entries such as #2925 (line 7143) use real PR URLs. The finding is factually real. Caveat to the candidate's wording: it claims every other… | nit.…

@github-actions

Copy link
Copy Markdown
Contributor

延长 Qwen3.5 AgentX 配方的 Slurm 时间限制。
合并 origin/main,并将本分支的性能变更日志条目重新追加到文件末尾。
@github-actions

github-actions Bot commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

@RohitNagraj

Copy link
Copy Markdown
Collaborator Author

/reuse-sweep-run 34548026742

Align the Qwen3.5 B300 recipes with the current SRT schema and recipe layout,
use automatic golden acceptance selection, and preserve the changelog tail.

修复 Qwen3.5 B300 配方的合并冲突:对齐当前 SRT 配置格式与配方目录,
使用自动黄金接受长度选择,并将变更日志条目保留在文件末尾。
@Ankur-singh

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: https://github.com/SemiAnalysisAI/InferenceX/actions/runs/34548026742
  • Verified that this PR passes evals. Please link to GitHub Action workflow that shows this: https://github.com/SemiAnalysisAI/InferenceX/actions/runs/34548026742
  • 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 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; 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 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.

Additional detail section:

  • Validation and eval evidence: https://github.com/SemiAnalysisAI/InferenceX/actions/runs/34548026742, attempt 1, commit 6b7dcd07ab0c8c0805ac7fbec2f2ded38d450c20, which remains in this PR.
  • All five B300 Dynamo-SGLang AgentX throughput configurations completed successfully. Four selected GSM8K evals completed with em_strict scores from 0.9735 to 0.9788, each with n_eff: 1319, above the Qwen3.5 threshold of 0.94.
  • The current head is 96aa75841b3ea48a0bd59e5d9d7e37c62932b322. Current-head Lint and Tests passed: https://github.com/SemiAnalysisAI/InferenceX/actions/runs/35257971659
  • The post-sweep schema migration preserves the swept topology and engine arguments. Automatic Qwen3.5 thinking-on golden acceptance selection produces the same values used by the sweep: MTP3 3.39, MTP5 4.41, MTP6 4.80, and MTP7 5.04.
  • Reuse authorization: Add Qwen3.5 B300 Dynamo-SGLang AgentX recipes / 添加 Qwen3.5 B300 Dynamo-SGLang AgentX 配方 #2978 (comment)
  • The pinned image is the upstream lmsysorg/sglang:nightly-dev-cu13-20260901-07c8f729 image.
  • Upstream recipe link: N/A — this is exclusively a multi-node submission under benchmarks/multi_node/**, with multinode: true and the dynamo-sglang framework. The upstream recipe-link requirement applies only to single-node recipes.
  • append-only: true: N/A — this PR adds a new configuration and does not use append-only sweep semantics.
  • No inference-engine or serving-stack patch is applied.

Signed: Ankur-singh

@github-actions

Copy link
Copy Markdown
Contributor

✅✅✅ Verdict: PASS ✅✅✅

Passed and not applicable checks

✅ Check 0 (CODEOWNER): PASS — Ankur-singh is a named owner of configs/nvidia-master.yaml, a file this PR changes; the remaining paths fall under the catch-all.

✅ Check 1 (Passing sweep on in-PR commit): PASS — commit 6b7dcd07 is still in the PR; run 34548026742 has all five multi-node agentic / and all four multi-node agentic eval / check-runs at success (executed, not skipped). Head 96aa7584 only rebased and migrated the recipes to schema 2; engine args, env, container, and GPU layout are identical to the swept recipes.

✅ Check 2 (Evals pass): PASS — agg_eval_all.json from that run holds four GSM8K results (TP2/EP2 c64, TP2 c36/c40/c44) with em_strict 0.9735–0.9788 at n_eff 1319, on the same lmsysorg/sglang:nightly-dev-cu13-20260901-07c8f729 image as the PR config.

➖ Check 3 (Recipe linked and merged): N/A — disaggregated/multi-node submission (multinode: true, framework: dynamo-sglang, files under benchmarks/multi_node/**); the recipe-link requirement applies to single-node recipes only.

✅ Check 4 (Reuse command): PASS — /reuse-sweep-run 34548026742 posted as a whole line by RohitNagraj (COLLABORATOR).

✅ Check 5 (Latest checklist template): PASS — all sixteen items of the current docs/PR_REVIEW_CHECKLIST.md template are present and checked.

✅ Check 6 (Upstream image, engine-first): PASS — image is upstream lmsysorg/sglang:nightly-dev-cu13-20260901-07c8f729; the dynamo-sglang entry is preceded by the existing qwen3.5-fp4-b300-sglang-agentic-mtp (framework: sglang, runner: cluster:b300-dsxe).

✅ Check 7 (No deprecated models/scenarios): PASS — qwen3.5 fp4 agentic coding is active in MODELS.md as of 2026-09-17.

✅ Check 8 (No architecture hacks): PASS — no --hf-overrides, model-override args, or config edits; all flags are kernel/backend, caching, scheduler, or precision selections.

✅ Check 9 (Spec-decode via chat template): PASS — agentic_srt.sh drives build_replay_cmd, which uses --endpoint /v1/chat/completions --endpoint-type chat.

✅ Check 10 (No engine patches): PASS — no .patch, git apply, sed -i, heredoc rewrites, or engine wheel installs in the diff.

✅ Check 11 (Agentic spec-decode golden AL): PASS — apply_srt_recipe runs infx.srt_slurm.synthetic_acceptance, which sets SGLANG_SIMULATE_ACC_LEN/ACC_METHOD=match-expected/ACC_TOKEN_MODE=real-draft-token in the agg role env with THINKING_MODE=thinking_on; steps 3/5/6/7 resolve to 3.39/4.41/4.80/5.04 from golden_al_distribution/qwen3.5_mtp.yaml, and the swept run log confirms golden AL=3.39 injected for the MTP3 config. No synthetic knobs on non-agentic configs.

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

Assessed commit: 96aa75841b3ea48a0bd59e5d9d7e37c62932b322.

@functionstackx

Copy link
Copy Markdown
Collaborator

Sorry, over the weekend, there was 2 major refactors to clean up the technical debt accumalated over the past 11 months of moving at the speed of light. We don't see any major refactors in the forthseeable future besides cleaning up AMD multinode AgentX pile of bash. As much, due to the refactors, u would need to ask your agent to rebase from remote main@latest. Thank you in advance for ur understanding

@adibarra

Copy link
Copy Markdown
Collaborator

Heads-up: #3576 (merged) replaced the bash launchers with a Python launcher, so this PR will conflict when you merge main, and the sweep won't start until that's resolved. Please merge main and move your launcher changes over to configs/runners.yaml / infx/launch/. Apologies for the churn, and thanks for your understanding as we wrap up the repo-wide refactoring push.

@nvpohanh

nvpohanh commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator

[by Claude Code] The SGLang cookbook integration of this PR's AgentX config (qwen3.5-fp4-b300-dynamo-sglang-agentic-pareto) will happen in sgl-project/sglang#43083, in the Agentic Long-Context Deployment section of the Qwen3.5 cookbook page. It mirrors the launch measured in run 34548026742, pinned by this PR's /reuse-sweep-run comment.

@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 (qwen3.5-fp4-b300-dynamo-sglang-agentic-pareto) is now in the Agentic Long-Context Deployment section of the SGLang Qwen3.5 cookbook: https://docs.sglang.io/cookbook/autoregressive/Qwen/Qwen3.5#agentic-long-context-deployment

The commands mirror the launch measured in run 34548026742, pinned by this PR's /reuse-sweep-run comment.

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

lookig

移除 Qwen3.5 B300 AgentX 配方中指向 /tmp 的缓存环境变量设置。
@github-actions

Copy link
Copy Markdown
Contributor

inferencex-e2e/infx diff: +98 -0

Generally most InferenceX submissions don't need to add changes to the infx package. On the off chance they do, generally the diff is small. Please prompt your agent to clean your PR to keep your diff to only necessary & minimal changes too. We have an increased code quality bar for changes to the infx package.

中文

大多数 InferenceX 提交通常不需要修改 infx 包。即使确实需要,改动通常也很小。请让你的 agent 清理 PR,使改动只包含必要且最小的内容。infx 包的改动有更高的代码质量要求。

SGLANG_FLASHINFER_FP4_GEMM_BACKEND: cutlass
SGLANG_MOE_NVFP4_DISPATCH: '1'
SGLANG_CUTEDSL_MOE_NVFP4_DISPATCH: '1'
SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE: '1'

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.

this is not allowed

@functionstackx

Copy link
Copy Markdown
Collaborator

i have removed nextn quant here which isn't allowed by the agreed upon guidelines #3931

https://github.com/SemiAnalysisAI/InferenceX/blob/main/inferencex-e2e/docs/PR_REVIEW_CHECKLIST.md

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

to test reproducitivity, i deleted the existing cached squash file, rebased it onto main and removing nextn quant it doesnt seem to work

#3931

https://github.com/SemiAnalysisAI/InferenceX/actions/runs/38289020106/job/114945328806?pr=3931

nvpohanh and others added 2 commits October 12, 2026 19:48
Resolve the perf-changelog.yaml conflict by keeping main's file unchanged
and re-appending this PR's entry at the tail.

合并 origin/main,解决 perf-changelog.yaml 冲突:保持 main 中的文件内容不变,
并将本 PR 的条目重新追加到文件末尾。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-7224fce1

- Bump the four recipes and the master entry to
  lmsysorg/sglang:nightly-dev-20261013-7224fce1 and rename the recipe
  variants to match.
- Drop SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE so the NextN draft layer is served
  at its shipped precision.
- Replace aliases this image removed: cuda-graph-max-bs becomes
  cuda-graph-max-bs-decode (the old spelling is now an ambiguous prefix),
  and SGLANG_DISABLE_TP_MEMORY_INBALANCE_CHECK=1 becomes
  SGLANG_ENABLE_TP_MEMORY_INBALANCE_CHECK=0.
- Drop settings with no effect in this image: environment variables it no
  longer reads (SGLANG_ENABLE_SPEC_V2, SGLANG_ENABLE_FLASHINFER_GEMM,
  SGLANG_FLASHINFER_FP4_GEMM_BACKEND, SGLANG_CUTEDSL_MOE_NVFP4_DISPATCH),
  false booleans srt-slurm never passes (including the deprecated
  enable-dp-attention), and settings whose readers these TP-only aggregate
  workers never reach (DP-attention scheduler gathers, Mooncake and NVSHMEM
  variables, load-balance-method, moe-dense-tp-size, and
  hicache-io-backend: kernel, which page_first_direct rewrites to direct).
- Drop the recipe-level cpus-per-task directive, which conflicts with the
  b300-dsxe cpus-per-gpu default, and run the AgentX client from
  benchmarks/srt_agentic.sh.

将 Qwen3.5 B300 SGLang AgentX 迁移到 nightly-dev-20261013-7224fce1:

- 将四个配方与主配置条目升级到
  lmsysorg/sglang:nightly-dev-20261013-7224fce1,并相应重命名配方变体。
- 移除 SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE,使 NextN 草稿层以发布时的精度运行。
- 替换该镜像已移除的别名:cuda-graph-max-bs 改为 cuda-graph-max-bs-decode
  (旧写法现在是有歧义的前缀),SGLANG_DISABLE_TP_MEMORY_INBALANCE_CHECK=1
  改为 SGLANG_ENABLE_TP_MEMORY_INBALANCE_CHECK=0。
- 移除在该镜像中无效的设置:不再被读取的环境变量(SGLANG_ENABLE_SPEC_V2、
  SGLANG_ENABLE_FLASHINFER_GEMM、SGLANG_FLASHINFER_FP4_GEMM_BACKEND、
  SGLANG_CUTEDSL_MOE_NVFP4_DISPATCH),srt-slurm 从不传递的 false 布尔参数
  (包括已弃用的 enable-dp-attention),以及这些仅 TP 的聚合 worker 不会
  触达的设置(DP 注意力调度器 gather、Mooncake 与 NVSHMEM 变量、
  load-balance-method、moe-dense-tp-size,以及会被 page_first_direct 改写为
  direct 的 hicache-io-backend: kernel)。
- 移除与 b300-dsxe 默认 cpus-per-gpu 冲突的配方级 cpus-per-task 指令,并改为
  通过 benchmarks/srt_agentic.sh 运行 AgentX 客户端。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nvpohanh nvpohanh added full-sweep-fail-fast Full sweep with canary gate; first failure cancels the rest of that matrix (recommended) and removed full-sweep-enabled Full sweep with canary gate; matrix jobs run to completion despite failures labels Oct 13, 2026
@nvpohanh

Copy link
Copy Markdown
Collaborator

[by Claude Code] The SGLang cookbook update of this PR's AgentX config (qwen3.5-fp4-b300-dynamo-sglang-agentic-pareto) will happen in sgl-project/sglang#43983, in the Agentic Long-Context Deployment section of the Qwen3.5 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.

The commands mirror the launch measured in run 34548026742, pinned by this PR's /reuse-sweep-run comment.

@nvpohanh

Copy link
Copy Markdown
Collaborator

[by Claude Code] sgl-project/sglang#43983 has been merged. This PR's AgentX config (qwen3.5-fp4-b300-dynamo-sglang-agentic-pareto) is now in the Agentic Long-Context Deployment section of the SGLang Qwen3.5 cookbook: https://docs.sglang.io/cookbook/autoregressive/Qwen/Qwen3.5#agentic-long-context-deployment

The commands mirror the launch measured in run 34548026742, pinned by this PR's /reuse-sweep-run comment.

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-fail-fast Full sweep with canary gate; first failure cancels the rest of that matrix (recommended)

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

5 participants