Skip to content

[AgentX] add HiCache offload to Muse Spark Open H100 / [AgentX] 为 Muse Spark Open H100 添加 HiCache 卸载 - #4181

Merged
Oseltamivir merged 2 commits into
feat/musespark-h100-agentxfrom
feat/musespark-h100-hicache
Oct 16, 2026
Merged

Oseltamivir merged 2 commits into
feat/musespark-h100-agentxfrom
feat/musespark-h100-hicache

Conversation

@Oseltamivir

@Oseltamivir Oseltamivir commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Stacked on #4149; retarget to main once it merges.

Adds a host-DRAM KV offload arm (HiCache, 160 GB per rank, dram-utilization 0.80) at concurrency 2, 4 and 8, alongside #4149's GPU-resident c1–c16 sweep.

Why: at TP8 each H100 holds ~67 GB of target weights, leaving a GPU KV pool of only a few GB, so agentic prefixes are likely evicted between turns and recomputed. HiCache keeps them in host DRAM (h100-dsxe has ~1.83 TiB). The batch-8 cap on running requests and decode graphs from #4149 stays, since eager batches above it OOM in the MoE.

Risk: HiCache's GPU staging buffers have to fit in the ~1 GB/GPU headroom at mem-fraction-static 0.97; the sweep will show whether they do.

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

Comment thread inferencex-e2e/perf-changelog.yaml Outdated
description:
- "Add a HiCache host-DRAM KV offload arm at concurrency 2, 4 and 8 with 160 GB per rank, alongside the GPU-resident sweep; the few-GB GPU KV pool left by 67 GB of weights per H100 evicts agentic prefixes between turns."
- "Keep the batch-8 cap on running requests and decode graphs from the GPU-resident sweep."
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/XXXX

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.

🔴 The perf-changelog check will fail on this PR, and merge-time link filling will refuse this entry. The new block's pr-link ends in pull/XXXX, but PR_LINK_PLACEHOLDERS in validate_perf_changelog.py:22 accepts only XXX or .../pull/XXX. Fix: use the real PR link https://github.com/SemiAnalysisAI/InferenceX/pull/<N>, or the exact placeholder https://github.com/SemiAnalysisAI/InferenceX/pull/XXX so prepare_perf_changelog_merge.py can fill it in.

Why this was flagged

compare_entries calls validate_added_pr_link (inferencex-e2e/infx/workflows/validate_perf_changelog.py:139-150) for each appended entry. On a PR run it raises ChangelogValidationError("new PR entry must use ... or an XXX placeholder; found ...") unless the link is in PR_LINK_PLACEHOLDERS ({"XXX", "https://github.com/SemiAnalysisAI/InferenceX/pull/XXX"}) or equals the PR's own URL. pull/XXXX, with four X's, is neither, so the changelog validation job fails. prepare_perf_changelog_merge.py:108 also raises "appended entry ... has unexpected pr-link" for the same link, so the merge flow does not swap it for the real URL. As a result the entry that triggers result collection for musespark-fp4-h100-sglang-agentic-dflash cannot land as written.

Verification: Trigger: prepare_perf_changelog_merge runs at merge time. The appended entry's pr-link ends in pull/XXXX, which has four X's. PR_LINK_PLACEHOLDERS (validate_perf_changelog.py:22-24) contains only "XXX" and ".../pull/XXX". prepare_perf_changelog_merge.py:108 raises "appended entry ... has unexpected pr-link", so automatic link filling at merge refuses this entry.

@Oseltamivir
Oseltamivir merged commit 367f687 into feat/musespark-h100-agentx Oct 16, 2026
10 checks passed
@Oseltamivir
Oseltamivir deleted the feat/musespark-h100-hicache branch October 16, 2026 13:32
Oseltamivir added a commit that referenced this pull request Oct 16, 2026
…增 Muse Spark Open H100 并发 1–64 扫描 (#4149)

* feat: add Muse Spark Open H100 capacity check

* chore: link H100 Muse Spark sweep to PR 4149

* fix: reserve H100 memory for Muse Spark KV cache

* fix: fit Muse Spark prefill and long-context KV on H100

* fix: cap H100 Muse Spark decode graphs at 8 for vision headroom

c48 started with 0.29 GB free per GPU and OOMed in the vision encoder's
all-gather on the first image prefill.

* fix: keep H100 DFlash sampling valid above graph capacity

启用 eager draft sampler,保留解码图批量上限 8 和完整并发扫描。

* fix: cap H100 Muse Spark at 8 running requests, sweep c1-c16

Batches above the batch-8 decode graphs run eager and OOM in fused MoE
with ~1 GB free per GPU (c48, run 38870885984). Drop c24-c64.

* [AgentX] add HiCache offload to Muse Spark Open H100 / [AgentX] 为 Muse Spark Open H100 添加 HiCache 卸载 (#4181)

* feat: add HiCache offload arm to H100 Muse Spark at c2-c8

* chore: link H100 HiCache entry to PR 4181

---------

Co-authored-by: Oseltamivir <58582368+Oseltamivir@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant