Skip to content

Commit fa6023d

Browse files
hyukjleeclaude
andcommitted
[AMD][AgentX] kimik2.7: best-config sweep — AITER-MLA + none[4,8]/lmcache[16]
Adopt the best-performing config from the sweep analysis: - Attention: keep AITER-MLA ON (VLLM_ROCM_USE_AITER_MLA=1) + --block-size=1. AITER-MLA is ~3x faster than TRITON_MLA on the agentic trace; deliberately chosen for throughput despite AMD's 16/128-head guidance (revisit if accuracy validation shows the 64-head path is wrong). - Record sweep narrowed to the best cell per regime: none [4,8] (GPU-only viable at low conc, peaks ~26.7 tok/s/GPU at c8), LMCache [16] (crossover where DRAM offload overtakes none). Dropped Mooncake and lmcache c32/48 (no headroom over this envelope) and the experimental -tune/-tune-mc keys. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 1092b8c commit fa6023d

2 files changed

Lines changed: 15 additions & 54 deletions

File tree

benchmarks/single_node/agentic/kimik2.7_fp4_mi355x.sh

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,13 @@ if [[ "$version" == "" || ${version:-0} -lt 177 ]]; then
5353
fi
5454

5555
export VLLM_ROCM_USE_AITER=1
56-
# amd/Kimi-K2.7-Code-MXFP4 has 64 KV heads; the ROCm AITER-MLA kernel only
57-
# supports 16 or 128 heads, so it MUST be disabled for this model. With AITER-MLA
58-
# off, ROCm serves MLA via TRITON_MLA, which does NOT support block_size=1 -- so
59-
# this recipe passes no --block-size and lets vLLM pick a TRITON_MLA-valid
60-
# default (matches AMD's reference serve command for this model). The old
61-
# --block-size=1 only existed to force the (now-disabled) AITER-MLA path.
62-
export VLLM_ROCM_USE_AITER_MLA=0
56+
# This model has 64 KV heads. AMD flags AITER-MLA as officially supporting only
57+
# 16/128 heads, but empirically it runs this model and (forced via --block-size=1
58+
# below) is the ONLY ROCm MLA backend that accepts block_size=1 and is ~3x faster
59+
# than TRITON_MLA on the agentic trace (best-perf config, run 29337493492).
60+
# Deliberately keeping AITER-MLA ON for throughput; revisit if accuracy validation
61+
# shows the 64-head path is numerically wrong (then AITER_MLA=0 + drop block-size).
62+
export VLLM_ROCM_USE_AITER_MLA=1
6363
export VLLM_ROCM_QUICK_REDUCE_QUANTIZATION=INT4
6464
# Avoid intermittent symm_mem all-reduce rendezvous hang at engine init on
6565
# MI35x nodes (see KIMIK27_CONC64_LMCACHE_RUNBOOK error #4).
@@ -344,6 +344,7 @@ VLLM_CMD=(
344344
"${PARALLEL_ARGS[@]}"
345345
"${EP_ARGS[@]}"
346346
--gpu-memory-utilization 0.90
347+
--block-size=1
347348
--trust-remote-code
348349
--max-num-seqs "$CONC"
349350
--mm-encoder-tp-mode data

configs/amd-master.yaml

Lines changed: 7 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -558,57 +558,17 @@ kimik2.7-fp4-mi355x-vllm-agentic:
558558
multinode: false
559559
scenarios:
560560
agentic-coding:
561-
# TP8, 3600s. Compares three KV tiers on the agentic trace. At TP8 the
562-
# GPU-only (none) path collapses under load (KV-capacity thrash), so it is
563-
# only swept at low conc [4,8] where it is viable; the dram offload backends
564-
# (LMCache, Mooncake) carry the high-conc [16,32,48] range where they hold
565-
# throughput by keeping the GPU KV pool from thrashing.
561+
# TP8, 3600s. Best-config sweep on the agentic trace, one KV tier per regime:
562+
# GPU-only (none) is only viable at low conc [4,8] (peaks ~26.7 tok/s/GPU at
563+
# c8, then collapses at the KV-capacity wall); LMCache DRAM offload carries the
564+
# high-conc side and holds throughput where none thrashes, so it is swept at
565+
# c16 (the crossover where it overtakes none). Mooncake and c32/48 dropped:
566+
# they added no throughput headroom over this best-config envelope.
566567
- dram-utilization: 0.80
567568
duration: 3600
568569
search-space:
569570
- { tp: 8, kv-offloading: none, conc-list: [4, 8] }
570-
- { tp: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "aaf7c0d3" }, conc-list: [16, 32, 48] }
571-
- { tp: 8, kv-offloading: dram, kv-offload-backend: { name: mooncake, version: "source-main" }, conc-list: [16, 32, 48] }
572-
573-
574-
# Perf-tuning experiment key (same recipe as the record sweep above, via
575-
# model-prefix kimik2.7). Goal: get a throughput curve that scales with
576-
# concurrency instead of collapsing. Compares pure-TP8 (current, capacity-capped)
577-
# vs DEP (data-parallel attention TP1xDP8 + expert parallelism), both with LMCache.
578-
# Dispatched at 900s via e2e-tests duration override to verify the perf delta
579-
# before committing a full 3600s run. Mooncake is split into a separate key
580-
# (-tune-mc) so a fast Mooncake bringup failure can't fail-fast-cancel these cells.
581-
kimik2.7-fp4-mi355x-vllm-agentic-tune:
582-
image: vllm/vllm-openai-rocm:v0.24.0
583-
model: amd/Kimi-K2.7-Code-MXFP4
584-
model-prefix: kimik2.7
585-
runner: cluster:mi355x-amds
586-
precision: fp4
587-
framework: vllm
588-
multinode: false
589-
scenarios:
590-
agentic-coding:
591-
- dram-utilization: 0.80
592-
duration: 900
593-
search-space:
594-
- { tp: 8, dp-attn: false, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "aaf7c0d3" }, conc-list: [16, 32, 48] }
595-
- { tp: 8, dp-attn: true, ep: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "aaf7c0d3" }, conc-list: [16, 32, 48] }
596-
597-
# Mooncake-under-DEP, isolated so its failure can't cancel the LMCache scaling run.
598-
kimik2.7-fp4-mi355x-vllm-agentic-tune-mc:
599-
image: vllm/vllm-openai-rocm:v0.24.0
600-
model: amd/Kimi-K2.7-Code-MXFP4
601-
model-prefix: kimik2.7
602-
runner: cluster:mi355x-amds
603-
precision: fp4
604-
framework: vllm
605-
multinode: false
606-
scenarios:
607-
agentic-coding:
608-
- dram-utilization: 0.80
609-
duration: 900
610-
search-space:
611-
- { tp: 8, dp-attn: true, ep: 8, kv-offloading: dram, kv-offload-backend: { name: mooncake, version: "source-main" }, conc-list: [16, 32, 48] }
571+
- { tp: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "aaf7c0d3" }, conc-list: [16] }
612572

613573

614574
kimik2.5-fp4-mi355x-atom:

0 commit comments

Comments
 (0)