Skip to content

Commit a0f295e

Browse files
[Klaud Cold] Add qwen3.5-fp8-mi325x-sglang-mtp recipe (#1484)
* Add qwen3.5-fp8-mi325x-sglang-mtp recipe Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore: fill pr-link for #1484 --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 8e0f658 commit a0f295e

3 files changed

Lines changed: 109 additions & 0 deletions

File tree

.github/configs/amd-master.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1819,3 +1819,22 @@ dsr1-fp8-mi325x-sglang-mtp:
18191819
osl: 1024
18201820
search-space:
18211821
- { tp: 8, ep: 1, conc-start: 4, conc-end: 64, spec-decoding: mtp }
1822+
1823+
qwen3.5-fp8-mi325x-sglang-mtp:
1824+
image: lmsysorg/sglang:v0.5.12-rocm720-mi30x
1825+
model: Qwen/Qwen3.5-397B-A17B-FP8
1826+
model-prefix: qwen3.5
1827+
runner: mi325x
1828+
precision: fp8
1829+
framework: sglang
1830+
multinode: false
1831+
scenarios:
1832+
fixed-seq-len:
1833+
- isl: 1024
1834+
osl: 1024
1835+
search-space:
1836+
- { tp: 8, ep: 1, conc-start: 4, conc-end: 64, spec-decoding: mtp }
1837+
- isl: 8192
1838+
osl: 1024
1839+
search-space:
1840+
- { tp: 8, ep: 1, conc-start: 4, conc-end: 64, spec-decoding: mtp }
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
#!/usr/bin/env bash
2+
3+
source "$(dirname "$0")/../benchmark_lib.sh"
4+
5+
check_env_vars \
6+
MODEL \
7+
TP \
8+
CONC \
9+
ISL \
10+
OSL \
11+
RANDOM_RANGE_RATIO \
12+
RESULT_FILENAME
13+
EP_SIZE \
14+
15+
if [[ -n "$SLURM_JOB_ID" ]]; then
16+
echo "JOB $SLURM_JOB_ID running on $SLURMD_NODENAME"
17+
fi
18+
19+
if [[ "$MODEL" != /* ]]; then hf download "$MODEL"; fi
20+
21+
SERVER_LOG=/workspace/server.log
22+
PORT=${PORT:-8888}
23+
CONTEXT_LENGTH=$((ISL + OSL + 20))
24+
MAX_PREFILL_TOKENS=32768
25+
26+
EVAL_CONTEXT_ARGS=""
27+
if [ "${EVAL_ONLY}" = "true" ]; then
28+
setup_eval_context
29+
EVAL_CONTEXT_ARGS="--context-length $EVAL_MAX_MODEL_LEN"
30+
else EVAL_CONTEXT_ARGS="--context-length $CONTEXT_LENGTH"
31+
fi
32+
# Start GPU monitoring (power, temperature, clocks every second)
33+
start_gpu_monitor
34+
35+
# following AMD Andy linkedin's recipe
36+
# https://www.linkedin.com/feed/update/urn:li:activity:7429203734389280768/
37+
python3 -m sglang.launch_server \
38+
--attention-backend aiter \
39+
--model-path $MODEL \
40+
--host=0.0.0.0 \
41+
--port $PORT \
42+
--tensor-parallel-size $TP \
43+
--ep-size $EP_SIZE \
44+
--trust-remote-code \
45+
--tokenizer-worker-num 6 \
46+
--enable-aiter-allreduce-fusion \
47+
--cuda-graph-max-bs $CONC \
48+
--disable-radix-cache \
49+
--max-prefill-tokens $MAX_PREFILL_TOKENS \
50+
--scheduler-recv-interval 30 \
51+
--speculative-algorithm EAGLE \
52+
--speculative-num-steps 3 \
53+
--speculative-eagle-topk 1 \
54+
--speculative-num-draft-tokens 4 \
55+
--mem-fraction-static 0.75 $EVAL_CONTEXT_ARGS > $SERVER_LOG 2>&1 &
56+
57+
SERVER_PID=$!
58+
59+
# Wait for server to be ready
60+
wait_for_server_ready --port "$PORT" --server-log "$SERVER_LOG" --server-pid "$SERVER_PID"
61+
62+
run_benchmark_serving \
63+
--model "$MODEL" \
64+
--port "$PORT" \
65+
--backend vllm \
66+
--input-len "$ISL" \
67+
--output-len "$OSL" \
68+
--random-range-ratio "$RANDOM_RANGE_RATIO" \
69+
--num-prompts "$((CONC * 10))" \
70+
--max-concurrency "$CONC" \
71+
--result-filename "$RESULT_FILENAME" \
72+
EP_SIZE \
73+
--result-dir /workspace/ \
74+
--use-chat-template
75+
76+
# After throughput, run evaluation only if RUN_EVAL is true
77+
if [ "${RUN_EVAL}" = "true" ]; then
78+
run_eval --framework lm-eval --port "$PORT"
79+
append_lm_eval_summary
80+
fi
81+
82+
# Stop GPU monitoring
83+
stop_gpu_monitor
84+
set +x

perf-changelog.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2855,3 +2855,9 @@
28552855
- "Update SGLang image from nightly-dev-cu13-20260317-1eea7448 (33d/29d old) to v0.5.12-cu130"
28562856
- "Add --fp8-gemm-runner-backend cutlass to bypass DeepGemm illegal-memory-access on CUDA-graph capture (KLAUD_DEBUG §4a, B200 sm_100 variant)"
28572857
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1447
2858+
2859+
- config-keys:
2860+
- qwen3.5-fp8-mi325x-sglang-mtp
2861+
description:
2862+
- "Add MTP/EAGLE speculative-decoding sibling of qwen3.5-fp8-mi325x-sglang"
2863+
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1484

0 commit comments

Comments
 (0)