Skip to content
Open
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
21 changes: 10 additions & 11 deletions .github/configs/amd-master.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2257,15 +2257,8 @@ dsv4-fp4-mi355x-vllm-mtp:
search-space:
- { tp: 8, conc-start: 4, conc-end: 512, spec-decoding: mtp }

# Day-0 single-sequence marker for DeepSeek-V4 on ATOM (ROCm/ATOM#650).
# PR1 of the ATOM DSv4 series still uses torch sparse-attention fallbacks
# that OOM once warmup/prefill batches multiple requests; keep CONC=1 until
# the AITER sparse-attention kernel / multi-request path lands upstream.
# --enforce-eager and ATOM_USE_TRITON_MOE=1 are required on gfx950. Image is
# the standard atom0.1.2.post MI355X base (matching qwen3.5-fp8-mi355x-atom);
# the DSv4 PR is overlaid at runtime by dsv4_fp4_mi355x_atom.sh at a pinned SHA.
dsv4-fp4-mi355x-atom:
image: rocm/atom:rocm7.2.4_ubuntu24.04_py3.12_pytorch_release_2.10.0_atom0.1.3
image: rocm/atom:rocm7.2.4_ubuntu24.04_py3.12_pytorch_release_2.10.0_atom0.1.4_20260612
model: deepseek-ai/DeepSeek-V4-Pro
model-prefix: dsv4
runner: mi355x
Expand All @@ -2277,13 +2270,19 @@ dsv4-fp4-mi355x-atom:
- isl: 1024
osl: 1024
search-space:
# conc4-64, TP8
# conc128-512, DPA
# conc1024-8192, DPA TBO
- { tp: 8, ep: 1, conc-start: 1, conc-end: 64 }
- { tp: 8, ep: 1, dp-attn: true, conc-start: 64, conc-end: 1024 }
- { tp: 8, ep: 1, dp-attn: true, conc-start: 64, conc-end: 8192 }
- isl: 8192
osl: 1024
search-space:
- { tp: 8, ep: 1, conc-start: 1, conc-end: 64 }
- { tp: 8, ep: 1, dp-attn: true, conc-start: 64, conc-end: 512 }
# conc4-64, TP8
# conc128, DPA
# conc256-4096, DPA TBO
- { tp: 8, ep: 1, conc-start: 4, conc-end: 64 }
- { tp: 8, ep: 1, dp-attn: true, conc-start: 128, conc-end: 4096 }

dsv4-fp4-mi355x-atom-mtp:
image: rocm/atom:rocm7.2.4_ubuntu24.04_py3.12_pytorch_release_2.10.0_atom0.1.3
Expand Down
24 changes: 20 additions & 4 deletions benchmarks/single_node/fixed_seq_len/dsv4_fp4_mi355x_atom.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,27 +25,43 @@ PARALLEL_ARGS=(-tp "$TP") #TP
if [ "$DP_ATTENTION" = "true" ]; then
if [ "$EP_SIZE" -gt 1 ]; then #DP+EP
PARALLEL_ARGS=(-tp "$TP" --enable-expert-parallel --enable-dp-attention )
else #DP+TP
PARALLEL_ARGS=(-tp "$TP" --enable-dp-attention )
else #DPA+TP
#DPA+TP+TBO
if [ "$ISL" -eq 1024 ] && [ "$OSL" -eq 1024 ] && [ "$CONC" -ge 1024 ]; then
PARALLEL_ARGS=(-tp "$TP" --enable-dp-attention --enable-tbo)
elif [ "$ISL" -eq 8192 ] && [ "$OSL" -eq 1024 ] && [ "$CONC" -ge 256 ]; then
PARALLEL_ARGS=(-tp "$TP" --enable-dp-attention --enable-tbo)
else
PARALLEL_ARGS=(-tp "$TP" --enable-dp-attention )
fi
fi
fi

BENCHMARK_MAX_MODEL_LEN="$MAX_MODEL_LEN"

if [ "${EVAL_ONLY}" = "true" ]; then
EVAL_MAX_MODEL_LEN=$(compute_eval_context_length "$MODEL" "$BENCHMARK_MAX_MODEL_LEN")
export EVAL_MAX_MODEL_LEN
SERVE_MAX_MODEL_LEN="$EVAL_MAX_MODEL_LEN"
else
SERVE_MAX_MODEL_LEN="$BENCHMARK_MAX_MODEL_LEN"
fi
# Start GPU monitoring (power, temperature, clocks every second)
start_gpu_monitor

set -x
export ATOM_DISABLE_MMAP=true
export AITER_BF16_FP8_MOE_BOUND=0
export ATOM_MOE_GU_ITLV=1
# TODO: add --no-enable_chunked_prefill, when dsv4 prefix caching is supported
#https://github.com/ROCm/ATOM/commit/7df93a181da4d3c3250c2441c7d5e2745a03d0cd#diff-61b1ba0b8b74523530d2d5cdc739d4f3a23a43bedf69015a5235844d46e9373bL1127
python3 -m atom.entrypoints.openai_server \
--model $MODEL \
--server-port $PORT \
"${PARALLEL_ARGS[@]}" \
--kv_cache_dtype fp8 \
--trust-remote-code \
--gpu-memory-utilization 0.85 \
--no-enable_prefix_caching \
--max-model-len "$SERVE_MAX_MODEL_LEN" \
> $SERVER_LOG 2>&1 &

SERVER_PID=$!
Expand Down
8 changes: 8 additions & 0 deletions perf-changelog.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3600,3 +3600,11 @@
- "MI355x DSR1-FP4: Include TP4 configurations for 8k1k"
- "Expand the TP sweep (included TP=4) for 8k/1k configuration for conc=4 to 64"
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1692

- config-keys:
- dsv4-fp4-mi355x-atom
description:
- "Update image to rocm/atom:rocm7.2.4_ubuntu24.04_py3.12_pytorch_release_2.10.0_atom0.1.4_20260612"
- "Enable --enable-tbo (Two Batch Overlap) on top of DPA+TP8 at high concurrency: ISL=1024/OSL=1024 at CONC>=1024, ISL=8192/OSL=1024 at CONC>=256"
- "Update ISL=8192 search-space: TP8-only from conc=4-64, DPA from conc=128-1024 (previously conc=1-64 and DPA conc=64-512)"
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1717