Skip to content

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

Open
sammshen wants to merge 9 commits into
SemiAnalysisAI:mainfrom
sammshen:kimik3-mi355x-lmcache
Open

kimik3-fp4-mi355x-vllm-agentic-mtp: add LMCache DRAM KV-offload arm#2583
sammshen wants to merge 9 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).
@github-actions

Copy link
Copy Markdown
Contributor

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

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

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,请移除并重新添加主扫描标签。

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

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants