Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
71acdd4
perf(agentx): refresh K3 MI355X vLLM recipe with DCP8 MTP arm
seungrokj Sep 3, 2026
c281dbe
docs(changelog): link K3 MI355X vLLM DCP8 MTP refresh PR
seungrokj Sep 3, 2026
7b93468
style(agentx): add trailing newline to K3 MI355X benchmark script
seungrokj Sep 3, 2026
db7732d
perf(agentx): drop c52 from K3 MI355X DCP8 arm
seungrokj Sep 3, 2026
0a32492
perf(agentx): gate K3 LMCache GPU workers on DCP; trim sweep to c14/c48
seungrokj Sep 3, 2026
1701d42
perf(agentx): lower K3 c12/c14 GMU to 0.88; run c14-only smoke test
seungrokj Sep 3, 2026
aefefb3
perf(agentx): run K3 c12/c14 GMU 0.88 smoke test
seungrokj Sep 3, 2026
5cebe65
perf(agentx): lower K3 c12/c14 GMU to 0.85
seungrokj Sep 3, 2026
1b24693
perf(agentx): test K3 c14 GPU-resident (no KV offload), GMU 0.9
seungrokj Sep 3, 2026
ffc4d74
perf(agentx): bump K3 image to nightly-73029d42; c14 no-spec GPU-resi…
seungrokj Sep 3, 2026
99d0671
perf(agentx): run K3 c48 DCP8 LMCache smoke test on nightly-73029d42
seungrokj Sep 3, 2026
34d93c9
perf(agentx): run K3 c14 GPU-resident with MTP spec on nightly-73029d42
seungrokj Sep 3, 2026
883d6e3
perf(agentx): drop K3 high-conc max-num-batched-tokens to 4096 (OOM fix)
seungrokj Sep 3, 2026
60acfb3
perf(agentx): activate K3 c48 DCP8 arm for OOM-fix validation
seungrokj Sep 3, 2026
47745bf
perf(agentx): gate K3 LMCache chunk-size on DCP; pin dev60 wheel; run…
seungrokj Sep 3, 2026
f48e07a
perf(agentx): gate K3 LMCache wheel on DCP; run c14 on dev60
seungrokj Sep 3, 2026
ed613b6
fix(agentx): define LMCACHE_RELEASE for the K3 index URL
seungrokj Sep 3, 2026
bbce1d2
perf(agentx): pin K3 LMCache to v0.5.5rc4 from the release asset page
seungrokj Sep 3, 2026
0a3b572
perf(agentx): pin K3 LMCache to dev89; run c14 (dcp1) and c48 (dcp8)
seungrokj Sep 3, 2026
d5e7a1c
perf(agentx): revert K3 image to 7c5dc571; c48 label to dev89
seungrokj Sep 3, 2026
05c3f3f
perf(agentx): bump K3 image to 73029d42; run full conc sweep on dev89
seungrokj Sep 3, 2026
de3cc42
Merge branch 'main' into amd/agentx_k3_vllm_0903_2
seungrokj Sep 3, 2026
932280a
perf(agentx): add conc 52 to K3 dcp8 sweep
seungrokj Sep 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 27 additions & 11 deletions benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ set -x
# GPU_MEM_UTIL 0.95 (reference)
# MAX_NUM_BATCHED_TOKENS 8192 (default)
# AITER_A8W4 1 (reference; 0 = aiter a16w4 MoE path)
# LANGUAGE_MODEL_ONLY true
# LANGUAGE_MODEL_ONLY true
# KV_CACHE_DTYPE fp8 (default for every arm; =auto for a bf16 A/B)
# KV_BLOCK_SIZE unset (unset -> vLLM sizes the page; 128 under fp8)
# MAX_MODEL_LEN 1M
# MAX_MODEL_LEN 1M
# SPEC_DECODE true (this is the _mtp DSpark recipe; =false for a no-spec A/B)
# SPEC_NUM_TOKENS 2 (DSpark draft length; validated by the _mtp config)

Expand Down Expand Up @@ -149,10 +149,9 @@ case "${KV_OFFLOAD_BACKEND:-}" in
lmcache)
require_agentic_kv_offload_backend "$KV_OFFLOAD_BACKEND"

# Keep the image's tested torch/ROCm stack and install only LMCache's
# missing runtime dependencies, same as the MiniMax-M3 lmcache arm.
LMCACHE_VERSION="0.5.5.dev60+rocm7.2"
LMCACHE_VERSION=0.5.5.dev89+rocm7.2
LMCACHE_ROCM_INDEX="https://github.com/LMCache/LMCache/releases/expanded_assets/nightly-rocm"

agentic_pip_install --quiet --no-cache-dir --no-deps \
"sortedcontainers==2.4.0" \
"opentelemetry-exporter-prometheus==0.61b0" \
Expand Down Expand Up @@ -197,6 +196,18 @@ case "${KV_OFFLOAD_BACKEND:-}" in

LMCACHE_L1_SIZE_GB="$TOTAL_CPU_DRAM_GB"

# DCP shards decode KV across the TP ranks, so the LMCache GPU transfer
# pool needs one worker per rank; a non-DCP arm only needs a single worker.
# The DCP KV interleave also needs the larger 12288 chunk; a non-DCP arm
# uses the 3072 minimum (one KDA state group).
if [ "${DCP_SIZE:-1}" -gt 1 ]; then
LMCACHE_MAX_GPU_WORKERS=8
LMCACHE_CHUNK_SIZE=12288
else
LMCACHE_MAX_GPU_WORKERS=1
LMCACHE_CHUNK_SIZE=3072
fi

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DCP defaults disagree for LMCache

Low Severity

LMCache worker and chunk sizing treats unset DCP_SIZE as 1, but the later DCP setup defaults the same variable to 8. An unset run therefore starts LMCache with the non-DCP 3072 chunk and one GPU worker, then enables DCP8, which the new comments say needs the 12288-token chunk.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit de3cc42. Configure here.


LMCACHE_CMD=(
lmcache server
--host 127.0.0.1
Expand All @@ -205,12 +216,12 @@ case "${KV_OFFLOAD_BACKEND:-}" in
--http-port "$LMCACHE_HTTP_PORT"
--l1-size-gb "$LMCACHE_L1_SIZE_GB"
--l1-init-size-gb 10
--chunk-size 3072
--chunk-size "$LMCACHE_CHUNK_SIZE"
--separate-object-groups
--enable-extra-logging
--extra-logging-interval 30
--max-cpu-workers 8
--max-gpu-workers 1
--max-gpu-workers "$LMCACHE_MAX_GPU_WORKERS"
--eviction-policy LRU
--supported-transfer-mode lmcache_driven
--shm-name ""
Expand Down Expand Up @@ -256,16 +267,21 @@ case "$CONC" in
GPU_MEM_UTIL=0.9
MAX_NUM_BATCHED_TOKENS=16384
;;
2|4|8|10|12|14)
4|8|10|12|14)
SYNTHETIC_ACCEPT_LEN=3.00
SPEC_NUM_TOKENS=3
GPU_MEM_UTIL=0.9
MAX_NUM_BATCHED_TOKENS=8192
;;
44|48|52)
SPEC_NUM_TOKENS=0
GPU_MEM_UTIL=0.9
MAX_NUM_BATCHED_TOKENS=8192
;;
Comment thread
cursor[bot] marked this conversation as resolved.
*)
SPEC_NUM_TOKENS=0
GPU_MEM_UTIL=0.85
MAX_NUM_BATCHED_TOKENS=4096
GPU_MEM_UTIL=0.9
MAX_NUM_BATCHED_TOKENS=8192
;;
esac

Expand Down Expand Up @@ -306,7 +322,7 @@ CP_ARGS=()
ATTN_BE_ARGS=()
if [ "$DCP_SIZE" -gt 1 ]; then
CP_ARGS+=(--decode-context-parallel-size "$DCP_SIZE" --dcp-comm-backend a2a)
ATTN_BE_ARGS+=(--attention-backend TRITON_MLA)
ATTN_BE_ARGS+=(--attention-backend ROCM_AITER_MLA)
fi
export VLLM_USE_DIRECT_DCP_A2A=0
export VLLM_USE_DIRECT_DCP_Q_GATHER=0
Expand Down
7 changes: 4 additions & 3 deletions configs/amd-master.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -625,7 +625,7 @@ dsr1-fp8-mi355x-sglang-disagg-mtp:
- "DECODE_MTP_SIZE=2"

kimik3-fp4-mi355x-vllm-agentic-mtp:
image: vllm/vllm-openai-rocm:nightly-1dc464d42681d22f38caf1fdc1eb632dc4421c45
image: vllm/vllm-openai-rocm:nightly-73029d42441321b631779db3475031f5ec26dd6c
model: moonshotai/Kimi-K3
model-prefix: kimik3
runner: cluster:mi355x-amds
Expand All @@ -636,8 +636,9 @@ kimik3-fp4-mi355x-vllm-agentic-mtp:
agentic-coding:
- dram-utilization: 0.60
search-space:
- { tp: 8, kv-offloading: none, conc-list: [1] , spec-decoding: mtp}
- { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5.dev60+rocm7.2" }, conc-list: [4, 8, 10, 12, 14], spec-decoding: mtp }
- { tp: 8, ep: 1, dcp-size: 1, kv-offloading: none, conc-list: [1] , spec-decoding: mtp}
- { tp: 8, ep: 1, dcp-size: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5.dev89+rocm7.2" }, conc-list: [4, 8, 10, 12, 14], spec-decoding: mtp }
- { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5.dev89+rocm7.2" }, conc-list: [44, 48, 52], spec-decoding: mtp }

# Kimi-K3 MXFP4 agentic-coding benchmark on MI355X via ATOM with DSpark
# speculative decoding. Acceptance is pinned to the committed golden curve in
Expand Down
10 changes: 10 additions & 0 deletions perf-changelog.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6831,3 +6831,13 @@
- "Use a 169 GB/rank HiCache target pool at c12 and c16 while retaining ratio mode for lower concurrencies."
- "Isolate SGLang runtime caches per Slurm allocation to prevent concurrent sweep cells from sharing per-rank cache files."
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2808

- config-keys:
- kimik3-fp4-mi355x-vllm-agentic-mtp
scenario-type:
- agentic-coding
description:
- "Bump the MI355X K3 vLLM recipe to vLLM ROCm nightly 7c5dc571 and LMCache 0.5.5rc3."
- "Add a TP8/DCP8 spec-mtp DRAM-offload arm at concurrency 44/48/52."
- "Retune the LMCache tier (12288-token chunk, 8 GPU workers) and the no-spec decode profile (gpu-memory-utilization 0.9, 8192 batched tokens); switch the DCP attention backend to ROCM_AITER_MLA."
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2810