Skip to content

[AMD] add dsv4 sglang disagg / 新增 DSv4 SGLang 分离式基准测试#1818

Merged
cquil11 merged 42 commits into
mainfrom
amd/dsv4_sgl_di
Jul 10, 2026
Merged

[AMD] add dsv4 sglang disagg / 新增 DSv4 SGLang 分离式基准测试#1818
cquil11 merged 42 commits into
mainfrom
amd/dsv4_sgl_di

Conversation

@billishyahao

@billishyahao billishyahao commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator

cc @Duyi-Wang


Note

Medium Risk
Touches shared disagg launch paths (server_sglang.sh, models.yaml) for all models, not only DSv4; behavior changes when EP is disabled and MoE auto-sizing is partially commented out.

Overview
Adds dsv4-fp4-mi355x-sglang-disagg to the AMD master benchmark matrix (8k/1k, non-MTP) with sweeps over pure TP8, DEP8 (MoRI KV + MoE a2a), and dp-attention + TP-MoE, plus a new workflow runner dsv4_fp4_mi355x_sglang-disagg.sh and a perf-changelog entry.

The multi-node harness is extended for DSv4 PD: a DeepSeek-V4-Pro block in models.yaml (dsv4 attention backend, mori disagg, prefill disable_cuda_graph) and matching MoRI/kernel env overrides in env.sh; the bench client uses --dsv4 framing instead of chat templates.

server_sglang.sh / models.yaml refactor MoE CLI so ep_flags (mori a2a, deepep, fake dispatch) apply only when EP is on—ep=1 stays TP-MoE even with dp-attention—and prefill can honor per-model disable_cuda_graph, context_length, and optional MORI_NUM_MAX_DISPATCH_TOKENS_PER_RANK_* overrides. submit.sh threads DRY_RUN for previewing composed launch commands on a real allocation.

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

中文说明

在 AMD 主基准测试矩阵中新增 dsv4-fp4-mi355x-sglang-disagg 配置(8k/1k,非 MTP),覆盖纯 TP8、DEP8(MoRI KV + MoE a2a)及 dp-attention + TP-MoE 多种扫描点。新增工作流运行器脚本 dsv4_fp4_mi355x_sglang-disagg.sh 和 perf-changelog 条目。扩展多节点 harness 以支持 DSv4 的 EP 和 MoE 配置。

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit c22652b. Configure here.

Comment thread benchmarks/multi_node/amd_utils/server_sglang.sh
@github-actions

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

@functionstackx functionstackx added the all-evals Expand eval selection to every fixed-sequence config label Jun 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Comment thread perf-changelog.yaml Outdated
Comment on lines +4002 to +4003
description:
- "init submission of dsv4 sglang disagg "

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.

@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@functionstackx

Copy link
Copy Markdown
Collaborator

hi @billishyahao there seems to be an accuracy issues with TP8+TP8. codex has narrowed it down to conc=4, here is the bug report for when u wake up, please take a look

sgl-project/sglang#28851

https://github.com/SemiAnalysisAI/InferenceX/actions/runs/27896968169/job/82550287079?pr=1818

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

@seungrokj

Copy link
Copy Markdown
Collaborator

/reuse-sweep-run

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

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 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 the single-node recipes are similar to the official vLLM recipes and/or theSGLang cookbook:
    • If they are not, I have verified that a PR has been opened in vLLM recipe repo or SGLang repo and linked it below in the additional detail section:
  • If any of the above criteria cannot reasonably be satisfied, I have provided additional reasoning below.

Additional detail section:

  • insert any additional info here

Signed: seungrokj

@Klaud-Cold

Copy link
Copy Markdown
Collaborator

✅✅✅ Verdict: PASS ✅✅✅

✅ Check 0 (CODEOWNER): PASS — seungrokj is a listed owner of configs/amd-master.yaml; all other changed paths are catch-all-only, which a recognized CODEOWNER covers.
✅ Check 1 (sweep on in-PR commit): PASS — run 28911918964 on in-PR commit b1fc91a9 executed both dsv4 disagg lanes green (multi-node 8k1k / + multi-node eval / all success; single-node lanes correctly skipped for this multi-node-only PR).
✅ Check 2 (eval accuracy): PASS — GSM8K em_strict 0.952–0.964 (n_eff=1319) across all 10 concurrency points of both topologies, run on lmsysorg/sglang-rocm:v0.5.14-rocm720-mi35x-20260701, the same image as this PR's config.
➖ Check 3 (recipe link): N/A — disaggregated/multi-node submission (benchmarks/multi_node/** only; config has multinode: true, disagg: true, framework sglang-disagg); the recipe-link requirement applies to single-node recipes only.
✅ Check 4 (reuse command): PASS — /reuse-sweep-run posted by seungrokj (COLLABORATOR) on 2026-07-09; the head-commit reuse-sweep-gate succeeded.
✅ Check 5 (latest checklist): PASS — all 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-rocm:...; this is an SGLang submission and single-node dsv4-fp4-mi355x-sglang already exists in configs/amd-master.yaml.
✅ Check 7 (no architecture hacks): PASS — no --hf-overrides/model-config edits anywhere in the diff; env.sh additions are kernel-routing and MoRI buffer-sizing toggles only.
➖ Check 8 (spec-decode chat templates): N/A — the added config is non-MTP (spec-decoding: "none", DECODE_MTP_SIZE=0); no speculative-decoding benchmark added or changed.

Note: the sign-off conversation comment referenced by the gate (id 4921388149) returns 404 (apparently deleted); the identical checklist was verified from seungrokj's APPROVED review submitted 2026-07-09T03:48:22Z. PR head is unchanged at the pinned SHA.

@chunfangamd

Copy link
Copy Markdown
Collaborator

sgl-project/sglang#30651

Duyi-Wang and others added 3 commits July 9, 2026 13:20
…opology details

Add Chinese: 补充 dsv4 sglang 分离式 changelog 条目的镜像/启动器/拓扑细节
@@ -38,9 +41,10 @@
# cuda_graph_bs_range: str

DeepSeek-V3:

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.

Why are there updates to other models? Shouldn't this PR be self container to v4?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I split these dp_flags into dp_flags+ep_flags to support dp attention + tp moe. It will not affect the actual behaviour.

base_flags: "--decode-log-interval 1000 --log-level warning --watchdog-timeout 3600 --load-balance-method round_robin --kv-cache-dtype fp8_e4m3 --attention-backend aiter --disaggregation-transfer-backend mori --moe-dense-tp-size 1"
mtp_flags: ""
dp_flags: "--moe-a2a-backend mori --enable-dp-attention --enable-dp-lm-head"
dp_flags: "--enable-dp-attention --enable-dp-lm-head"

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.

yeah preferably can you split these into separate pr please. thank you. shouldnt require re running anything

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

This change only made previous legacy model config compatible with latest logic in benchmarks/multi_node/amd_utils/server_sglang.sh. It will not change any behaviours.

@cquil11 cquil11 merged commit bba56ea into main Jul 10, 2026
41 checks passed
@cquil11 cquil11 deleted the amd/dsv4_sgl_di branch July 10, 2026 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

all-evals Expand eval selection to every fixed-sequence config AMD full-sweep-enabled

Projects

Development

Successfully merging this pull request may close these issues.

8 participants