Skip to content

Add Muse Spark Open GB300 SGLang DFlash2 AgentX recipe - #4141

Merged
functionstackx merged 5 commits into
mainfrom
feat/musespark-gb300-agentx
Oct 16, 2026
Merged

functionstackx merged 5 commits into
mainfrom
feat/musespark-gb300-agentx

Conversation

@cquil11

@cquil11 cquil11 commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator

Adds a Muse Spark Open (meta-models/Muse-Spark-Open-816B-A42B-NVFP4) AgentX config on GB300: musespark-fp4-gb300-sglang-agentic-dflash.

  • Serving: single-node SGLang on lmsysorg/sglang:dev-muse-spark-open (pinned by digest), following the SGLang cookbook's verified GB300 NVFP4 cell: TP4/EP4, modelopt_fp4, flashinfer_trtllm MoE, fp8 KV, layernorm SP with MegaMoE, DFlash2 draft RadixArk/Muse-Spark-Open-DFlash2 with an 8-token verification block and fa4 draft attention, muse reasoning and tool-call parsers. KV stays on the GPU.
  • KV sizing: 46 of 62 layers use a 2048-token sliding window. At the default swa-full-tokens-ratio 0.8 the SWA pool sat about 4% used while full-attention KV saturated from concurrency 24, so the recipe sets swa-full-tokens-ratio 0.1 and mem-fraction-static 0.85 (full-attention pool 2.1M to 5.5M tokens).
  • Sweep: concurrency 1, 2, 3, 4, 6, 8, 10, 12, 16, 20, 24, 32 from one recipe with a zip variant (max-running-requests equals concurrency).
  • Golden acceptance: the connector now maps SGLang DFLASH to the musespark_dflash curve with num_speculative_tokens = speculative-num-draft-tokens - 1 (same change as [Klaud Cold] Add Muse Spark Open MXFP4 MI355X SGLang DFlash2 AgentX recipe / [Klaud Cold] 新增 Muse Spark Open MXFP4 MI355X SGLang DFlash2 AgentX 配方 #4127), so this recipe gets AL 4.05 (7 drafts, thinking_on) injected; nothing is hard-coded.
  • GB300 cluster record: adds the staged checkpoint /data/models/Muse-Spark-Open-816B-A42B-NVFP4 to gb300-nv models.entries and sets single-node-models: staged, so single-node jobs serve the staged weights instead of the gated Hub repo. No other GB300 single-node config has a models.entries row, so their resolution is unchanged. The AgentX client tokenizes from the mounted checkpoint (TOKENIZER: /model).

Validation

Run Sweep 38835086328 on d3850c4: all 12 AgentX throughput jobs and the agentic GSM8K eval succeeded (GSM8K strict-match 0.974, 0 request errors). Mean server accept length was 4.05 against the 4.05 golden target. The throughput-vs-median-E2EL frontier has 10 points (c1 to c20).

Conc Total tok/s/GPU Output tok/s/GPU Median E2EL (s) Median interactivity (tok/s/user) Frontier
1 4,229 46.6 1.02 415 yes
2 5,138 53.3 1.16 408 yes
3 5,496 61.1 1.25 400 yes
4 6,337 71.2 1.47 366 yes
6 8,439 83.3 1.58 331 yes
8 10,348 103.0 1.70 295 yes
10 13,979 133.3 1.95 267 yes
12 16,961 152.7 2.01 237 yes
16 20,577 179.1 2.95 196 yes
20 22,642 193.5 4.10 153 yes
24 20,901 178.7 8.48 90
32 16,367 138.3 24.62 36

Single-node SGLang TP4/EP4 on GB300 serving the staged NVFP4 checkpoint,
with DFlash2 speculation and golden synthetic acceptance. The connector maps
SGLang DFLASH to the dflash curve with num_speculative_tokens equal to
speculative-num-draft-tokens minus one.

中文:在 GB300 上新增 Muse Spark Open 单节点 SGLang TP4/EP4 AgentX 配方,使用已预置的 NVFP4 权重、DFlash2 投机解码与黄金合成接受率;连接器将 SGLang DFLASH 映射为 dflash 曲线,num_speculative_tokens 为 speculative-num-draft-tokens 减一。
中文:将 perf-changelog 条目关联到 #4141。
@github-actions

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

@cquil11 cquil11 added full-sweep-enabled Full sweep with canary gate; matrix jobs run to completion despite failures and removed full-sweep-enabled Full sweep with canary gate; matrix jobs run to completion despite failures labels Oct 15, 2026
中文:恢复 perf-changelog 历史条目的 pr-link。
@cquil11 cquil11 added the full-sweep-enabled Full sweep with canary gate; matrix jobs run to completion despite failures label Oct 15, 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.

I reviewed this PR and didn't find any bugs. The NVIDIA master config and GB300 recipes have designated code owners, and the change sets single-node-models: staged for the whole gb300-nv cluster, so it still needs a look from an owner.

What was reviewed:

  • The DFlash branch in spec_parameters: speculative-num-draft-tokens: 8 gives 7 drafts. curve_name maps this to musespark_dflash, and the committed curve gives AL 4.05 for 7 drafts, which is within the 1..8 bound. The new test case uses 4 draft tokens (3 drafts) against the fixture's 3.4.
  • The staged-model switch on gb300-nv: the only other single-node GB300 configs serve DeepSeek-V4.1-Flash and Qwen3.8-Flash-Next. Neither has a models.entries row, so they still resolve to hf:<MODEL>.
  • The recipe, master-config entry and changelog entry agree on TP4/EP4, draft_model, and the concurrency list from 1 to 128. The XXX pr-link placeholder follows the existing pattern in the changelog.
Extended reasoning...

The change adds one single-node SGLang DFlash recipe for Muse Spark Open on GB300 and a matching nvidia-master entry. It also adds a GB300 staged-model entry, flips single-node-models to staged for the cluster, and adds a small DFlash branch with a test in the golden-acceptance connector. It touches no security-sensitive surface such as auth, injection or secrets. The bug hunt ran until it stopped finding anything (dry_streak) and reported nothing. I deferred instead of approving for two reasons: CODEOWNERS assigns nvidia-master.yaml and the gb300-* recipe directories to specific NVIDIA owners, with SemiAnalysisAI/core covering everything else; and the single-node-models flip applies to the whole cluster, not just this one config.

This review covers commit dca7e02, which is no longer the latest commit on this pull request; later commits are not covered by it.

…urrency sweep

Shrink the sliding-window pool (swa-full-tokens-ratio 0.1) and raise
mem-fraction-static to 0.85, which lifts the full-attention KV pool from
2.1M to 5.5M tokens. Sweep concurrency 1-32 where throughput still rises.

中文:缩小滑动窗口 KV 池(swa-full-tokens-ratio 0.1)并将 mem-fraction-static 提高到 0.85,使全注意力 KV 池从 2.1M 提升到 5.5M token;并发扫描改为吞吐仍在上升的 1-32 区间。
@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

@cquil11 cquil11 added non-canary-full-sweep-enabled Run the full sweep without the canary gate (full search space, no trim) and removed full-sweep-enabled Full sweep with canary gate; matrix jobs run to completion despite failures labels Oct 16, 2026
@nvpohanh

Copy link
Copy Markdown
Collaborator

[by Claude Code] The SGLang cookbook integration of this PR's AgentX config (musespark-fp4-gb300-sglang-agentic-dflash) will happen in sgl-project/sglang#44654, in the Agentic Long-Context Deployment section of the Muse Spark Open cookbook page.

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

@functionstackx

Copy link
Copy Markdown
Collaborator

/use 38835086328

@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

@functionstackx staged run 38835086328.

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

@functionstackx
functionstackx merged commit fc8744d into main Oct 16, 2026
25 checks passed
@functionstackx
functionstackx deleted the feat/musespark-gb300-agentx branch October 16, 2026 04:25
@nvpohanh

Copy link
Copy Markdown
Collaborator

[by Claude Code] sgl-project/sglang#44654 has been merged. This PR's AgentX config (musespark-fp4-gb300-sglang-agentic-dflash) is now in the Agentic Long-Context Deployment section of the SGLang Muse Spark Open cookbook: https://docs.sglang.io/cookbook/autoregressive/Meta/MuseSparkOpen#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 (d3850c458) as "in progress". It switches to the measured run at the next cookbook sync after a run is pinned or this PR merges.

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

Labels

non-canary-full-sweep-enabled Run the full sweep without the canary gate (full search space, no trim)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants