From 71acdd405f13dc1c61a1d051801bd32cfe60ee9a Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 09:10:47 +0900 Subject: [PATCH 01/24] perf(agentx): refresh K3 MI355X vLLM recipe with DCP8 MTP arm Bump the kimik3-fp4-mi355x-vllm-agentic-mtp image to vLLM ROCm nightly 7c5dc571 and LMCache to 0.5.5rc3, and add a TP8/DCP8 spec-mtp DRAM-offload arm (conc 44/48/52). Retune the LMCache tier (chunk-size 12288, max-gpu-workers 8) and the no-spec decode profile (GMU 0.9, 8192 batched tokens), and switch the DCP attention backend to ROCM_AITER_MLA. Co-Authored-By: Claude Opus 4.6 --- .../agentic/kimik3_fp4_mi355x_mtp.sh | 18 +++++++++--------- configs/amd-master.yaml | 5 +++-- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh index a8f2c42c1c..95ada0bb38 100644 --- a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh +++ b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh @@ -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) @@ -151,7 +151,7 @@ case "${KV_OFFLOAD_BACKEND:-}" in # 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.5rc3" 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" \ @@ -205,12 +205,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 12288 --separate-object-groups --enable-extra-logging --extra-logging-interval 30 --max-cpu-workers 8 - --max-gpu-workers 1 + --max-gpu-workers 8 --eviction-policy LRU --supported-transfer-mode lmcache_driven --shm-name "" @@ -264,8 +264,8 @@ case "$CONC" in ;; *) 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 @@ -306,7 +306,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 @@ -352,4 +352,4 @@ if [ "${EVAL_ONLY}" = "true" ]; then else build_replay_cmd "$RESULT_DIR" run_agentic_replay_and_write_outputs "$RESULT_DIR" -fi +fi \ No newline at end of file diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index 0d380154a0..feae382240 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -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-7c5dc571cbd1064ecc8a9b1045637ff647aa22cb model: moonshotai/Kimi-K3 model-prefix: kimik3 runner: cluster:mi355x-amds @@ -637,7 +637,8 @@ kimik3-fp4-mi355x-vllm-agentic-mtp: - 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, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, 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.5rc3" }, 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 From c281dbece1fb8919e2204e273ed5cca49480b1c7 Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 09:11:31 +0900 Subject: [PATCH 02/24] docs(changelog): link K3 MI355X vLLM DCP8 MTP refresh PR Co-Authored-By: Claude Opus 4.6 --- perf-changelog.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 53a2ba7e75..e02c093848 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -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 From 7b934687b32e7dfe5ff1f5ac72f1385b7fb67ccf Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 09:13:10 +0900 Subject: [PATCH 03/24] style(agentx): add trailing newline to K3 MI355X benchmark script Co-Authored-By: Claude Opus 4.6 --- benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh index 95ada0bb38..4ba204c355 100644 --- a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh +++ b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh @@ -352,4 +352,4 @@ if [ "${EVAL_ONLY}" = "true" ]; then else build_replay_cmd "$RESULT_DIR" run_agentic_replay_and_write_outputs "$RESULT_DIR" -fi \ No newline at end of file +fi From db7732d3c7eda62e92adcc2f13c196677d91d3cb Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 10:03:20 +0900 Subject: [PATCH 04/24] perf(agentx): drop c52 from K3 MI355X DCP8 arm Co-Authored-By: Claude Opus 4.6 --- configs/amd-master.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index feae382240..6313ffbd97 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -638,7 +638,7 @@ kimik3-fp4-mi355x-vllm-agentic-mtp: 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.5rc3" }, 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.5rc3" }, conc-list: [44, 48, 52], spec-decoding: mtp } + - { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [44, 48], 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 From 0a32492dcff178adf5b49c6ab24afcd0d57ab242 Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 10:44:52 +0900 Subject: [PATCH 05/24] perf(agentx): gate K3 LMCache GPU workers on DCP; trim sweep to c14/c48 Set --max-gpu-workers to 8 only when DCP_SIZE>1 (else 1), and reduce the kimik3-fp4-mi355x-vllm-agentic-mtp search-space to a c14 (non-DCP) and c48 (DCP8) smoke test. Co-Authored-By: Claude Opus 4.6 --- .../single_node/agentic/kimik3_fp4_mi355x_mtp.sh | 10 +++++++++- configs/amd-master.yaml | 9 ++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh index 4ba204c355..5978b74122 100644 --- a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh +++ b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh @@ -197,6 +197,14 @@ 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. + if [ "${DCP_SIZE:-1}" -gt 1 ]; then + LMCACHE_MAX_GPU_WORKERS=8 + else + LMCACHE_MAX_GPU_WORKERS=1 + fi + LMCACHE_CMD=( lmcache server --host 127.0.0.1 @@ -210,7 +218,7 @@ case "${KV_OFFLOAD_BACKEND:-}" in --enable-extra-logging --extra-logging-interval 30 --max-cpu-workers 8 - --max-gpu-workers 8 + --max-gpu-workers "$LMCACHE_MAX_GPU_WORKERS" --eviction-policy LRU --supported-transfer-mode lmcache_driven --shm-name "" diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index 6313ffbd97..ee77661a66 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -636,9 +636,12 @@ 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.5rc3" }, 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.5rc3" }, conc-list: [44, 48], spec-decoding: mtp } + #- { 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.5rc3" }, 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.5rc3" }, conc-list: [44, 48], spec-decoding: mtp } + + - { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [14], spec-decoding: mtp } + - { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [48], 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 From 1701d427b46655842cca2e794aab7f32dc44af31 Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 11:10:26 +0900 Subject: [PATCH 06/24] perf(agentx): lower K3 c12/c14 GMU to 0.88; run c14-only smoke test Co-Authored-By: Claude Opus 4.6 --- benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh | 8 +++++++- configs/amd-master.yaml | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh index 5978b74122..e60a874102 100644 --- a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh +++ b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh @@ -264,12 +264,18 @@ case "$CONC" in GPU_MEM_UTIL=0.9 MAX_NUM_BATCHED_TOKENS=16384 ;; - 2|4|8|10|12|14) + 2|4|8) SYNTHETIC_ACCEPT_LEN=3.00 SPEC_NUM_TOKENS=3 GPU_MEM_UTIL=0.9 MAX_NUM_BATCHED_TOKENS=8192 ;; + 12|14) + SYNTHETIC_ACCEPT_LEN=3.00 + SPEC_NUM_TOKENS=3 + GPU_MEM_UTIL=0.88 + MAX_NUM_BATCHED_TOKENS=8192 + ;; *) SPEC_NUM_TOKENS=0 GPU_MEM_UTIL=0.9 diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index ee77661a66..7b661185ab 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -641,7 +641,7 @@ kimik3-fp4-mi355x-vllm-agentic-mtp: #- { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [44, 48], spec-decoding: mtp } - { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [14], spec-decoding: mtp } - - { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [48], spec-decoding: mtp } + #- { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [48], 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 From aefefb37cd75f180ec96a0eb87459b1cc4e081ec Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 11:30:11 +0900 Subject: [PATCH 07/24] perf(agentx): run K3 c12/c14 GMU 0.88 smoke test Co-Authored-By: Claude Opus 4.6 --- configs/amd-master.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index 7b661185ab..fd8058b606 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -640,7 +640,7 @@ kimik3-fp4-mi355x-vllm-agentic-mtp: #- { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, 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.5rc3" }, conc-list: [44, 48], spec-decoding: mtp } - - { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [14], spec-decoding: mtp } + - { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [12, 14], spec-decoding: mtp } #- { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [48], spec-decoding: mtp } # Kimi-K3 MXFP4 agentic-coding benchmark on MI355X via ATOM with DSpark From 5cebe65d23cd1e89e4e144828ca1a41e2adeac81 Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 12:28:04 +0900 Subject: [PATCH 08/24] perf(agentx): lower K3 c12/c14 GMU to 0.85 Co-Authored-By: Claude Opus 4.6 --- benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh index e60a874102..6211c674b1 100644 --- a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh +++ b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh @@ -273,7 +273,7 @@ case "$CONC" in 12|14) SYNTHETIC_ACCEPT_LEN=3.00 SPEC_NUM_TOKENS=3 - GPU_MEM_UTIL=0.88 + GPU_MEM_UTIL=0.85 MAX_NUM_BATCHED_TOKENS=8192 ;; *) From 1b2469300a9ed6b7a3378b2289814a5a9b0a3191 Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 12:53:44 +0900 Subject: [PATCH 09/24] perf(agentx): test K3 c14 GPU-resident (no KV offload), GMU 0.9 Co-Authored-By: Claude Opus 4.6 --- benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh | 4 ++-- configs/amd-master.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh index 6211c674b1..7a6483cb34 100644 --- a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh +++ b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh @@ -271,9 +271,9 @@ case "$CONC" in MAX_NUM_BATCHED_TOKENS=8192 ;; 12|14) - SYNTHETIC_ACCEPT_LEN=3.00 + SYNTHETIC_ACCEPT_LEN=0 SPEC_NUM_TOKENS=3 - GPU_MEM_UTIL=0.85 + GPU_MEM_UTIL=0.9 MAX_NUM_BATCHED_TOKENS=8192 ;; *) diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index fd8058b606..63e825c289 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -640,7 +640,7 @@ kimik3-fp4-mi355x-vllm-agentic-mtp: #- { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, 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.5rc3" }, conc-list: [44, 48], spec-decoding: mtp } - - { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [12, 14], spec-decoding: mtp } + - { tp: 8, ep: 1, kv-offloading: none, conc-list: [14], spec-decoding: mtp } #- { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [48], spec-decoding: mtp } # Kimi-K3 MXFP4 agentic-coding benchmark on MI355X via ATOM with DSpark From ffc4d74e0ebe74104e956ee591577173ce56a6a3 Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 13:25:53 +0900 Subject: [PATCH 10/24] perf(agentx): bump K3 image to nightly-73029d42; c14 no-spec GPU-resident Co-Authored-By: Claude Opus 4.6 --- benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh | 2 +- configs/amd-master.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh index 7a6483cb34..0f96fe01af 100644 --- a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh +++ b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh @@ -272,7 +272,7 @@ case "$CONC" in ;; 12|14) SYNTHETIC_ACCEPT_LEN=0 - SPEC_NUM_TOKENS=3 + SPEC_NUM_TOKENS=0 GPU_MEM_UTIL=0.9 MAX_NUM_BATCHED_TOKENS=8192 ;; diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index 63e825c289..32438c89cb 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -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-7c5dc571cbd1064ecc8a9b1045637ff647aa22cb + image: vllm/vllm-openai-rocm:nightly-73029d42441321b631779db3475031f5ec26dd6c model: moonshotai/Kimi-K3 model-prefix: kimik3 runner: cluster:mi355x-amds From 99d06715f060dd8699dfd0b523391dcb5fa229d5 Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 13:51:25 +0900 Subject: [PATCH 11/24] perf(agentx): run K3 c48 DCP8 LMCache smoke test on nightly-73029d42 Co-Authored-By: Claude Opus 4.6 --- configs/amd-master.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index 32438c89cb..87ee30eefb 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -640,8 +640,8 @@ kimik3-fp4-mi355x-vllm-agentic-mtp: #- { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, 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.5rc3" }, conc-list: [44, 48], spec-decoding: mtp } - - { tp: 8, ep: 1, kv-offloading: none, conc-list: [14], spec-decoding: mtp } - #- { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [48], spec-decoding: mtp } + #- { tp: 8, ep: 1, kv-offloading: none, conc-list: [14], spec-decoding: mtp } + - { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [48], 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 From 34d93c9c451e27636b911eaf2dec6c1715f8cdc1 Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 13:55:38 +0900 Subject: [PATCH 12/24] perf(agentx): run K3 c14 GPU-resident with MTP spec on nightly-73029d42 Co-Authored-By: Claude Opus 4.6 --- benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh | 4 ++-- configs/amd-master.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh index 0f96fe01af..8e95e4c5e3 100644 --- a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh +++ b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh @@ -271,8 +271,8 @@ case "$CONC" in MAX_NUM_BATCHED_TOKENS=8192 ;; 12|14) - SYNTHETIC_ACCEPT_LEN=0 - SPEC_NUM_TOKENS=0 + SYNTHETIC_ACCEPT_LEN=3.00 + SPEC_NUM_TOKENS=3 GPU_MEM_UTIL=0.9 MAX_NUM_BATCHED_TOKENS=8192 ;; diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index 87ee30eefb..32438c89cb 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -640,8 +640,8 @@ kimik3-fp4-mi355x-vllm-agentic-mtp: #- { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, 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.5rc3" }, conc-list: [44, 48], spec-decoding: mtp } - #- { tp: 8, ep: 1, kv-offloading: none, conc-list: [14], spec-decoding: mtp } - - { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [48], spec-decoding: mtp } + - { tp: 8, ep: 1, kv-offloading: none, conc-list: [14], spec-decoding: mtp } + #- { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [48], 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 From 883d6e37d57c38d6cfd312b2e11ffbe57c1661d6 Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 14:18:10 +0900 Subject: [PATCH 13/24] perf(agentx): drop K3 high-conc max-num-batched-tokens to 4096 (OOM fix) Widen prefill activation headroom for the c48 DCP8 arm, which repeatedly OOM'd in the attention-residual forward at 8192 batched tokens under GMU 0.9. Co-Authored-By: Claude Opus 4.6 --- benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh index 8e95e4c5e3..cee20214a1 100644 --- a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh +++ b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh @@ -279,7 +279,7 @@ case "$CONC" in *) SPEC_NUM_TOKENS=0 GPU_MEM_UTIL=0.9 - MAX_NUM_BATCHED_TOKENS=8192 + MAX_NUM_BATCHED_TOKENS=4096 ;; esac From 60acfb363fdc6f563830463a61a2dc575fcfbc31 Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 14:21:57 +0900 Subject: [PATCH 14/24] perf(agentx): activate K3 c48 DCP8 arm for OOM-fix validation Co-Authored-By: Claude Opus 4.6 --- configs/amd-master.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index 32438c89cb..87ee30eefb 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -640,8 +640,8 @@ kimik3-fp4-mi355x-vllm-agentic-mtp: #- { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, 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.5rc3" }, conc-list: [44, 48], spec-decoding: mtp } - - { tp: 8, ep: 1, kv-offloading: none, conc-list: [14], spec-decoding: mtp } - #- { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [48], spec-decoding: mtp } + #- { tp: 8, ep: 1, kv-offloading: none, conc-list: [14], spec-decoding: mtp } + - { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [48], 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 From 47745bf424afa9e92bbea6ae0ca35466a0cb38ce Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 14:32:39 +0900 Subject: [PATCH 15/24] perf(agentx): gate K3 LMCache chunk-size on DCP; pin dev60 wheel; run c14 Set --chunk-size 12288 only when DCP_SIZE>1 (else 3072), install the 0.5.5.dev60+rocm7.2 wheel from the 0.5.5rc3 release index, and activate the c14 LMCache-DRAM arm. Co-Authored-By: Claude Opus 4.6 --- .../single_node/agentic/kimik3_fp4_mi355x_mtp.sh | 11 ++++++++--- configs/amd-master.yaml | 4 ++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh index cee20214a1..4e54866e91 100644 --- a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh +++ b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh @@ -151,8 +151,9 @@ case "${KV_OFFLOAD_BACKEND:-}" in # 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.5rc3" - LMCACHE_ROCM_INDEX="https://github.com/LMCache/LMCache/releases/expanded_assets/nightly-rocm" + LMCACHE_VERSION="0.5.5.dev60+rocm7.2" + LMCACHE_RELEASE="0.5.5rc3" + LMCACHE_ROCM_INDEX="https://github.com/LMCache/LMCache/releases/expanded_assets/${LMCACHE_RELEASE}-rocm" agentic_pip_install --quiet --no-cache-dir --no-deps \ "sortedcontainers==2.4.0" \ "opentelemetry-exporter-prometheus==0.61b0" \ @@ -199,10 +200,14 @@ case "${KV_OFFLOAD_BACKEND:-}" in # 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 LMCACHE_CMD=( @@ -213,7 +218,7 @@ case "${KV_OFFLOAD_BACKEND:-}" in --http-port "$LMCACHE_HTTP_PORT" --l1-size-gb "$LMCACHE_L1_SIZE_GB" --l1-init-size-gb 10 - --chunk-size 12288 + --chunk-size "$LMCACHE_CHUNK_SIZE" --separate-object-groups --enable-extra-logging --extra-logging-interval 30 diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index 87ee30eefb..b90a16769f 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -640,8 +640,8 @@ kimik3-fp4-mi355x-vllm-agentic-mtp: #- { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, 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.5rc3" }, conc-list: [44, 48], spec-decoding: mtp } - #- { tp: 8, ep: 1, kv-offloading: none, conc-list: [14], spec-decoding: mtp } - - { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [48], spec-decoding: mtp } + - { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [14], spec-decoding: mtp } + #- { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [48], 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 From f48e07a28ed14db9e28af38b9177963189bebd10 Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 16:00:46 +0900 Subject: [PATCH 16/24] perf(agentx): gate K3 LMCache wheel on DCP; run c14 on dev60 Use 0.5.5rc3 when DCP_SIZE>1 and 0.5.5.dev60+rocm7.2 otherwise, and pin the active c14 arm to dev60. Co-Authored-By: Claude Opus 4.6 --- .../single_node/agentic/kimik3_fp4_mi355x_mtp.sh | 10 +++++++--- configs/amd-master.yaml | 3 +-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh index 4e54866e91..16be48c0f4 100644 --- a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh +++ b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh @@ -151,9 +151,13 @@ case "${KV_OFFLOAD_BACKEND:-}" in # 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_RELEASE="0.5.5rc3" - LMCACHE_ROCM_INDEX="https://github.com/LMCache/LMCache/releases/expanded_assets/${LMCACHE_RELEASE}-rocm" + # The DCP arm needs the 0.5.5rc3 wheel; the non-DCP arm pins dev60. + if [ "${DCP_SIZE:-1}" -gt 1 ]; then + LMCACHE_VERSION="0.5.5rc3" + else + LMCACHE_VERSION="0.5.5.dev60+rocm7.2" + fi + 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" \ diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index b90a16769f..9a6e36c459 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -640,8 +640,7 @@ kimik3-fp4-mi355x-vllm-agentic-mtp: #- { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, 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.5rc3" }, conc-list: [44, 48], spec-decoding: mtp } - - { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [14], spec-decoding: mtp } - #- { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [48], spec-decoding: mtp } + - { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5.dev60+rocm7.2" }, conc-list: [14], 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 From ed613b6c3c5cce4b784f1129995a623ce3dd8ba1 Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 16:34:09 +0900 Subject: [PATCH 17/24] fix(agentx): define LMCACHE_RELEASE for the K3 index URL The index was templated on ${LMCACHE_RELEASE} but the var was never set, which aborts the lmcache arm under set -u. Pin it to the nightly-rocm asset page that hosts both wheels. Co-Authored-By: Claude Opus 4.6 --- benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh index 16be48c0f4..ed4edf549a 100644 --- a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh +++ b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh @@ -157,7 +157,9 @@ case "${KV_OFFLOAD_BACKEND:-}" in else LMCACHE_VERSION="0.5.5.dev60+rocm7.2" fi - LMCACHE_ROCM_INDEX="https://github.com/LMCache/LMCache/releases/expanded_assets/nightly-rocm" + # Both wheels are published on the rolling nightly-rocm asset page. + LMCACHE_RELEASE="nightly" + LMCACHE_ROCM_INDEX="https://github.com/LMCache/LMCache/releases/expanded_assets/${LMCACHE_RELEASE}-rocm" agentic_pip_install --quiet --no-cache-dir --no-deps \ "sortedcontainers==2.4.0" \ "opentelemetry-exporter-prometheus==0.61b0" \ From bbce1d25c7672bec371d8e68f5e28d0d7dcd8c9a Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 16:37:50 +0900 Subject: [PATCH 18/24] perf(agentx): pin K3 LMCache to v0.5.5rc4 from the release asset page Co-Authored-By: Claude Opus 4.6 --- .../single_node/agentic/kimik3_fp4_mi355x_mtp.sh | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh index ed4edf549a..3d3070adab 100644 --- a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh +++ b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh @@ -149,17 +149,10 @@ 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. - # The DCP arm needs the 0.5.5rc3 wheel; the non-DCP arm pins dev60. - if [ "${DCP_SIZE:-1}" -gt 1 ]; then - LMCACHE_VERSION="0.5.5rc3" - else - LMCACHE_VERSION="0.5.5.dev60+rocm7.2" - fi - # Both wheels are published on the rolling nightly-rocm asset page. - LMCACHE_RELEASE="nightly" + LMCACHE_VERSION=v0.5.5rc4 + LMCACHE_RELEASE=v0.5.5rc4+rocm7.2 LMCACHE_ROCM_INDEX="https://github.com/LMCache/LMCache/releases/expanded_assets/${LMCACHE_RELEASE}-rocm" + agentic_pip_install --quiet --no-cache-dir --no-deps \ "sortedcontainers==2.4.0" \ "opentelemetry-exporter-prometheus==0.61b0" \ From 0a3b5728e167750176d15c12efceb9cbe9dffd80 Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 19:54:48 +0900 Subject: [PATCH 19/24] perf(agentx): pin K3 LMCache to dev89; run c14 (dcp1) and c48 (dcp8) Co-Authored-By: Claude Opus 4.6 --- benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh | 5 ++--- configs/amd-master.yaml | 7 ++++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh index 3d3070adab..141d635a07 100644 --- a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh +++ b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh @@ -149,9 +149,8 @@ case "${KV_OFFLOAD_BACKEND:-}" in lmcache) require_agentic_kv_offload_backend "$KV_OFFLOAD_BACKEND" - LMCACHE_VERSION=v0.5.5rc4 - LMCACHE_RELEASE=v0.5.5rc4+rocm7.2 - LMCACHE_ROCM_INDEX="https://github.com/LMCache/LMCache/releases/expanded_assets/${LMCACHE_RELEASE}-rocm" + 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" \ diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index 9a6e36c459..0a52ebd4e1 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -636,11 +636,12 @@ 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.5rc3" }, 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.5rc3" }, 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.5rc3" }, conc-list: [44, 48], spec-decoding: mtp } - - { tp: 8, ep: 1, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5.dev60+rocm7.2" }, conc-list: [14], 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: [14], spec-decoding: mtp } + - { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [48], 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 From d5e7a1c57f4b5d557def988079aa4606ff789d64 Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 21:47:03 +0900 Subject: [PATCH 20/24] perf(agentx): revert K3 image to 7c5dc571; c48 label to dev89 Co-Authored-By: Claude Opus 4.6 --- configs/amd-master.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index 0a52ebd4e1..c8140d817a 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -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-73029d42441321b631779db3475031f5ec26dd6c + image: vllm/vllm-openai-rocm:nightly-7c5dc571cbd1064ecc8a9b1045637ff647aa22cb model: moonshotai/Kimi-K3 model-prefix: kimik3 runner: cluster:mi355x-amds @@ -641,7 +641,7 @@ kimik3-fp4-mi355x-vllm-agentic-mtp: #- { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [44, 48], 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: [14], spec-decoding: mtp } - - { tp: 8, ep: 1, dcp-size: 8, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "0.5.5rc3" }, conc-list: [48], 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: [48], 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 From 05c3f3f62fbdb95b00ebde76c8067ab91b3fa74c Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 22:41:29 +0900 Subject: [PATCH 21/24] perf(agentx): bump K3 image to 73029d42; run full conc sweep on dev89 Co-Authored-By: Claude Opus 4.6 --- .../single_node/agentic/kimik3_fp4_mi355x_mtp.sh | 9 ++++----- configs/amd-master.yaml | 11 ++++------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh index 141d635a07..774dd0b278 100644 --- a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh +++ b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh @@ -267,22 +267,21 @@ case "$CONC" in GPU_MEM_UTIL=0.9 MAX_NUM_BATCHED_TOKENS=16384 ;; - 2|4|8) + 4|8|10|12|14) SYNTHETIC_ACCEPT_LEN=3.00 SPEC_NUM_TOKENS=3 GPU_MEM_UTIL=0.9 MAX_NUM_BATCHED_TOKENS=8192 ;; - 12|14) - SYNTHETIC_ACCEPT_LEN=3.00 - SPEC_NUM_TOKENS=3 + 44|48) + SPEC_NUM_TOKENS=0 GPU_MEM_UTIL=0.9 MAX_NUM_BATCHED_TOKENS=8192 ;; *) SPEC_NUM_TOKENS=0 GPU_MEM_UTIL=0.9 - MAX_NUM_BATCHED_TOKENS=4096 + MAX_NUM_BATCHED_TOKENS=8192 ;; esac diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index c8140d817a..af3fe7a820 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -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-7c5dc571cbd1064ecc8a9b1045637ff647aa22cb + image: vllm/vllm-openai-rocm:nightly-73029d42441321b631779db3475031f5ec26dd6c model: moonshotai/Kimi-K3 model-prefix: kimik3 runner: cluster:mi355x-amds @@ -636,12 +636,9 @@ kimik3-fp4-mi355x-vllm-agentic-mtp: agentic-coding: - dram-utilization: 0.60 search-space: - #- { 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.5rc3" }, 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.5rc3" }, conc-list: [44, 48], 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: [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: [48], 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], 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 From 932280a154bf065f5799b5db1445d28e2d08f57b Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 23:13:35 +0900 Subject: [PATCH 22/24] perf(agentx): add conc 52 to K3 dcp8 sweep Co-Authored-By: Claude Opus 4.6 --- benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh | 2 +- configs/amd-master.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh index 774dd0b278..f0416e4af0 100644 --- a/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh +++ b/benchmarks/single_node/agentic/kimik3_fp4_mi355x_mtp.sh @@ -273,7 +273,7 @@ case "$CONC" in GPU_MEM_UTIL=0.9 MAX_NUM_BATCHED_TOKENS=8192 ;; - 44|48) + 44|48|52) SPEC_NUM_TOKENS=0 GPU_MEM_UTIL=0.9 MAX_NUM_BATCHED_TOKENS=8192 diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index af3fe7a820..6ab04839d8 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -638,7 +638,7 @@ kimik3-fp4-mi355x-vllm-agentic-mtp: search-space: - { 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], 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 From d9f68559b1a393fbbdbdd347427a14237b77b9ec Mon Sep 17 00:00:00 2001 From: seungrokj Date: Thu, 3 Sep 2026 23:31:15 +0900 Subject: [PATCH 23/24] perf(agentx): revert K3 image to 7c5dc571 Co-Authored-By: Claude Opus 4.6 --- configs/amd-master.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index 6ab04839d8..0269ddfa05 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -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-73029d42441321b631779db3475031f5ec26dd6c + image: vllm/vllm-openai-rocm:nightly-7c5dc571cbd1064ecc8a9b1045637ff647aa22cb model: moonshotai/Kimi-K3 model-prefix: kimik3 runner: cluster:mi355x-amds From cbf74f5ab34d28448660ed37da7fc1d7a5a5d171 Mon Sep 17 00:00:00 2001 From: seungrokj Date: Fri, 4 Sep 2026 00:35:44 +0900 Subject: [PATCH 24/24] fix(ci): pin pydantic>=2 for perf-changelog validation The validator imports field_validator/model_validator/ConfigDict (pydantic v2), but the unpinned pip install was resolving pydantic 1.10.26, crashing check-changelog on ImportError before validating anything. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/run-sweep.yml | 2 +- .github/workflows/test-changelog-gate.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run-sweep.yml b/.github/workflows/run-sweep.yml index c2d1445b24..9be5c651b6 100644 --- a/.github/workflows/run-sweep.yml +++ b/.github/workflows/run-sweep.yml @@ -109,7 +109,7 @@ jobs: ALL_EVALS: ${{ contains(github.event.pull_request.labels.*.name, 'all-evals') }} EVALS_ONLY: ${{ contains(github.event.pull_request.labels.*.name, 'evals-only') }} run: | - pip install pydantic pyyaml + pip install "pydantic>=2" pyyaml CMD=( python3 utils/validate_perf_changelog.py --changelog-file perf-changelog.yaml diff --git a/.github/workflows/test-changelog-gate.yml b/.github/workflows/test-changelog-gate.yml index c1f11f34f8..65bd1eebc5 100644 --- a/.github/workflows/test-changelog-gate.yml +++ b/.github/workflows/test-changelog-gate.yml @@ -68,7 +68,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - python -m pip install pytest pydantic pyyaml tabulate + python -m pip install pytest "pydantic>=2" pyyaml tabulate - name: Run validator, reuse, and gating tests run: |