Skip to content

kimik3-fp4-mi355x-vllm-agentic-mtp: add LMCache DRAM KV-offload arm - #2583

Closed
sammshen wants to merge 13 commits into
SemiAnalysisAI:mainfrom
sammshen:kimik3-mi355x-lmcache
Closed

kimik3-fp4-mi355x-vllm-agentic-mtp: add LMCache DRAM KV-offload arm#2583
sammshen wants to merge 13 commits into
SemiAnalysisAI:mainfrom
sammshen:kimik3-mi355x-lmcache

Conversation

@sammshen

@sammshen sammshen commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

What

Adds a dedicated config key kimik3-fp4-mi355x-vllm-agentic-mtp-lmcache with an LMCache DRAM KV-offload arm at TP8 conc 4 / 8 / 16, on top of the unchanged DSpark MTP serving stack of kimik3-fp4-mi355x-vllm-agentic-mtp (same image, script, and topology). A separate key means the changelog selects only the LMCache points — the resident and vllm-simple arms of the base key are not re-run.

Changes

  • configs/amd-master.yaml — new key, purely additive (the base key is byte-identical to main): kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.4rc1" }, conc-list: [4, 8, 16], spec-decoding: mtp.
  • benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh — new lmcache) case arm, modeled on the MiniMax-M3 lmcache arm:
    • installs the LMCache 0.5.4rc1 ROCm wheel (gfx950) with --no-deps plus its missing runtime deps, leaving the image's torch/ROCm stack untouched;
    • starts a single MP server per the Kimi-K3 recipe: --chunk-size 768 (the K3 unified block size at 8 GPUs), --separate-object-groups (one object group per sliding-window size for the hybrid KDA/MLA layout, which has two KV-cache groups under MTP), --enable-extra-logging, --max-cpu-workers 8 --max-gpu-workers 1, --l1-size-gb $TOTAL_CPU_DRAM_GB, LRU eviction;
    • wires vLLM to it via LMCacheMPConnector (lmcache.mp.port), keeping the DSpark SPEC_ARGS untouched;
    • unknown backends now fail fast instead of silently running GPU-resident.
  • perf-changelog.yaml — selects only the new key.
  • The L1 budget consumes the generated TOTAL_CPU_DRAM_GB verbatim per the agentic README, with an early /dev/shm capacity check (same as the MiniMax-M3 arm).

LMCache + DSpark MTP + the rest of this recipe's feature set has been compatibility-tested; --separate-object-groups is the supported handling for the multi-KV-group layout that previously blocked LMCache-under-MTP arms.

Validation

process_changelog.py run exactly as CI does (base = main) emits a 4-row matrix, nothing else:

kimik3_tp8_conc4_kvdram-lmcache_spec-mtp   | lmcache 0.5.4rc1 | throughput
kimik3_tp8_conc8_kvdram-lmcache_spec-mtp   | lmcache 0.5.4rc1 | throughput
kimik3_tp8_conc16_kvdram-lmcache_spec-mtp  | lmcache 0.5.4rc1 | throughput
kimik3_tp8_conc16_kvdram-lmcache_spec-mtp  | lmcache 0.5.4rc1 | eval-only

generate_sweep_configs.py test-config passes for both the new key and the (unchanged) base key; bash -n passes on the modified script.

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

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@github-actions

Copy link
Copy Markdown
Contributor

Dispatched trusted sweep run for approved external revision f206c4bf66185ac946a7a533e7726a35453f311d.
New commits are not trusted automatically; remove and re-add the primary sweep label to approve a new SHA.

已为获批的外部提交 f206c4bf66185ac946a7a533e7726a35453f311d 调度trusted sweep run
后续新提交不会自动获得信任;如需批准新的 SHA,请移除并重新添加主扫描标签。

Add an lmcache kv-offload-backend point at TP8 conc 10 on top of the
existing DSpark MTP serving stack, mirroring the vllm-simple offload arm
for a direct backend comparison. The benchmark script gains an lmcache
case arm that installs the LMCache 0.5.4rc1 ROCm wheel (torch/ROCm stack
untouched), starts one MP server per the Kimi-K3 recipe (chunk size 768
= K3 unified block size at 8 GPUs, --separate-object-groups for the
hybrid KDA/MLA two-group KV layout, --enable-extra-logging,
--max-cpu-workers 8 --max-gpu-workers 1), and wires vLLM to it via
LMCacheMPConnector.
@github-actions

Copy link
Copy Markdown
Contributor

Dispatched trusted sweep run for approved external revision 328836b6f1aea4da24ac60651cdf4b7614920a25.
New commits are not trusted automatically; remove and re-add the primary sweep label to approve a new SHA.

已为获批的外部提交 328836b6f1aea4da24ac60651cdf4b7614920a25 调度trusted sweep run
后续新提交不会自动获得信任;如需批准新的 SHA,请移除并重新添加主扫描标签。

A separate kimik3-fp4-mi355x-vllm-agentic-mtp-lmcache key lets the
changelog select only the LMCache points instead of re-running the
resident and vllm-simple arms of the base key. The base key returns to
its upstream shape.
@github-actions

Copy link
Copy Markdown
Contributor

Dispatched trusted sweep run for approved external revision 4584d37ab75aa38fd8af0060b3d6a429a6b82154.
New commits are not trusted automatically; remove and re-add the primary sweep label to approve a new SHA.

已为获批的外部提交 4584d37ab75aa38fd8af0060b3d6a429a6b82154 调度trusted sweep run
后续新提交不会自动获得信任;如需批准新的 SHA,请移除并重新添加主扫描标签。

@ApostaC ApostaC added agentx AgentX benchmarks, recipes, and infrastructure full-sweep-enabled and removed full-sweep-enabled labels Aug 12, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Dispatched trusted sweep run for approved external revision 4584d37ab75aa38fd8af0060b3d6a429a6b82154.
New commits are not trusted automatically; remove and re-add the primary sweep label to approve a new SHA.

已为获批的外部提交 4584d37ab75aa38fd8af0060b3d6a429a6b82154 调度trusted sweep run
后续新提交不会自动获得信任;如需批准新的 SHA,请移除并重新添加主扫描标签。

@ApostaC ApostaC added the AMD label Aug 12, 2026
The LMCache MP server's L1 lives in /dev/shm and the script rejects
budgets above 90% of free shm. mi355x-amds nodes mount ~1.5 TB of shm
(cap ~1360 GB), so 0.50's 1499 GB budget failed the check in run
31644286169. 0.40 generates ~1199 GB, which fits with margin.
@github-actions

Copy link
Copy Markdown
Contributor

Dispatched trusted sweep run for approved external revision aba14d1b1f300be44daaf97ecf0693e4f5dcdd1e.
New commits are not trusted automatically; remove and re-add the primary sweep label to approve a new SHA.

已为获批的外部提交 aba14d1b1f300be44daaf97ecf0693e4f5dcdd1e 调度trusted sweep run
后续新提交不会自动获得信任;如需批准新的 SHA,请移除并重新添加主扫描标签。

vLLM sizes the K3 unified attention block to 1536 tokens on the MI355X
fp8-KV TRITON_MLA path (attention page >= mamba page), and the MP
connector asserts chunk %% block == 0, so the recipe's CUDA-path 768
fails engine init (run 31644990546).
The connector requires the chunk to be a multiple of every engine KV
group's tokens_per_block. On this stack the hybrid layout registers
attention groups at 1536 and a KDA state group at 3072 (run
31645828378), so 1536 fails registration; 3072 is the minimum valid
chunk.
@github-actions

Copy link
Copy Markdown
Contributor

Dispatched trusted sweep run for approved external revision a8cda1afc0cfa50c85515fb7632dd5b7f027662c.
New commits are not trusted automatically; remove and re-add the primary sweep label to approve a new SHA.

已为获批的外部提交 a8cda1afc0cfa50c85515fb7632dd5b7f027662c 调度trusted sweep run
后续新提交不会自动获得信任;如需批准新的 SHA,请移除并重新添加主扫描标签。

Auto mode loads both transfer paths; pin server-driven STORE/RETRIEVE
(as the MiniMax-M3 arm does) so the benchmark measures one
deterministic path. The L1 stays shm-backed either way, so the /dev/shm
capacity check still applies.
@github-actions

Copy link
Copy Markdown
Contributor

Dispatched trusted sweep run for approved external revision afee680555d81c8783ee45cfd44047f0a434fadf.
New commits are not trusted automatically; remove and re-add the primary sweep label to approve a new SHA.

已为获批的外部提交 afee680555d81c8783ee45cfd44047f0a434fadf 调度trusted sweep run
后续新提交不会自动获得信任;如需批准新的 SHA,请移除并重新添加主扫描标签。

sammshen and others added 4 commits August 12, 2026 23:21
The default 300s read-lock TTL expires under a single GPU worker
serializing huge K3 transfers: run 31648224111 logged 57k
finish-read-on-non-read-locked-key warnings starting exactly at
warmup+300s, followed by a GPU illegal-access crash mid-profile.
Match the MiniMax-M3 arm's 7200s read TTL.
Signed-off-by: ApostaC <yihua98@uchicago.edu>
Signed-off-by: ApostaC <yihua98@uchicago.edu>
@github-actions

Copy link
Copy Markdown
Contributor

Dispatched trusted sweep run for approved external revision 0811fb0c6962785d07607a9b1cffb621fe01473c.
New commits are not trusted automatically; remove and re-add the primary sweep label to approve a new SHA.

已为获批的外部提交 0811fb0c6962785d07607a9b1cffb621fe01473c 调度trusted sweep run
后续新提交不会自动获得信任;如需批准新的 SHA,请移除并重新添加主扫描标签。

Signed-off-by: ApostaC <yihua98@uchicago.edu>
@github-actions

Copy link
Copy Markdown
Contributor

Dispatched trusted sweep run for approved external revision ac6ad7d514a4a5346293e62a5378204d19e32f55.
New commits are not trusted automatically; remove and re-add the primary sweep label to approve a new SHA.

已为获批的外部提交 ac6ad7d514a4a5346293e62a5378204d19e32f55 调度trusted sweep run
后续新提交不会自动获得信任;如需批准新的 SHA,请移除并重新添加主扫描标签。

Signed-off-by: ApostaC <yihua98@uchicago.edu>
@github-actions

Copy link
Copy Markdown
Contributor

Dispatched trusted sweep run for approved external revision e890a2b44a770a2cfec61a9b025fbad6fcbe8e69.
New commits are not trusted automatically; remove and re-add the primary sweep label to approve a new SHA.

已为获批的外部提交 e890a2b44a770a2cfec61a9b025fbad6fcbe8e69 调度trusted sweep run
后续新提交不会自动获得信任;如需批准新的 SHA,请移除并重新添加主扫描标签。

@sammshen

Copy link
Copy Markdown
Collaborator Author

/stage-results

@sammshen

Copy link
Copy Markdown
Collaborator Author

Superseded by #2598, which carries the same commits on a branch in this repo rather than a fork. Same-repo PRs get secrets, so run-sweep.yml does the real work there and /stage-results can find it.

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

Labels

agentx AgentX benchmarks, recipes, and infrastructure AMD full-sweep-enabled

Projects

Development

Successfully merging this pull request may close these issues.

3 participants