From d5cd452a5aecd3f4b0e95355e464cf844d1cf0bc Mon Sep 17 00:00:00 2001 From: Giovanni Guasti Date: Tue, 4 Aug 2026 15:19:26 +0200 Subject: [PATCH 01/15] [AMD] [WIP] [AGENTX] Adding GLM5.2 MI355X Support - Agentx Signed-off-by: Giovanni Guasti --- .../agentic/glm5.2_fp4_mi355x_sglang_mtp.sh | 252 ++++++++++++++++++ configs/amd-master.yaml | 18 ++ perf-changelog.yaml | 7 + 3 files changed, 277 insertions(+) create mode 100644 benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh diff --git a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh new file mode 100644 index 0000000000..6a4e642f94 --- /dev/null +++ b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh @@ -0,0 +1,252 @@ +#!/usr/bin/env bash +set -eo pipefail +set -x + +source "$(dirname "$0")/../../benchmark_lib.sh" + +check_env_vars MODEL TP CONC KV_OFFLOADING TOTAL_CPU_DRAM_GB RESULT_DIR DURATION EP_SIZE DP_ATTENTION + +if [[ -n "$SLURM_JOB_ID" ]]; then + echo "JOB $SLURM_JOB_ID running on $SLURMD_NODENAME" +fi + +# ROCR/HIP visibility under slurm cgroups. +if [ -n "$ROCR_VISIBLE_DEVICES" ]; then + export HIP_VISIBLE_DEVICES="$ROCR_VISIBLE_DEVICES" +fi + + +if [[ -n "$MODEL_PATH" ]]; then + if [[ ! -d "$MODEL_PATH" || -z "$(ls -A "$MODEL_PATH" 2>/dev/null)" ]]; then + hf download "$MODEL" --local-dir "$MODEL_PATH" + fi +else + hf download "$MODEL" + export MODEL_PATH="$MODEL" +fi +rocm-smi || true +amd-smi || true + + +# A server killed on this node minutes earlier (previous job, crashed run) +# can still be draining its ~1.4 TB of HBM: KFD reclaim takes minutes, and +# booting into a half-drained node fails RCCL init with HIP 'unhandled cuda +# error' / 'invalid argument' (observed as the mooncake-c64 CI failure). +# Wait for the GPUs to come back before launching. +# Per-GPU threshold: idle nodes hold a small driver/firmware VRAM baseline +# (observed up to ~4%/GPU, node-dependent), while a draining or occupied +# GPU sits at 50-90%. Require every GPU <= 10%. +GPU_CLEAN=false +for i in $(seq 1 90); do + VRAM_MAX=$(rocm-smi --showmemuse 2>/dev/null | grep -oE "GPU Memory Allocated \(VRAM%\): [0-9]+" | awk '{if ($NF > m) m = $NF} END {print m+0}') + if [ "${VRAM_MAX:-0}" -le 10 ]; then echo "GPUs clean (vram%max=$VRAM_MAX after $((i*10))s)"; GPU_CLEAN=true; break; fi + echo "waiting for prior-job GPU memory reclaim: vram%max=$VRAM_MAX"; sleep 10 +done +[ "$GPU_CLEAN" = "true" ] || { echo "Error: GPUs still draining prior job's memory after 15min" >&2; exit 1; } + +resolve_trace_source +install_agentic_deps + +SERVER_LOG="$RESULT_DIR/server.log" +ROUTER_LOG="$RESULT_DIR/router.log" +mkdir -p "$RESULT_DIR" + +export PYTHONNOUSERSITE=1 +# Agentic warmup dispatches hundreds of large prompts at once; allow up to +# 15 minutes of TCP progress before AIPerf declares a connection dead. +export AIPERF_HTTP_TCP_USER_TIMEOUT=900000 +# AIPerf pins one pooled keep-alive connection per session (client-side +# keep-alive 300s) while uvicorn's default SGLANG_TIMEOUT_KEEP_ALIVE is 5s; +# inter-turn idle gaps can reuse a socket exactly as the server closes it. +# Outlast the client pool so the race cannot occur. +export SGLANG_TIMEOUT_KEEP_ALIVE=900 +# The DSA indexer's top-k v2 kernel (default since v0.5.14) is JIT-compiled +# from CUDA-only source (cooperative_groups.h) and cannot build for gfx950; +# v1 dispatches to the precompiled HIP op in sgl-kernel (upstream MI355X CI +# runs DSA models the same way). +export SGLANG_OPT_USE_TOPK_V2=false + +# HiCache L2 + Mooncake L3 on every point (sizing rationale in the header). +# Per-arm L2 ratio, both measured on-node. TP arm (182.7 GB/rank device +# pool): the working set oversubscribes the device pool ~3x at conc 32, so +# the host tier is what carries the radix hits - ratio 1.5 (~2.9 TB pinned +# incl. sidecars) validates through the conc-24 long-context storm. The +# DP-attention arm (159.4 GB/rank) only runs at conc >= 32, where each DP +# rank's ~8 sessions nearly fit in its own device pool (~1.5-1.6M of 1.7M +# tokens at conc 64) and the host tier just absorbs overflow - ratio 1.5 +# boots but the host OOM killer takes the server mid-storm at conc 48, so +# it runs ratio 0.5 (~1.2 TB pinned, ~1.8 TB of load headroom) at +# negligible hit-rate cost. +CACHE_ARGS=() +if require_agentic_kv_offload_backend mooncake; then + if [ "$DP_ATTENTION" = "true" ]; then + HICACHE_RATIO="${HICACHE_RATIO:-0.5}" + else + HICACHE_RATIO="${HICACHE_RATIO:-1.5}" + fi + HICACHE_WRITE_POLICY="${HICACHE_WRITE_POLICY:-write_through}" + HICACHE_IO_BACKEND="${HICACHE_IO_BACKEND:-direct}" + HICACHE_MEM_LAYOUT="${HICACHE_MEM_LAYOUT:-page_first_direct}" + L3_PER_RANK_GB="${L3_PER_RANK_GB:-40}" + python3 -c "from mooncake.store import MooncakeDistributedStore" >/dev/null + MOONCAKE_MASTER_PORT=$((PORT + 12000)) + MOONCAKE_MASTER_LOG="$RESULT_DIR/mooncake_master.log" + MOONCAKE_CONFIG_PATH="$RESULT_DIR/mooncake_config.json" + cat > "$MOONCAKE_CONFIG_PATH" < "$MOONCAKE_MASTER_LOG" 2>&1 & + MOONCAKE_MASTER_PID=$! + sleep 2 + kill -0 "$MOONCAKE_MASTER_PID" + echo "HiCache+Mooncake: ratio=$HICACHE_RATIO, l3_per_rank=${L3_PER_RANK_GB} GB, dram_budget=${TOTAL_CPU_DRAM_GB} GB" + CACHE_ARGS=( + --enable-hierarchical-cache + --hicache-ratio "$HICACHE_RATIO" + --hicache-size 0 + --hicache-write-policy "$HICACHE_WRITE_POLICY" + --hicache-io-backend "$HICACHE_IO_BACKEND" + --hicache-mem-layout "$HICACHE_MEM_LAYOUT" + --hicache-storage-backend mooncake + --hicache-storage-prefetch-policy wait_complete + ) +fi + +# Arm selection. TP arm keeps the FP8 sibling's cookbook batch-shaping +# bands. +# +# NOTE: the DP-attention path below is currently DORMANT (no dp-attn arms +# in amd-master.yaml): DSA + dp-attention hangs a collective under +# long-context prefill on ROCm v0.5.14 (watchdog kills the scheduler with +# zero completions; reproduced with and without HiCache, with and without +# the DSv4 DP collective envs; short prompts are fine). Re-enable the +# config arm once upstream fixes the DSA DP prefill path. +# +# When active, the DP-attention (DEP) arm fronts the DP ranks with sglang-router +# using consistent hashing on the AIPerf correlation id so multi-turn +# sessions stay on the DP rank holding their radix/hicache prefix, and +# widens chunked-prefill (whole-engine, /dp ranks) like the B300 sibling. +USE_SGLANG_ROUTER=false +SGLANG_BACKEND_PORT="$PORT" +PARALLEL_ARGS=(--tp "$TP" --ep-size "$EP_SIZE") +MEM_FRACTION_STATIC=0.85 +if [ "$DP_ATTENTION" = "true" ]; then + USE_SGLANG_ROUTER=true + export AIPERF_HTTP_X_SMG_ROUTING_KEY_FROM_CORRELATION_ID=true + SGLANG_BACKEND_PORT=$((PORT + 1)) + SGLANG_ROUTER_METRICS_PORT=$((PORT + 10000)) + SGLANG_ROUTER_CMD=(python3 -m sglang_router.launch_router) + PARALLEL_ARGS+=(--dp "$TP" --enable-dp-attention) + CHUNKED_PREFILL_SIZE=32768 + export AGENTIC_WARMUP_GRACE_PERIOD=3600 + # Swap the DP gather collectives to gatherv/reduce-scatter on ROCm + # (dsv4_fp4_mi355x_sglang.sh precedent - the only green DP-attention + # config on this cluster/image): with the defaults the DSA DP path + # hangs a collective under long-context prefill load until the + # watchdog kills the scheduler (0/96 storm completions, twice). + export SGLANG_DP_USE_GATHERV=1 + export SGLANG_DP_USE_REDUCE_SCATTER=1 + export GPU_MAX_HW_QUEUES=5 +elif [ "$CONC" -le 16 ]; then + # A full 131072-token prefill chunk needs ~7 GiB/rank of activation + # headroom on top of the static pool; pair it with mem-fraction 0.80 + # like the FP8 sibling's low-conc band (0.85 OOMs the device mid-replay: + # "Tried to allocate 6.86 GiB ... 5.15 GiB is free", run 29751563205). + CHUNKED_PREFILL_SIZE=131072 + MEM_FRACTION_STATIC=0.80 +else + CHUNKED_PREFILL_SIZE=32768 + export AGENTIC_WARMUP_GRACE_PERIOD=3600 +fi +MAX_RUNNING_REQUESTS=$((2 * CONC)) +[ "$MAX_RUNNING_REQUESTS" -gt 256 ] && MAX_RUNNING_REQUESTS=256 +CUDA_GRAPH_MAX_BS=$MAX_RUNNING_REQUESTS + +SGLANG_CMD=( + python3 -m sglang.launch_server + --model-path "$MODEL_PATH" + --served-model-name "$MODEL" + --host 0.0.0.0 + --port "$SGLANG_BACKEND_PORT" + --trust-remote-code + "${PARALLEL_ARGS[@]}" + --dsa-prefill-backend tilelang + --dsa-decode-backend tilelang + # GLM-5.2 emits the GLM-4.7-style tool-call format; glm47 is required for + # structured message.tool_calls (SWE-bench agentic evals die without it). + # The glm45 reasoning parser keeps hybrid thinking in reasoning_content. + --tool-call-parser glm47 + --reasoning-parser glm45 + --chunked-prefill-size "$CHUNKED_PREFILL_SIZE" + --mem-fraction-static "$MEM_FRACTION_STATIC" + --max-running-requests "$MAX_RUNNING_REQUESTS" + --cuda-graph-max-bs "$CUDA_GRAPH_MAX_BS" + --speculative-algorithm EAGLE \ + --speculative-num-steps 5 \ + --speculative-eagle-topk 1 \ + --speculative-num-draft-tokens 6 \ + "${CACHE_ARGS[@]}" + --watchdog-timeout 1800 + --enable-metrics +) + +printf '%q ' "${SGLANG_CMD[@]}" | tee "$RESULT_DIR/sglang_command.txt" +printf '\n' | tee -a "$RESULT_DIR/sglang_command.txt" + +echo "Starting SGLang server for MI355X..." +"${SGLANG_CMD[@]}" > "$SERVER_LOG" 2>&1 & +SERVER_PID=$! +echo "Server PID: $SERVER_PID" + +wait_for_server_ready --port "$SGLANG_BACKEND_PORT" --server-log "$SERVER_LOG" --server-pid "$SERVER_PID" + +if [ "$USE_SGLANG_ROUTER" = "true" ]; then + echo "Starting SGLang router on port $PORT for $TP DP ranks..." + "${SGLANG_ROUTER_CMD[@]}" \ + --worker-urls "http://localhost:$SGLANG_BACKEND_PORT" \ + --policy consistent_hashing \ + --request-id-headers x-correlation-id \ + --dp-aware \ + --host 0.0.0.0 \ + --port "$PORT" \ + --prometheus-host 127.0.0.1 \ + --prometheus-port "$SGLANG_ROUTER_METRICS_PORT" \ + --connect-timeout-secs 900 \ + --request-timeout-secs 14400 \ + --disable-health-check \ + --disable-retries > "$ROUTER_LOG" 2>&1 & + ROUTER_PID=$! + echo "Router PID: $ROUTER_PID" + wait_for_server_ready --port "$PORT" --server-log "$ROUTER_LOG" --server-pid "$ROUTER_PID" +fi + +if [ "${EVAL_ONLY}" = "true" ]; then + # GLM-5.2's chat template defaults to reasoning_effort=Max when the + # client passes no chat_template_kwargs (mini-swe-agent doesn't), and the + # heavy thinking burns the default 75-step budget before submission. + # Double the step budget for this recipe; others keep the shared default. + export SWEBENCH_AGENT_STEP_LIMIT=150 + # Pin eval agent parallelism to the proven-green level: workers default + # to CONC, and at 64 concurrent Modal sandboxes the cluster's egress + # collapses (18k "Cannot connect to *.modal.host" errors crippled the + # trajectories in run 29764760177) while 32 ran clean. The serving + # config is unchanged - only the agent's session fan-out is capped. + export SWEBENCH_AGENT_WORKERS="${SWEBENCH_AGENT_WORKERS:-32}" + run_eval --port "$PORT" +else + build_replay_cmd "$RESULT_DIR" + REPLAY_CMD+=" --server-metrics http://localhost:$SGLANG_BACKEND_PORT/metrics" + run_agentic_replay_and_write_outputs "$RESULT_DIR" +fi \ No newline at end of file diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index 0d46afe2e1..45739a3d4e 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -2361,3 +2361,21 @@ dsv4-fp8-mi325x-vllm-mtp: # is 55.8%. conc128 passed cleanly on the memory-tightest SKU (MI300X); # cap 8k1k MTP at 128 (normal holds 256, 1k1k holds 512). - { tp: 8, conc-start: 4, conc-end: 128, spec-decoding: mtp } + +# GLM-5.2 FP4 agentic-coding benchmark on MI355X via SGLang with MTP speculative +# decoding. TP=4 EP=4 with KV offloading to DRAM (hicache backend) to support +# long agentic context windows. Concurrency sweep [1, 2, 4, 8, 10]. +glm5.2-fp4-mi355x-sglang-agentic-mtp: + image: lmsysorg/sglang-rocm:v0.5.16-rocm720-mi35x-20260728 + model: amd/GLM-5.2-MXFP4 + model-prefix: glm5.2 + runner: cluster:mi355x-amds + precision: fp4 + framework: sglang + multinode: false + scenarios: + agentic-coding: + - dram-utilization: 0.8 + search-space: + - { tp: 4, ep: 4, kv-offloading: dram, kv-offload-backend: { name: hicache }, conc-list: [1, 2, 4, 8, 10], spec-decoding: mtp } + diff --git a/perf-changelog.yaml b/perf-changelog.yaml index b5aa7a3857..823195b4c7 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -5425,3 +5425,10 @@ description: - "Extend the search space to include the TP2EP1 configuration for fixed seq len 8k1k" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2446 + +- config-keys: + - glm5.2-fp4-mi355x-sglang-agentic-mtp + description: + - "Add GLM-5.2 FP4 SGLANG Single Node Agentic Support" + - "Image: lmsysorg/sglang-rocm:v0.5.16-rocm720-mi35x-20260728" + pr-link: TO-BE-ADDED From b7e7b895f2b0a97f7c5dc9aeac691b5716cc36a9 Mon Sep 17 00:00:00 2001 From: Giovanni Guasti Date: Tue, 4 Aug 2026 16:06:18 +0200 Subject: [PATCH 02/15] [AMD] [WIP] [AGENTX] Adding GLM5.2 MI355X Support - Agentx Signed-off-by: Giovanni Guasti --- perf-changelog.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 823195b4c7..d7139ec2f5 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -5431,4 +5431,4 @@ description: - "Add GLM-5.2 FP4 SGLANG Single Node Agentic Support" - "Image: lmsysorg/sglang-rocm:v0.5.16-rocm720-mi35x-20260728" - pr-link: TO-BE-ADDED + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2463 From ab95e49b730fcdbb37b4ab3e4eaaf9e5476d14b9 Mon Sep 17 00:00:00 2001 From: Giovanni Guasti Date: Tue, 4 Aug 2026 16:27:51 +0200 Subject: [PATCH 03/15] [AMD] [WIP] [AGENTX] Adding GLM5.2 MI355X Support - Agentx Signed-off-by: Giovanni Guasti --- perf-changelog.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf-changelog.yaml b/perf-changelog.yaml index d7139ec2f5..823195b4c7 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -5431,4 +5431,4 @@ description: - "Add GLM-5.2 FP4 SGLANG Single Node Agentic Support" - "Image: lmsysorg/sglang-rocm:v0.5.16-rocm720-mi35x-20260728" - pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2463 + pr-link: TO-BE-ADDED From 8bf03a2844b8f375e7cd7d3414724c8098b569b6 Mon Sep 17 00:00:00 2001 From: Giovanni Guasti Date: Tue, 4 Aug 2026 16:31:37 +0200 Subject: [PATCH 04/15] chore: update pr-link for glm5.2-fp4-mi355x-sglang-agentic-mtp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 中文:更新 glm5.2-fp4-mi355x-sglang-agentic-mtp 配置的 pr-link 至 PR #2488 --- perf-changelog.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 823195b4c7..2b197680c2 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -5431,4 +5431,4 @@ description: - "Add GLM-5.2 FP4 SGLANG Single Node Agentic Support" - "Image: lmsysorg/sglang-rocm:v0.5.16-rocm720-mi35x-20260728" - pr-link: TO-BE-ADDED + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2488 From a11fcf2fa3c25bb4815415df3c727401f0a4d33a Mon Sep 17 00:00:00 2001 From: ajith-sirra-amd <122240613+ajith-sirra-amd@users.noreply.github.com> Date: Wed, 5 Aug 2026 12:34:00 +0530 Subject: [PATCH 05/15] [AMD] [WIP] [AGENTX] GLM 5.2 - Update glm5.2_fp4_mi355x_sglang_mtp.sh --- .../single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh index 6a4e642f94..993bfc7b3c 100644 --- a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh +++ b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh @@ -4,6 +4,8 @@ set -x source "$(dirname "$0")/../../benchmark_lib.sh" +export EVAL_FRAMEWORK="lm-eval" + check_env_vars MODEL TP CONC KV_OFFLOADING TOTAL_CPU_DRAM_GB RESULT_DIR DURATION EP_SIZE DP_ATTENTION if [[ -n "$SLURM_JOB_ID" ]]; then @@ -232,6 +234,11 @@ if [ "$USE_SGLANG_ROUTER" = "true" ]; then wait_for_server_ready --port "$PORT" --server-log "$ROUTER_LOG" --server-pid "$ROUTER_PID" fi +if [ "${#METRICS_ARGS[@]}" -gt 0 ]; then + capture_cache_metrics + trap capture_cache_metrics EXIT +fi + if [ "${EVAL_ONLY}" = "true" ]; then # GLM-5.2's chat template defaults to reasoning_effort=Max when the # client passes no chat_template_kwargs (mini-swe-agent doesn't), and the @@ -249,4 +256,4 @@ else build_replay_cmd "$RESULT_DIR" REPLAY_CMD+=" --server-metrics http://localhost:$SGLANG_BACKEND_PORT/metrics" run_agentic_replay_and_write_outputs "$RESULT_DIR" -fi \ No newline at end of file +fi From 6fa806ba4cea3e09731596597602384a19d98f8c Mon Sep 17 00:00:00 2001 From: ajith-sirra-amd <122240613+ajith-sirra-amd@users.noreply.github.com> Date: Wed, 5 Aug 2026 12:40:38 +0530 Subject: [PATCH 06/15] [AMD] [WIP] [AGENTX] GLM 5.2 - Update perf-changelog.yaml --- perf-changelog.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 2cfe348bdd..dbc8c9a340 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -5456,4 +5456,3 @@ - "Add GLM-5.2 FP4 SGLANG Single Node Agentic Support" - "Image: lmsysorg/sglang-rocm:v0.5.16-rocm720-mi35x-20260728" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2488 - \ No newline at end of file From 194f975834649b71cd4e61dc9b2e9d04bf67a1db Mon Sep 17 00:00:00 2001 From: ajith-sirra-amd <122240613+ajith-sirra-amd@users.noreply.github.com> Date: Wed, 5 Aug 2026 13:15:24 +0530 Subject: [PATCH 07/15] [AMD] [WIP] [AGENTX] GLM 5.2 - Update glm5.2_fp4_mi355x_sglang_mtp.sh --- .../agentic/glm5.2_fp4_mi355x_sglang_mtp.sh | 46 ------------------- 1 file changed, 46 deletions(-) diff --git a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh index 993bfc7b3c..e76aab99e7 100644 --- a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh +++ b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh @@ -29,7 +29,6 @@ fi rocm-smi || true amd-smi || true - # A server killed on this node minutes earlier (previous job, crashed run) # can still be draining its ~1.4 TB of HBM: KFD reclaim takes minutes, and # booting into a half-drained node fails RCCL init with HIP 'unhandled cuda @@ -80,51 +79,6 @@ export SGLANG_OPT_USE_TOPK_V2=false # it runs ratio 0.5 (~1.2 TB pinned, ~1.8 TB of load headroom) at # negligible hit-rate cost. CACHE_ARGS=() -if require_agentic_kv_offload_backend mooncake; then - if [ "$DP_ATTENTION" = "true" ]; then - HICACHE_RATIO="${HICACHE_RATIO:-0.5}" - else - HICACHE_RATIO="${HICACHE_RATIO:-1.5}" - fi - HICACHE_WRITE_POLICY="${HICACHE_WRITE_POLICY:-write_through}" - HICACHE_IO_BACKEND="${HICACHE_IO_BACKEND:-direct}" - HICACHE_MEM_LAYOUT="${HICACHE_MEM_LAYOUT:-page_first_direct}" - L3_PER_RANK_GB="${L3_PER_RANK_GB:-40}" - python3 -c "from mooncake.store import MooncakeDistributedStore" >/dev/null - MOONCAKE_MASTER_PORT=$((PORT + 12000)) - MOONCAKE_MASTER_LOG="$RESULT_DIR/mooncake_master.log" - MOONCAKE_CONFIG_PATH="$RESULT_DIR/mooncake_config.json" - cat > "$MOONCAKE_CONFIG_PATH" < "$MOONCAKE_MASTER_LOG" 2>&1 & - MOONCAKE_MASTER_PID=$! - sleep 2 - kill -0 "$MOONCAKE_MASTER_PID" - echo "HiCache+Mooncake: ratio=$HICACHE_RATIO, l3_per_rank=${L3_PER_RANK_GB} GB, dram_budget=${TOTAL_CPU_DRAM_GB} GB" - CACHE_ARGS=( - --enable-hierarchical-cache - --hicache-ratio "$HICACHE_RATIO" - --hicache-size 0 - --hicache-write-policy "$HICACHE_WRITE_POLICY" - --hicache-io-backend "$HICACHE_IO_BACKEND" - --hicache-mem-layout "$HICACHE_MEM_LAYOUT" - --hicache-storage-backend mooncake - --hicache-storage-prefetch-policy wait_complete - ) -fi # Arm selection. TP arm keeps the FP8 sibling's cookbook batch-shaping # bands. From 0175c275f5d3a208cb44a862582783418197e451 Mon Sep 17 00:00:00 2001 From: Giovanni Guasti Date: Wed, 5 Aug 2026 10:14:11 +0200 Subject: [PATCH 08/15] fix(glm5.2-fp4-mi355x-sglang-mtp): remove trailing backslashes from SGLANG_CMD array MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Backslashes inside bash arrays are treated as literal characters, causing SGLang to receive arguments like 'EAGLE \' instead of 'EAGLE', which results in 'unrecognized arguments' errors. 中文:修复 SGLANG_CMD 数组中多余的行继续符(反斜杠),避免 SGLang 将其作为字面参数解析导致启动失败 --- .../single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh index e76aab99e7..5198c2797c 100644 --- a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh +++ b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh @@ -149,10 +149,10 @@ SGLANG_CMD=( --mem-fraction-static "$MEM_FRACTION_STATIC" --max-running-requests "$MAX_RUNNING_REQUESTS" --cuda-graph-max-bs "$CUDA_GRAPH_MAX_BS" - --speculative-algorithm EAGLE \ - --speculative-num-steps 5 \ - --speculative-eagle-topk 1 \ - --speculative-num-draft-tokens 6 \ + --speculative-algorithm EAGLE + --speculative-num-steps 5 + --speculative-eagle-topk 1 + --speculative-num-draft-tokens 6 "${CACHE_ARGS[@]}" --watchdog-timeout 1800 --enable-metrics From 6d65f91579cb5451e4efab0f98e590718203a9ce Mon Sep 17 00:00:00 2001 From: Giovanni Guasti Date: Wed, 5 Aug 2026 11:13:13 +0200 Subject: [PATCH 09/15] fix(glm5.2-fp4-mi355x-sglang-mtp): increase watchdog-timeout to 3600s MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MTP draft-token forward passes under long-context agentic load block the SGLang scheduler long enough to trip the 1800s watchdog, killing the server mid-warmup. Matches the value used by multi-node AMD disagg recipes. 中文:将 watchdog-timeout 从 1800s 增加至 3600s,避免 MTP 投机解码在长上下文推理负载下触发 SGLang 调度器看门狗超时导致服务崩溃 --- benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh index 5198c2797c..a4d2b3515f 100644 --- a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh +++ b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh @@ -154,7 +154,7 @@ SGLANG_CMD=( --speculative-eagle-topk 1 --speculative-num-draft-tokens 6 "${CACHE_ARGS[@]}" - --watchdog-timeout 1800 + --watchdog-timeout 3600 --enable-metrics ) From 95dd7450dda16b0961da97f061a188a91390d694 Mon Sep 17 00:00:00 2001 From: ajith-sirra-amd <122240613+ajith-sirra-amd@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:11:28 +0530 Subject: [PATCH 10/15] [AMD] [WIP] [AGENTX] GLM 5.2 - Update glm5.2_fp4_mi355x_sglang_mtp.sh --- .../agentic/glm5.2_fp4_mi355x_sglang_mtp.sh | 151 ++++++++++++------ 1 file changed, 102 insertions(+), 49 deletions(-) diff --git a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh index a4d2b3515f..8106332b1e 100644 --- a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh +++ b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh @@ -1,23 +1,23 @@ #!/usr/bin/env bash set -eo pipefail set -x - + source "$(dirname "$0")/../../benchmark_lib.sh" -export EVAL_FRAMEWORK="lm-eval" - + export EVAL_FRAMEWORK="lm-eval" + check_env_vars MODEL TP CONC KV_OFFLOADING TOTAL_CPU_DRAM_GB RESULT_DIR DURATION EP_SIZE DP_ATTENTION - + if [[ -n "$SLURM_JOB_ID" ]]; then echo "JOB $SLURM_JOB_ID running on $SLURMD_NODENAME" fi - + # ROCR/HIP visibility under slurm cgroups. if [ -n "$ROCR_VISIBLE_DEVICES" ]; then export HIP_VISIBLE_DEVICES="$ROCR_VISIBLE_DEVICES" fi - - + + if [[ -n "$MODEL_PATH" ]]; then if [[ ! -d "$MODEL_PATH" || -z "$(ls -A "$MODEL_PATH" 2>/dev/null)" ]]; then hf download "$MODEL" --local-dir "$MODEL_PATH" @@ -28,7 +28,7 @@ else fi rocm-smi || true amd-smi || true - + # A server killed on this node minutes earlier (previous job, crashed run) # can still be draining its ~1.4 TB of HBM: KFD reclaim takes minutes, and # booting into a half-drained node fails RCCL init with HIP 'unhandled cuda @@ -44,14 +44,14 @@ for i in $(seq 1 90); do echo "waiting for prior-job GPU memory reclaim: vram%max=$VRAM_MAX"; sleep 10 done [ "$GPU_CLEAN" = "true" ] || { echo "Error: GPUs still draining prior job's memory after 15min" >&2; exit 1; } - + resolve_trace_source install_agentic_deps - + SERVER_LOG="$RESULT_DIR/server.log" ROUTER_LOG="$RESULT_DIR/router.log" mkdir -p "$RESULT_DIR" - + export PYTHONNOUSERSITE=1 # Agentic warmup dispatches hundreds of large prompts at once; allow up to # 15 minutes of TCP progress before AIPerf declares a connection dead. @@ -66,20 +66,88 @@ export SGLANG_TIMEOUT_KEEP_ALIVE=900 # v1 dispatches to the precompiled HIP op in sgl-kernel (upstream MI355X CI # runs DSA models the same way). export SGLANG_OPT_USE_TOPK_V2=false - -# HiCache L2 + Mooncake L3 on every point (sizing rationale in the header). -# Per-arm L2 ratio, both measured on-node. TP arm (182.7 GB/rank device -# pool): the working set oversubscribes the device pool ~3x at conc 32, so -# the host tier is what carries the radix hits - ratio 1.5 (~2.9 TB pinned -# incl. sidecars) validates through the conc-24 long-context storm. The -# DP-attention arm (159.4 GB/rank) only runs at conc >= 32, where each DP -# rank's ~8 sessions nearly fit in its own device pool (~1.5-1.6M of 1.7M -# tokens at conc 64) and the host tier just absorbs overflow - ratio 1.5 -# boots but the host OOM killer takes the server mid-storm at conc 48, so -# it runs ratio 0.5 (~1.2 TB pinned, ~1.8 TB of load headroom) at -# negligible hit-rate cost. + +# HiCache L2 (host DRAM), optionally extended with Mooncake L3. +# KV_OFFLOADING=dram requires KV_OFFLOAD_BACKEND=hicache or mooncake. +# +# Per-arm L2 ratio (sizing rationale below) applies to both backends unless +# overridden via HICACHE_RATIO. TP arm (182.7 GB/rank device pool): the +# working set oversubscribes the device pool ~3x at conc 32, so the host +# tier is what carries the radix hits - ratio 1.5 (~2.9 TB pinned incl. +# sidecars) validates through the conc-24 long-context storm for the +# mooncake arm. The DP-attention arm (159.4 GB/rank) only runs at conc >= +# 32, where each DP rank's ~8 sessions nearly fit in its own device pool +# (~1.5-1.6M of 1.7M tokens at conc 64) and the host tier just absorbs +# overflow - ratio 1.5 boots but the host OOM killer takes the server +# mid-storm at conc 48, so it runs ratio 0.5 (~1.2 TB pinned, ~1.8 TB of +# load headroom) at negligible hit-rate cost. The hicache-only arm has no +# L3 to fall back on, so these ratios are unvalidated there - override with +# HICACHE_RATIO if the host OOMs or hit-rate is poor. CACHE_ARGS=() - +if agentic_kv_offload_enabled; then + if [ "$DP_ATTENTION" = "true" ]; then + HICACHE_RATIO="${HICACHE_RATIO:-0.5}" + else + HICACHE_RATIO="${HICACHE_RATIO:-1.5}" + fi + HICACHE_WRITE_POLICY="${HICACHE_WRITE_POLICY:-write_through}" + HICACHE_IO_BACKEND="${HICACHE_IO_BACKEND:-direct}" + HICACHE_MEM_LAYOUT="${HICACHE_MEM_LAYOUT:-page_first_direct}" + case "$KV_OFFLOAD_BACKEND" in + hicache) + echo "HiCache (GPU+host DRAM only): ratio=$HICACHE_RATIO, write_policy=$HICACHE_WRITE_POLICY, io_backend=$HICACHE_IO_BACKEND, mem_layout=$HICACHE_MEM_LAYOUT" + CACHE_ARGS=( + --enable-hierarchical-cache + --hicache-ratio "$HICACHE_RATIO" + --hicache-write-policy "$HICACHE_WRITE_POLICY" + --hicache-io-backend "$HICACHE_IO_BACKEND" + --hicache-mem-layout "$HICACHE_MEM_LAYOUT" + ) + ;; + mooncake) + L3_PER_RANK_GB="${L3_PER_RANK_GB:-40}" + python3 -c "from mooncake.store import MooncakeDistributedStore" >/dev/null + MOONCAKE_MASTER_PORT=$((PORT + 12000)) + MOONCAKE_MASTER_LOG="$RESULT_DIR/mooncake_master.log" + MOONCAKE_CONFIG_PATH="$RESULT_DIR/mooncake_config.json" + cat > "$MOONCAKE_CONFIG_PATH" < "$MOONCAKE_MASTER_LOG" 2>&1 & + MOONCAKE_MASTER_PID=$! + sleep 2 + kill -0 "$MOONCAKE_MASTER_PID" + echo "HiCache+Mooncake: ratio=$HICACHE_RATIO, l3_per_rank=${L3_PER_RANK_GB} GB, dram_budget=${TOTAL_CPU_DRAM_GB} GB" + CACHE_ARGS=( + --enable-hierarchical-cache + --hicache-ratio "$HICACHE_RATIO" + --hicache-size 0 + --hicache-write-policy "$HICACHE_WRITE_POLICY" + --hicache-io-backend "$HICACHE_IO_BACKEND" + --hicache-mem-layout "$HICACHE_MEM_LAYOUT" + --hicache-storage-backend mooncake + --hicache-storage-prefetch-policy wait_complete + ) + ;; + *) + echo "Error: unsupported KV_OFFLOAD_BACKEND '$KV_OFFLOAD_BACKEND' (expected: hicache or mooncake)" >&2 + exit 1 + ;; + esac +fi + # Arm selection. TP arm keeps the FP8 sibling's cookbook batch-shaping # bands. # @@ -121,15 +189,15 @@ elif [ "$CONC" -le 16 ]; then # like the FP8 sibling's low-conc band (0.85 OOMs the device mid-replay: # "Tried to allocate 6.86 GiB ... 5.15 GiB is free", run 29751563205). CHUNKED_PREFILL_SIZE=131072 - MEM_FRACTION_STATIC=0.80 + MEM_FRACTION_STATIC=0.85 else CHUNKED_PREFILL_SIZE=32768 export AGENTIC_WARMUP_GRACE_PERIOD=3600 fi -MAX_RUNNING_REQUESTS=$((2 * CONC)) +MAX_RUNNING_REQUESTS=$((1 * CONC)) [ "$MAX_RUNNING_REQUESTS" -gt 256 ] && MAX_RUNNING_REQUESTS=256 CUDA_GRAPH_MAX_BS=$MAX_RUNNING_REQUESTS - + SGLANG_CMD=( python3 -m sglang.launch_server --model-path "$MODEL_PATH" @@ -138,6 +206,7 @@ SGLANG_CMD=( --port "$SGLANG_BACKEND_PORT" --trust-remote-code "${PARALLEL_ARGS[@]}" + --kv-cache-dtype fp8_e4m3 --dsa-prefill-backend tilelang --dsa-decode-backend tilelang # GLM-5.2 emits the GLM-4.7-style tool-call format; glm47 is required for @@ -154,20 +223,20 @@ SGLANG_CMD=( --speculative-eagle-topk 1 --speculative-num-draft-tokens 6 "${CACHE_ARGS[@]}" - --watchdog-timeout 3600 + --watchdog-timeout 1800 --enable-metrics ) - + printf '%q ' "${SGLANG_CMD[@]}" | tee "$RESULT_DIR/sglang_command.txt" printf '\n' | tee -a "$RESULT_DIR/sglang_command.txt" - + echo "Starting SGLang server for MI355X..." "${SGLANG_CMD[@]}" > "$SERVER_LOG" 2>&1 & SERVER_PID=$! echo "Server PID: $SERVER_PID" - + wait_for_server_ready --port "$SGLANG_BACKEND_PORT" --server-log "$SERVER_LOG" --server-pid "$SERVER_PID" - + if [ "$USE_SGLANG_ROUTER" = "true" ]; then echo "Starting SGLang router on port $PORT for $TP DP ranks..." "${SGLANG_ROUTER_CMD[@]}" \ @@ -187,24 +256,8 @@ if [ "$USE_SGLANG_ROUTER" = "true" ]; then echo "Router PID: $ROUTER_PID" wait_for_server_ready --port "$PORT" --server-log "$ROUTER_LOG" --server-pid "$ROUTER_PID" fi - -if [ "${#METRICS_ARGS[@]}" -gt 0 ]; then - capture_cache_metrics - trap capture_cache_metrics EXIT -fi - + if [ "${EVAL_ONLY}" = "true" ]; then - # GLM-5.2's chat template defaults to reasoning_effort=Max when the - # client passes no chat_template_kwargs (mini-swe-agent doesn't), and the - # heavy thinking burns the default 75-step budget before submission. - # Double the step budget for this recipe; others keep the shared default. - export SWEBENCH_AGENT_STEP_LIMIT=150 - # Pin eval agent parallelism to the proven-green level: workers default - # to CONC, and at 64 concurrent Modal sandboxes the cluster's egress - # collapses (18k "Cannot connect to *.modal.host" errors crippled the - # trajectories in run 29764760177) while 32 ran clean. The serving - # config is unchanged - only the agent's session fan-out is capped. - export SWEBENCH_AGENT_WORKERS="${SWEBENCH_AGENT_WORKERS:-32}" run_eval --port "$PORT" else build_replay_cmd "$RESULT_DIR" From 6eca9be001b10b304b86d83963e862e24e54a98c Mon Sep 17 00:00:00 2001 From: Giovanni Guasti Date: Wed, 5 Aug 2026 12:06:11 +0200 Subject: [PATCH 11/15] =?UTF-8?q?fix(glm5.2-fp4-mi355x-sglang-agentic-mtp)?= =?UTF-8?q?:=20set=20mem-fraction-static=200.80=20for=20conc<=3D16=20/=20?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=BD=8E=E5=B9=B6=E5=8F=91=E5=9C=BA=E6=99=AF?= =?UTF-8?q?=20mem-fraction-static=20=E5=8F=82=E6=95=B0=E4=B8=BA=200.80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 0.85 OOMs the device mid-replay on 131072-token prefill chunks (observed: "Tried to allocate 6.86 GiB ... 5.15 GiB is free", run 29751563205). The comment already documented 0.80 as the correct value; the assignment was wrong. Co-Authored-By: Claude Sonnet 4.6 --- benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh index 8106332b1e..014719415c 100644 --- a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh +++ b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh @@ -189,7 +189,7 @@ elif [ "$CONC" -le 16 ]; then # like the FP8 sibling's low-conc band (0.85 OOMs the device mid-replay: # "Tried to allocate 6.86 GiB ... 5.15 GiB is free", run 29751563205). CHUNKED_PREFILL_SIZE=131072 - MEM_FRACTION_STATIC=0.85 + MEM_FRACTION_STATIC=0.80 else CHUNKED_PREFILL_SIZE=32768 export AGENTIC_WARMUP_GRACE_PERIOD=3600 From 02c59f7f38f2bc55c1a049a7ce17c3f07393a27d Mon Sep 17 00:00:00 2001 From: seungrokj Date: Tue, 11 Aug 2026 11:03:54 +0900 Subject: [PATCH 12/15] [AMD][AgentX] glm5.2 fp4 mi355x sglang mtp: set SGLANG_SIMULATE_ACC_LEN=2.99 for non-eval runs Co-Authored-By: Claude Opus 4.6 --- .../single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh index 014719415c..064a2d5724 100644 --- a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh +++ b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh @@ -197,6 +197,12 @@ fi MAX_RUNNING_REQUESTS=$((1 * CONC)) [ "$MAX_RUNNING_REQUESTS" -gt 256 ] && MAX_RUNNING_REQUESTS=256 CUDA_GRAPH_MAX_BS=$MAX_RUNNING_REQUESTS + +if [ "${EVAL_ONLY:-false}" != "true" ]; then + export SGLANG_SIMULATE_ACC_LEN=2.99 + export SGLANG_SIMULATE_ACC_METHOD=match-expected + export SGLANG_SIMULATE_ACC_TOKEN_MODE=real-draft-token +fi SGLANG_CMD=( python3 -m sglang.launch_server From fff9004dca322afeff360c523d424aef6b016ee7 Mon Sep 17 00:00:00 2001 From: ajith-sirra-amd <122240613+ajith-sirra-amd@users.noreply.github.com> Date: Tue, 11 Aug 2026 14:11:14 +0530 Subject: [PATCH 13/15] [AMD] [AGENTX] GLM 5.2 - Update glm5.2_fp4_mi355x_sglang_mtp.sh --- .../single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh index 064a2d5724..d7ed7a359d 100644 --- a/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh +++ b/benchmarks/single_node/agentic/glm5.2_fp4_mi355x_sglang_mtp.sh @@ -225,9 +225,9 @@ SGLANG_CMD=( --max-running-requests "$MAX_RUNNING_REQUESTS" --cuda-graph-max-bs "$CUDA_GRAPH_MAX_BS" --speculative-algorithm EAGLE - --speculative-num-steps 5 + --speculative-num-steps 3 --speculative-eagle-topk 1 - --speculative-num-draft-tokens 6 + --speculative-num-draft-tokens 4 "${CACHE_ARGS[@]}" --watchdog-timeout 1800 --enable-metrics From 532d32838b7a9472fe8aa32598cf1537de361892 Mon Sep 17 00:00:00 2001 From: ajith-sirra-amd <122240613+ajith-sirra-amd@users.noreply.github.com> Date: Tue, 11 Aug 2026 14:13:57 +0530 Subject: [PATCH 14/15] [AMD] [AGENTX] GLM 5.2 - Update amd-master.yaml --- configs/amd-master.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configs/amd-master.yaml b/configs/amd-master.yaml index 3b1822dd62..67fdf2a041 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -1631,5 +1631,6 @@ glm5.2-fp4-mi355x-sglang-agentic-mtp: agentic-coding: - dram-utilization: 0.8 search-space: - - { tp: 4, ep: 4, kv-offloading: dram, kv-offload-backend: { name: hicache }, conc-list: [1, 2, 4, 8, 10], spec-decoding: mtp } + - { tp: 4, ep: 4, kv-offloading: dram, kv-offload-backend: { name: hicache }, conc-list: [1, 2, 4, 8, 10, 12], spec-decoding: mtp } + - { tp: 8, ep: 8, kv-offloading: dram, kv-offload-backend: { name: hicache }, conc-list: [1, 2, 4], spec-decoding: mtp } From d204ac0de29d506d5de9ad534495b6fe0ae21370 Mon Sep 17 00:00:00 2001 From: ajith-sirra-amd <122240613+ajith-sirra-amd@users.noreply.github.com> Date: Tue, 11 Aug 2026 14:36:59 +0530 Subject: [PATCH 15/15] [AMD] [AGENTX] GLM 5.2 Update Search Space --- 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 67fdf2a041..9bc224b161 100644 --- a/configs/amd-master.yaml +++ b/configs/amd-master.yaml @@ -1631,6 +1631,6 @@ glm5.2-fp4-mi355x-sglang-agentic-mtp: agentic-coding: - dram-utilization: 0.8 search-space: - - { tp: 4, ep: 4, kv-offloading: dram, kv-offload-backend: { name: hicache }, conc-list: [1, 2, 4, 8, 10, 12], spec-decoding: mtp } + - { tp: 4, ep: 4, kv-offloading: dram, kv-offload-backend: { name: hicache }, conc-list: [1, 2, 4, 8, 10, 12, 16], spec-decoding: mtp } - { tp: 8, ep: 8, kv-offloading: dram, kv-offload-backend: { name: hicache }, conc-list: [1, 2, 4], spec-decoding: mtp }