Skip to content

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

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

Add Qwen3.5 B300 Dynamo-SGLang AgentX recipes / 添加 Qwen3.5 B300 Dynamo-SGLang AgentX 配方#2978
RohitNagraj wants to merge 4 commits into
mainfrom
qwen3.5-fp4-b300-dynamo-sglang-agentic-pareto

Conversation

@RohitNagraj

@RohitNagraj RohitNagraj commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

Description

  • Add a Qwen3.5 NVFP4 B300 Dynamo-SGLang AgentX configuration with five aggregate MTP recipe variants.
  • Use the pinned upstream lmsysorg/sglang:nightly-dev-cu13-20260901-07c8f729 image.
  • Validate explicit synthetic acceptance against the committed Qwen3.5 thinking-on golden acceptance-length curve using each recipe's MTP step count, including the draft tokens = steps + 1 invariant.
  • Update the B300 DSXE Qwen3.5 model alias and apply synthetic-acceptance handling to throughput and eval-only launches.

中文说明

  • 新增 Qwen3.5 NVFP4 B300 Dynamo-SGLang AgentX 配置,包含五个聚合式 MTP 配方变体。
  • 使用固定的上游镜像 lmsysorg/sglang:nightly-dev-cu13-20260901-07c8f729
  • 根据每个配方的 MTP 步数,将显式合成接受长度与已提交的 Qwen3.5 thinking-on 黄金接受长度曲线进行校验,并强制满足“草稿 token 数 = 步数 + 1”。
  • 更新 B300 DSXE 的 Qwen3.5 模型别名,并对吞吐与仅评测启动统一应用合成接受处理。

Related Issue

N/A

Type of Change

  • Bug fix
  • New feature
  • Configuration change
  • Documentation update
  • Other

Checklist

  • 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 perf-changelog.yaml and have not edited historical entries
  • Before merging via reuse, an authorized maintainer (OWNER/MEMBER/COLLABORATOR) has commented /reuse-sweep-run on this PR

Note

Medium Risk
Changes benchmark launch paths and fail-closed synthetic acceptance for Qwen3.5, which can block misconfigured runs but also alters throughput vs eval injection behavior on B300 DSXE.

Overview
Adds Qwen3.5 NVFP4 B300 Dynamo-SGLang AgentX coverage via a new qwen3.5-fp4-b300-dynamo-sglang-agentic-pareto entry in nvidia-master.yaml and four srt-slurm agentic recipes (TP2+HiCache+MTP with zip batch caps, TP2 c44, TP2EP2 high-throughput, TP4 low-lat), all pinned to lmsysorg/sglang:nightly-dev-cu13-20260901-07c8f729 and wired to agentic_srt.sh with synthetic acceptance lengths per concurrency point.

Synthetic acceptance is tightened for Qwen3.5: inject_synthetic_acceptance.py now resolves AL from golden_al_distribution/qwen3.5_mtp.yaml from the recipe’s speculative-num-steps, rejects mismatched SYNTHETIC_ACCEPTANCE_LENGTH / NUM_SPEC_TOKENS, and the SGLang injector enforces speculative-num-draft-tokens = steps + 1 with correct nested env injection. launch_b300-dsxe.sh always runs the injector (not only EVAL_ONLY) and maps qwen3.5-fp4 to Qwen3.5-397B-A17B-NVFP4 (V2 kept as a separate alias). Docs, perf-changelog.yaml, and slurm injector tests cover the pareto points and fail-closed behavior.

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

添加 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 链接。

@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

Copy link
Copy Markdown
Contributor

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

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant