Skip to content

Commit 9acd530

Browse files
functionstackxclaudeclaude-fix-bot
authored
[Klaud Cold] Add MI355X config: qwen3.5-fp4-sglang-mtp (#1445)
* Add MI355X config: qwen3.5-fp4-sglang-mtp Adds the qwen3.5-fp4-mi355x-sglang-mtp recipe using the latest sglang-rocm nightly v0.5.12-rocm720-mi35x-20260517 (matches PRs #1440-1444 which bump other mi355x recipes to the same image). Replaces the stale #1078 which targeted v0.5.10rc0-rocm700-mi35x-20260417 and was tagged broken; that branch reverted unrelated merged changes when rebased. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore: fill in pr-link for #1445 in perf-changelog * fix(qwen3.5-fp4-mi355x-sglang-mtp): use scenarios/fixed-seq-len schema The old 'seq-len-configs' field was renamed to 'scenarios.fixed-seq-len' in the master config schema. Pydantic validation failed setup with 'Field required (scenarios)' + 'Extra inputs are not permitted (seq-len-configs)'. * Add launch script benchmarks/single_node/qwen3.5_fp4_mi355x_mtp.sh Carried over from the original #1078 branch — was missed in the recipe-only port that opened #1445. * Re-trigger sweep (abandon in-flight run with transient infra failures) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: claude-fix-bot <claude-fix-bot@local>
1 parent 41fdd6b commit 9acd530

3 files changed

Lines changed: 100 additions & 0 deletions

File tree

.github/configs/amd-master.yaml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,27 @@ qwen3.5-fp4-mi355x-atom:
367367
- { tp: 2, conc-start: 4, conc-end: 256 }
368368
- { tp: 4, conc-start: 4, conc-end: 16 }
369369

370+
qwen3.5-fp4-mi355x-sglang-mtp:
371+
image: lmsysorg/sglang-rocm:v0.5.12-rocm720-mi35x-20260517
372+
model: amd/Qwen3.5-397B-A17B-MXFP4
373+
model-prefix: qwen3.5
374+
runner: mi355x
375+
precision: fp4
376+
framework: sglang
377+
multinode: false
378+
scenarios:
379+
fixed-seq-len:
380+
- isl: 1024
381+
osl: 1024
382+
search-space:
383+
- { tp: 2, conc-start: 4, conc-end: 256, spec-decoding: mtp }
384+
- { tp: 4, conc-start: 4, conc-end: 16, spec-decoding: mtp }
385+
- isl: 8192
386+
osl: 1024
387+
search-space:
388+
- { tp: 2, conc-start: 4, conc-end: 256, spec-decoding: mtp }
389+
- { tp: 4, conc-start: 4, conc-end: 16, spec-decoding: mtp }
390+
370391
qwen3.5-fp8-mi300x-sglang:
371392
image: lmsysorg/sglang:v0.5.12-rocm720-mi30x
372393
model: Qwen/Qwen3.5-397B-A17B-FP8
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
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+
14+
if [[ -n "$SLURM_JOB_ID" ]]; then
15+
echo "JOB $SLURM_JOB_ID running on $SLURMD_NODENAME"
16+
fi
17+
18+
hf download "$MODEL"
19+
20+
export SGLANG_USE_AITER=1
21+
22+
SERVER_LOG=/workspace/server.log
23+
PORT=${PORT:-8888}
24+
MEM_FRAC_STATIC=${MEM_FRAC_STATIC:-0.8}
25+
26+
if [ "${EVAL_ONLY}" = "true" ]; then
27+
setup_eval_context
28+
fi
29+
30+
# Start GPU monitoring (power, temperature, clocks every second)
31+
start_gpu_monitor
32+
33+
set -x
34+
python3 -m sglang.launch_server --model-path=$MODEL --trust-remote-code \
35+
--host=0.0.0.0 --port=$PORT \
36+
--tensor-parallel-size=$TP \
37+
--attention-backend aiter \
38+
--mem-fraction-static $MEM_FRAC_STATIC \
39+
--model-loader-extra-config '{"enable_multithread_load": true}' \
40+
--watchdog-timeout 1200 \
41+
--disable-radix-cache \
42+
--speculative-algorithm EAGLE \
43+
--speculative-num-steps 3 \
44+
--speculative-eagle-topk 1 \
45+
--speculative-num-draft-tokens 4 \
46+
> $SERVER_LOG 2>&1 &
47+
48+
SERVER_PID=$!
49+
50+
# Wait for server to be ready
51+
wait_for_server_ready --port "$PORT" --server-log "$SERVER_LOG" --server-pid "$SERVER_PID" --sleep-interval 60
52+
53+
run_benchmark_serving \
54+
--model "$MODEL" \
55+
--port "$PORT" \
56+
--backend vllm \
57+
--input-len "$ISL" \
58+
--output-len "$OSL" \
59+
--random-range-ratio "$RANDOM_RANGE_RATIO" \
60+
--num-prompts "$((CONC * 10))" \
61+
--max-concurrency "$CONC" \
62+
--result-filename "$RESULT_FILENAME" \
63+
--result-dir /workspace/
64+
65+
# After throughput, run evaluation only if RUN_EVAL is true
66+
if [ "${RUN_EVAL}" = "true" ]; then
67+
run_eval --framework lm-eval --port "$PORT"
68+
append_lm_eval_summary
69+
fi
70+
71+
# Stop GPU monitoring
72+
stop_gpu_monitor
73+
set +x

perf-changelog.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2895,3 +2895,9 @@
28952895
- "Upgrade GB200 DSV4 MTP2 1P/1D DEP8 MegaMOE mid-curve recipe to vLLM v0.21.0"
28962896
- "Extend mid-curve concurrency sweep to also benchmark conc=256, conc=512, and conc=1024"
28972897
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1390
2898+
2899+
- config-keys:
2900+
- qwen3.5-fp4-mi355x-sglang-mtp
2901+
description:
2902+
- "Add MI355X config: qwen3.5-fp4-sglang-mtp using lmsysorg/sglang-rocm:v0.5.12-rocm720-mi35x-20260517"
2903+
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1445

0 commit comments

Comments
 (0)