Skip to content

[AgentX] tune Muse Spark Open B200 for TP8/EP8 / [AgentX] 调优 Muse Spark Open B200 TP8/EP8 配置 - #4155

Merged
Oseltamivir merged 6 commits into
mainfrom
feat/musespark-b200-tp8
Oct 16, 2026
Merged

Oseltamivir merged 6 commits into
mainfrom
feat/musespark-b200-tp8

Conversation

@edwingao28

@edwingao28 edwingao28 commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Update B200 from TP4/EP4 to TP8/EP8 using the LMSYS AgentX settings, retaining every TP4 concurrency point and adding 48. Enable HiCache from concurrency 16; keep the NVFP4 model, pinned image, DFlash2 draft and golden acceptance unchanged. High concurrency uses 216 GB of host cache per rank.

AI model disclosure
  • Model/version: The exact model/version could not be verified from the runtime.
  • Role: Recipe changes and validation.
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
  • If python -m infx.matrix.changed --base origin/main lists affected config keys, I have appended one new entry covering them to the physical end of inferencex-e2e/perf-changelog.yaml; if it lists none, I have added none. I have not edited historical entries
  • If this PR appends an inferencex-e2e/perf-changelog.yaml entry, 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.
中文

将 B200 从 TP4/EP4 调整为 TP8/EP8,采用上方 LMSYS AgentX 配置,保留 TP4 的全部并发点并增加 48。从并发 16 起启用 HiCache;NVFP4 模型、固定镜像、DFlash2 草稿模型和 golden acceptance 保持不变。高并发时每个 rank 使用 216 GB 主机缓存。

改动类型:配置变更。AI 模型:无法从运行环境确认精确型号或版本;负责配置修改与验证。

将 B200 AgentX 配置调整为 TP8/EP8,保留 TP4 的全部并发点并增加并发 48。
@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 任务通过。临时性失败通常可以通过重新运行恢复;参见重新运行失败任务的说明。

为 B200 TP8 性能记录补充 PR 链接。
@edwingao28 edwingao28 added the full-sweep-fail-fast Full sweep with canary gate; first failure cancels the rest of that matrix (recommended) label Oct 16, 2026
@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

8 ranks x (216 GB main + ~63 GB draft-model host pool) exceeded the node's
~1.86 TiB cgroup, so the draft pool allocation failed at startup. 160 GB per
rank leaves ~1.65 TB total including the draft sidecar.
@Oseltamivir
Oseltamivir marked this pull request as ready for review October 16, 2026 04:16
@Oseltamivir
Oseltamivir requested a review from a team October 16, 2026 04:16
@Oseltamivir Oseltamivir added full-sweep-fail-fast Full sweep with canary gate; first failure cancels the rest of that matrix (recommended) and removed full-sweep-fail-fast Full sweep with canary gate; first failure cancels the rest of that matrix (recommended) labels Oct 16, 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.

Comment thread inferencex-e2e/perf-changelog.yaml Outdated
description:
- "Update Muse Spark Open B200 from TP4/EP4 to TP8/EP8 using the LMSYS AgentX recipe, with the same NVFP4 checkpoint, pinned SGLang image and DFlash2 draft."
- "Enable block verification and breakable prefill CUDA graphs; use mem-fraction-static 0.9, SWA/full ratio 0.4, admission 192 and decode graph batch 128."
- "Sweep concurrency 1, 2, 4, 8 and 12 with GPU-resident KV; enable layernorm SP, MegaMoE and HiCache at 16, 24, 32 and 48, with 120 GB per rank at 16 and 216 GB per rank at 24/32/48 within a 90% host-DRAM budget."

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.

🟡 (optional) Readers of the append-only changelog get a host-cache size the benchmark never uses: it says 216 GB per rank at 24/32/48. The recipe sets hicache-size: 160 for override_tp8_c24, override_tp8_c32 and override_tp8_c48, so the entry does not describe the final state. Fix: make the entry and the recipe agree before merge, either by writing "160 GB per rank at 24/32/48" or by changing those three overrides to hicache-size: 216. Historical entries cannot be edited later. [also at: inferencex-e2e/perf-changelog.yaml:9925 - Readers of the perf changelog are told the high-concurrency runs use 216 GB of host cache per rank, but the recipe actually runs 160 GB.]

Why this was flagged

The new entry at inferencex-e2e/perf-changelog.yaml:9924 says "120 GB per rank at 16 and 216 GB per rank at 24/32/48". The recipe inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/musespark/sglang/b200-fp4-mtp/agentic.yaml sets hicache-size: 160 in override_tp8_c24, override_tp8_c32 and override_tp8_c48. The PR description also claims 216 GB. 216 GB matches the per-rank share of the 1731 GB B200 budget at dram-utilization 0.90 used by other B200 recipes (1731/8 = 216). So either the recipe under-sizes HiCache compared with the stated intent, or the changelog misreports it. AGENTS.md treats the file as append-only, and a PR's block must describe its final state. Once merged, the wrong 216 GB figure stays permanently attached to these results, and no generator or schema check compares the description text with the recipe.

Verification: The new perf-changelog.yaml entry (line 9924) says "...120 GB per rank at 16 and 216 GB per rank at 24/32/48 within a 90% host-DRAM budget." The recipe musespark/sglang/b200-fp4-mtp/agentic.yaml sets hicache-size: 120 in override_tp8_c16, which matches, but sets hicache-size: 160 in override_tp8_c24, override_tp8_c32 and override_tp8_c48. Once merged, the wrong number stays in the history for good.

# Conflicts:
#	inferencex-e2e/perf-changelog.yaml
@Oseltamivir Oseltamivir added non-canary-full-sweep-enabled Run the full sweep without the canary gate (full search space, no trim) and removed full-sweep-fail-fast Full sweep with canary gate; first failure cancels the rest of that matrix (recommended) labels Oct 16, 2026
@Oseltamivir

Copy link
Copy Markdown
Collaborator

/use 38851010434

@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

@Oseltamivir staged run 38851010434.

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

@Oseltamivir
Oseltamivir merged commit 12dbdda into main Oct 16, 2026
33 checks passed
@Oseltamivir
Oseltamivir deleted the feat/musespark-b200-tp8 branch October 16, 2026 07:02
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.

2 participants