Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion benchmarks/single_node/agentic/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ currently either `none` or `dram`; when it is `dram`, the backend must be set:
```yaml
- dram-utilization: 0.80
search-space:
- { tp: 4, kv-offloading: dram, kv-offload-backend: { name: native }, conc-list: [16, 32] }
- { tp: 4, kv-offloading: dram, kv-offload-backend: { name: vllm-native }, conc-list: [16, 32] }
- { tp: 8, kv-offloading: none, conc-list: [16, 32] }
```

Expand Down
12 changes: 6 additions & 6 deletions benchmarks/single_node/agentic/dsv4_fp4_mi355x_vllm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ set -x
# MODEL, TP, CONC, KV_OFFLOADING, TOTAL_CPU_DRAM_GB, RESULT_DIR
#
# KV_OFFLOADING=dram requires one of these.
# KV_OFFLOAD_BACKEND=native.
# KV_OFFLOAD_BACKEND=vllm-native.
# KV_OFFLOAD_BACKEND=mooncake.
# KV_OFFLOAD_BACKEND=lmcache.
# KV_OFFLOAD_BACKEND=hicache.
Expand Down Expand Up @@ -102,16 +102,16 @@ OFFLOAD_ARGS=()

if agentic_kv_offload_enabled; then
case "${KV_OFFLOAD_BACKEND:-}" in
native)
require_agentic_kv_offload_backend native
vllm-native)
require_agentic_kv_offload_backend vllm-native
# ---- vLLM native config ----------------------------------------------------------
unset VLLM_USE_SIMPLE_KV_OFFLOAD
# MI355X nodes have ~2.7 TiB of host DRAM available for offload;
# reserve 2.5 TB for the offload pool (leaves ~200 GB headroom for
# worker RSS / page cache / slurm cgroup).
TOTAL_CPU_DRAM_PARTITION_GB="$((TOTAL_CPU_DRAM_GB / (8 / TP)))"
# Use vLLM's regular native KV-offload path (OffloadingConnector),
# NOT the SimpleCPUOffloadConnector. The "native" backend resolves to
# NOT the SimpleCPUOffloadConnector. The "vllm-native" backend resolves to
# OffloadingConnector by default; setting VLLM_USE_SIMPLE_KV_OFFLOAD=1
# would switch it to SimpleCPUOffloadConnector. We intentionally leave
# that env var UNSET here so the regular OffloadingConnector path is
Expand Down Expand Up @@ -277,7 +277,7 @@ EOF
git clone https://github.com/LMCache/LMCache.git
cd LMCache
# https://github.com/LMCache/LMCache/pull/3853
git checkout dev
git checkout 9229067cec0b3a63bb8a39368d101db7ac0bc3c1
pip install -r requirements/build.txt
pip install grpcio==1.78.0
CXX=hipcc BUILD_WITH_HIP=1 pip install -e . --no-build-isolation
Expand Down Expand Up @@ -345,7 +345,7 @@ EOF
)
;;
*)
echo "Error: unsupported KV_OFFLOAD_BACKEND '${KV_OFFLOAD_BACKEND:-}' (expected: native, mooncake, lmcache)" >&2
echo "Error: unsupported KV_OFFLOAD_BACKEND '${KV_OFFLOAD_BACKEND:-}' (expected: vllm-native, mooncake, lmcache)" >&2
exit 1
;;
esac
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/single_node/agentic/kimik2.5_fp4_b200.sh
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ if require_agentic_kv_offload_backend lmcache; then
{ set +x; } 2>/dev/null
unset VLLM_USE_SIMPLE_KV_OFFLOAD

agentic_pip_install --quiet --no-cache-dir lmcache
agentic_pip_install --quiet --no-cache-dir 'lmcache==0.5.1'
python3 -c "import lmcache.integration.vllm.lmcache_mp_connector" >/dev/null

# MP mode owns the configured CPU pool in the external LMCache
Expand Down
4 changes: 2 additions & 2 deletions benchmarks/single_node/agentic/kimik2.5_fp4_b300.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ set -x
# Required env vars:
# MODEL, TP, CONC, KV_OFFLOADING, TOTAL_CPU_DRAM_GB, RESULT_DIR
#
# KV_OFFLOADING=dram requires KV_OFFLOAD_BACKEND=native.
# KV_OFFLOADING=dram requires KV_OFFLOAD_BACKEND=vllm-simple.

source "$(dirname "$0")/../../benchmark_lib.sh"

Expand Down Expand Up @@ -42,7 +42,7 @@ mkdir -p "$RESULT_DIR"
OFFLOAD_ARGS=()
PREFIX_CACHE_ARGS=()

if require_agentic_kv_offload_backend native; then
if require_agentic_kv_offload_backend vllm-simple; then
export VLLM_USE_SIMPLE_KV_OFFLOAD=1
OFFLOAD_ARGS=(
--kv_offloading_backend native
Expand Down
6 changes: 3 additions & 3 deletions benchmarks/single_node/agentic/kimik2.5_fp4_mi355x.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ set -x
# Required env vars:
# MODEL, TP, CONC, KV_OFFLOADING, TOTAL_CPU_DRAM_GB, RESULT_DIR
#
# KV_OFFLOADING=dram requires KV_OFFLOAD_BACKEND=native.
# KV_OFFLOADING=dram requires KV_OFFLOAD_BACKEND=vllm-native.


source "$(dirname "$0")/../../benchmark_lib.sh"
Expand Down Expand Up @@ -64,10 +64,10 @@ mkdir -p "$RESULT_DIR"
OFFLOAD_ARGS=()
PREFIX_CACHE_ARGS=()

if require_agentic_kv_offload_backend native; then
if require_agentic_kv_offload_backend vllm-native; then
unset VLLM_USE_SIMPLE_KV_OFFLOAD
# Use vLLM's regular native KV-offload path (OffloadingConnector),
# NOT the SimpleCPUOffloadConnector. The "native" backend resolves to
# NOT the SimpleCPUOffloadConnector. The "vllm-native" backend resolves to
# OffloadingConnector by default; setting VLLM_USE_SIMPLE_KV_OFFLOAD=1
# would switch it to SimpleCPUOffloadConnector. We intentionally leave
# that env var UNSET here so the regular OffloadingConnector path is
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/single_node/agentic/kimik2.5_int4_b200.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ SERVER_LOG="$RESULT_DIR/server.log"
mkdir -p "$RESULT_DIR"

OFFLOAD_ARGS=""
if require_agentic_kv_offload_backend native; then
if require_agentic_kv_offload_backend vllm-simple; then
export VLLM_USE_SIMPLE_KV_OFFLOAD=1
OFFLOAD_ARGS="--kv_offloading_backend native --kv_offloading_size $TOTAL_CPU_DRAM_GB --disable-hybrid-kv-cache-manager"
fi
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/single_node/agentic/kimik2.5_int4_h100.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ SERVER_LOG="$RESULT_DIR/server.log"
mkdir -p "$RESULT_DIR"

OFFLOAD_ARGS=""
if require_agentic_kv_offload_backend native; then
if require_agentic_kv_offload_backend vllm-simple; then
export VLLM_USE_SIMPLE_KV_OFFLOAD=1
OFFLOAD_ARGS="--kv_offloading_backend native --kv_offloading_size $TOTAL_CPU_DRAM_GB --disable-hybrid-kv-cache-manager"
fi
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/single_node/agentic/kimik2.5_int4_h200.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ SERVER_LOG="$RESULT_DIR/server.log"
mkdir -p "$RESULT_DIR"

OFFLOAD_ARGS=""
if require_agentic_kv_offload_backend native; then
if require_agentic_kv_offload_backend vllm-simple; then
# Kimi K2.5 is pure TP (no DP-attn): single engine, world_size=TP.
# SimpleCPUOffloadConnector internally divides cpu_bytes_to_use by
# world_size, so pass the full TOTAL_CPU_DRAM_GB; TP-shared mmap
Expand Down
36 changes: 26 additions & 10 deletions configs/amd-master.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,7 @@ qwen3.5-fp8-mi355x-sglang-disagg:
runner: mi355x-disagg
precision: fp8
framework: sglang-disagg
router: { name: sglang-router, version: "0.3.2" }
kv-p2p-transfer: mori
multinode: true
disagg: true
Expand Down Expand Up @@ -483,6 +484,7 @@ qwen3.5-fp4-mi355x-sglang-disagg:
runner: mi355x-disagg
precision: fp4
framework: sglang-disagg
router: { name: sglang-router, version: "0.3.2" }
kv-p2p-transfer: mori
multinode: true
disagg: true
Expand Down Expand Up @@ -597,6 +599,7 @@ glm5-fp8-mi355x-sglang-disagg:
runner: mi355x-disagg
precision: fp8
framework: sglang-disagg
router: { name: sglang-router, version: "0.3.2" }
kv-p2p-transfer: mori
multinode: true
disagg: true
Expand Down Expand Up @@ -803,13 +806,13 @@ kimik2.5-fp4-mi355x-vllm-agentic:
# DRAM offload only above the KV cliff. Lower concurrencies fit
# entirely on-GPU, so paying the offload-path overhead there would
# just slow them down without measuring anything new.
- { tp: 8, kv-offloading: dram, kv-offload-backend: { name: native }, conc-list: [32, 40, 48, 56] }
- { tp: 8, kv-offloading: dram, kv-offload-backend: { name: vllm-native }, conc-list: [32, 40, 48, 56] }
# TP=4 probe: half-node layout doubles per-GPU weight footprint
# (~62 GB on MI355X's 288 GB HBM, plenty of headroom). Restrict to
# cliff-region concurrencies on both offload modes so we can directly
# compare TP=4 vs TP=8 at the same conc points.
- { tp: 4, kv-offloading: none, conc-list: [16, 24, 32, 40] }
- { tp: 4, kv-offloading: dram, kv-offload-backend: { name: native }, conc-list: [16, 24, 32, 40] }
- { tp: 4, kv-offloading: dram, kv-offload-backend: { name: vllm-native }, conc-list: [16, 24, 32, 40] }

kimik2.5-fp4-mi355x-atom:
image: rocm/atom:rocm7.2.4_ubuntu24.04_py3.12_pytorch_release_2.10.0_atom0.1.4_202607091539
Expand Down Expand Up @@ -876,6 +879,7 @@ dsr1-fp8-mi355x-sglang-disagg:
runner: mi355x-disagg
precision: fp8
framework: sglang-disagg
router: { name: sglang-router, version: "0.3.2" }
kv-p2p-transfer: mori
multinode: true
disagg: true
Expand Down Expand Up @@ -1031,6 +1035,7 @@ dsr1-fp8-mi355x-sglang-disagg-mtp:
runner: mi355x-disagg
precision: fp8
framework: sglang-disagg
router: { name: sglang-router, version: "0.3.2" }
kv-p2p-transfer: mori
multinode: true
disagg: true
Expand Down Expand Up @@ -1186,6 +1191,7 @@ kimik2.5-fp4-mi355x-vllm-disagg:
runner: mi355x-disagg
precision: fp4
framework: vllm-disagg
router: { name: vllm-router, version: "0.1.14" }
kv-p2p-transfer: moriio
multinode: true
disagg: true
Expand Down Expand Up @@ -1239,6 +1245,7 @@ dsr1-fp4-mi355x-sglang-disagg:
runner: mi355x-disagg
precision: fp4
framework: sglang-disagg
router: { name: sglang-router, version: "0.3.2" }
kv-p2p-transfer: mori
multinode: true
disagg: true
Expand Down Expand Up @@ -1468,6 +1475,7 @@ dsr1-fp4-mi355x-sglang-disagg-1k1k-mtp:
runner: mi355x-disagg
precision: fp4
framework: sglang-disagg
router: { name: sglang-router, version: "0.3.2" }
kv-p2p-transfer: mori
multinode: true
disagg: true
Expand Down Expand Up @@ -1579,6 +1587,7 @@ dsr1-fp4-mi355x-sglang-disagg-8k1k-mtp:
runner: mi355x-disagg
precision: fp4
framework: sglang-disagg
router: { name: sglang-router, version: "0.3.2" }
kv-p2p-transfer: mori
multinode: true
disagg: true
Expand Down Expand Up @@ -1748,6 +1757,7 @@ dsv4-fp4-mi355x-sglang-disagg:
runner: mi355x-disagg
precision: fp4
framework: sglang-disagg
router: { name: sglang-router, version: "0.3.2" }
kv-p2p-transfer: mori
multinode: true
disagg: true
Expand Down Expand Up @@ -2093,8 +2103,8 @@ dsv4-fp4-mi355x-vllm-agentic:
- dram-utilization: 0.60
search-space:
- { tp: 8, ep: 1, dp-attn: false, kv-offloading: none, conc-list: [1, 4, 8, 16, 32, 40, 48] }
- { tp: 8, ep: 1, dp-attn: true, kv-offloading: none, conc-list: [64, 72] }
- { tp: 8, ep: 1, dp-attn: false, kv-offloading: dram, kv-offload-backend: { name: lmcache }, conc-list: [32, 40, 48] }
- { tp: 8, ep: 1, dp-attn: true, kv-offloading: none, conc-list: [64, 72], router: { name: vllm-router, version: "0.1.14" } }
- { tp: 8, ep: 1, dp-attn: false, kv-offloading: dram, kv-offload-backend: { name: lmcache, version: "9229067cec0b3a63bb8a39368d101db7ac0bc3c1" }, conc-list: [32, 40, 48] }

# DSv4-Pro FP4 on MI355X via SGLang. Uses a rocm720 mi35x image built off the
# amd/deepseek_v4 branch in sgl-project/sglang; the SHA is encoded in the
Expand All @@ -2108,6 +2118,7 @@ dsr1-fp4-mi355x-sglang-disagg-mtp:
runner: mi355x-disagg
precision: fp4
framework: sglang-disagg
router: { name: sglang-router, version: "0.3.2" }
kv-p2p-transfer: mori
multinode: true
disagg: true
Expand Down Expand Up @@ -2359,6 +2370,7 @@ dsv4-fp4-mi355x-atom-disagg:
runner: mi355x
precision: fp4
framework: atom-disagg
router: { name: atomesh, version: "087b82d9c1f630e79149ba37e6213257ec9a76f8" }
kv-p2p-transfer: mooncake
multinode: true
disagg: true
Expand Down Expand Up @@ -2479,6 +2491,7 @@ minimaxm3-fp4-mi355x-vllm-disagg:
runner: mi355x-disagg
precision: fp4
framework: vllm-disagg
router: { name: vllm-router, version: "0.1.14" }
kv-p2p-transfer: moriio
multinode: true
disagg: true
Expand Down Expand Up @@ -2668,6 +2681,7 @@ minimaxm3-fp8-mi355x-atom-disagg:
runner: mi355x-disagg
precision: fp8
framework: atom-disagg
router: { name: atomesh, version: "04b120d3040e0dd1a6915e88a3a3c1f588e6684a" }
kv-p2p-transfer: mooncake
multinode: true
disagg: true
Expand Down Expand Up @@ -2739,6 +2753,7 @@ minimaxm3-fp4-mi355x-atom-disagg:
runner: mi355x-disagg
precision: fp4
framework: atom-disagg
router: { name: atomesh, version: "04b120d3040e0dd1a6915e88a3a3c1f588e6684a" }
kv-p2p-transfer: mooncake
multinode: true
disagg: true
Expand Down Expand Up @@ -2943,6 +2958,7 @@ minimaxm3-fp8-mi355x-vllm-disagg:
runner: mi355x-disagg
precision: fp8
framework: vllm-disagg
router: { name: vllm-router, version: "0.1.14" }
kv-p2p-transfer: moriio
multinode: true
disagg: true
Expand Down Expand Up @@ -3050,8 +3066,8 @@ minimaxm3-fp8-mi300x-vllm-agentic:
search-space:
- { tp: 8, kv-offloading: none, conc-list: [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 20] }
- { tp: 8, ep: 8, kv-offloading: none, conc-list: [2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 20] }
- { tp: 8, kv-offloading: dram, kv-offload-backend: { name: mooncake }, conc-list: [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 20] }
- { tp: 8, ep: 8, kv-offloading: dram, kv-offload-backend: { name: mooncake }, conc-list: [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 20] }
- { tp: 8, kv-offloading: dram, kv-offload-backend: { name: mooncake, version: "0.3.11.post1" }, conc-list: [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 20] }
- { tp: 8, ep: 8, kv-offloading: dram, kv-offload-backend: { name: mooncake, version: "0.3.11.post1" }, conc-list: [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 20] }

minimaxm3-fp8-mi325x-vllm-agentic:
image: vllm/vllm-openai-rocm:nightly-04c2a8deac44fdb1ca3e2b5ec3e6bf16f3f6a914
Expand All @@ -3074,7 +3090,7 @@ minimaxm3-fp8-mi325x-vllm-agentic:
- { tp: 4, ep: 4, kv-offloading: none, conc-list: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16] }
- { tp: 8, kv-offloading: none, conc-list: [1, 2, 4, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 32] }
- { tp: 8, ep: 8, kv-offloading: none, conc-list: [2, 4, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 32] }
- { tp: 8, ep: 8, dp-attn: true, kv-offloading: none, conc-list: [16, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80] }
- { tp: 4, ep: 4, kv-offloading: dram, kv-offload-backend: { name: native }, conc-list: [3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16] }
- { tp: 8, ep: 8, kv-offloading: dram, kv-offload-backend: { name: native }, conc-list: [10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 32] }
- { tp: 8, ep: 8, dp-attn: true, kv-offloading: dram, kv-offload-backend: { name: native }, conc-list: [24, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 96] }
- { tp: 8, ep: 8, dp-attn: true, kv-offloading: none, conc-list: [16, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80], router: { name: vllm-router, version: "0.1.14" } }
- { tp: 4, ep: 4, kv-offloading: dram, kv-offload-backend: { name: mooncake, version: "0.3.11.post1" }, conc-list: [3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16] }
- { tp: 8, ep: 8, kv-offloading: dram, kv-offload-backend: { name: mooncake, version: "0.3.11.post1" }, conc-list: [10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 32] }
- { tp: 8, ep: 8, dp-attn: true, kv-offloading: dram, kv-offload-backend: { name: mooncake, version: "0.3.11.post1" }, conc-list: [24, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 96], router: { name: vllm-router, version: "0.1.14" } }
Loading