Skip to content

Commit e493673

Browse files
jiacao-amdclaude
andcommitted
perf(dsv4-fp4-mi355x-vllm): use AITER a16w4 MoE backend (+21% decode)
Switch the DeepSeek-V4-Pro FP4 MI355X vLLM recipe from --moe-backend triton_unfused to --moe-backend aiter, and export VLLM_ROCM_USE_AITER_MOE=1. triton_unfused runs a W4A16 Triton dequant path; --moe-backend aiter selects AITER_MXFP4_BF16 (a16w4), a faster AITER kernel for the same numerics. Measured on MI355X TP=8, c64 1k/1k: output throughput 915 -> 1105 tok/s (+20.7%) mean TPOT 66.97ms -> 55.36ms Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
1 parent c2d6fe1 commit e493673

1 file changed

Lines changed: 10 additions & 6 deletions

File tree

benchmarks/single_node/fixed_seq_len/dsv4_fp4_mi355x_vllm.sh

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,14 @@ set -eo pipefail
1212
# same ROCm recipe while switching parallelism to vLLM's DP+EP form.
1313
# Image-pin details live in amd-master.yaml.
1414
#
15-
# --moe-backend triton_unfused is required for the FP4 MoE expert
16-
# weight format used by deepseek-ai/DeepSeek-V4-Pro. Letting --moe-backend
17-
# default to auto picks a backend that doesn't register the FP4 scale
18-
# parameters (w13_weight_scale / w2_weight_scale), so safetensors
19-
# loading raises KeyError.
15+
# --moe-backend aiter selects the AITER AITER_MXFP4_BF16 (a16w4) MoE
16+
# kernel, which is ~21% faster on decode than triton_unfused
17+
# (1105 vs 915 output tok/s at c64 1k/1k, TP=8) while staying numerically
18+
# stable. It requires VLLM_ROCM_USE_AITER=1 and VLLM_ROCM_USE_AITER_MOE=1
19+
# (both exported below).
20+
# Do NOT let --moe-backend default to auto: auto picks a backend that
21+
# doesn't register the FP4 scale parameters (w13_weight_scale /
22+
# w2_weight_scale), so safetensors loading raises KeyError.
2023
#
2124
# --compilation-config mode=3 with FULL_AND_PIECEWISE cudagraph mode
2225
# enables full CUDA graph capture for improved throughput on MI355X.
@@ -45,6 +48,7 @@ if [ -n "$ROCR_VISIBLE_DEVICES" ]; then
4548
fi
4649

4750
export VLLM_ROCM_USE_AITER=1
51+
export VLLM_ROCM_USE_AITER_MOE=1
4852

4953
SERVER_LOG=/workspace/server.log
5054

@@ -75,7 +79,7 @@ vllm serve $MODEL --port $PORT \
7579
--gpu-memory-utilization 0.8 \
7680
--kv-cache-dtype fp8 \
7781
--trust-remote-code \
78-
--moe-backend triton_unfused \
82+
--moe-backend aiter \
7983
--tokenizer-mode deepseek_v4 \
8084
--reasoning-parser deepseek_v4 \
8185
--compilation-config '{"mode":3,"cudagraph_mode":"FULL_AND_PIECEWISE"}' > $SERVER_LOG 2>&1 &

0 commit comments

Comments
 (0)