Skip to content

[Spec Decode][ROCm][Perf] Default EAGLE3 Llama drafter to AITER unified attention - #47882

Closed
tanpinsiang wants to merge 1 commit into
vllm-project:mainfrom
tanpinsiang:rocm-eagle3-aiter-unified-drafter-default
Closed

[Spec Decode][ROCm][Perf] Default EAGLE3 Llama drafter to AITER unified attention#47882
tanpinsiang wants to merge 1 commit into
vllm-project:mainfrom
tanpinsiang:rocm-eagle3-aiter-unified-drafter-default

Conversation

@tanpinsiang

@tanpinsiang tanpinsiang commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

This PR changes the default attention backend for ROCm EAGLE3 Llama draft models from the platform auto-selected ROCM_ATTN path to ROCM_AITER_UNIFIED_ATTN.

Why

On ROCm, EAGLE3 Llama drafter attention currently resolves to ROCM_ATTN by default. For MiniMax-M3 EAGLE3 serving, that path is much slower than the available AITER unified-attention backend. The default should select the faster backend for this drafter family while still preserving explicit user overrides in speculative_config.attention_backend.

ROCM_AITER_UNIFIED_ATTN is also the most robust fast option here: ROCM_AITER_FA does not currently work for this stack because MiniMax-M3 requires block size 128, while the backend only advertises [16, 32]. Forcing 128 experimentally allowed startup but failed at runtime in AITER paged_attention_v1, so it is not a valid replacement.

Benchmark

Benchmark stack: upstream main + #47391 + this PR.

The code change in this PR does not depend on #47391, but the benchmark includes #47391 so MiniMax-M3 EAGLE3 acceptance and throughput are measured on the representative stack.

Note: These benchmark numbers were collected before recipes#621 clarified the nested text_config override. The command below is updated to the working form; the benchmark comparison remains comparable because all rows used the same config, but absolute tok/s should be rerun with nested index-topk reuse.

Server setup:

  • Model: amd/MiniMax-M3-MXFP4
  • Draft model: Inferact/MiniMax-M3-EAGLE3
  • TP: 4
  • Block size: 128
  • Target attention backend: TRITON_ATTN
  • Speculative tokens: 2
  • KV cache dtype: fp8
  • Dataset: random 8k input / 1k output
  • Concurrency: 256
  • Prompts: 2560
Drafter backend Status Output tok/s/GPU Total tok/s/GPU Mean TPOT ms P99 TPOT ms Acceptance Improvement vs ROCM_ATTN
ROCM_ATTN pass 247.045 2328.647 253.811 392.013 68.84% baseline
TRITON_ATTN pass 843.506 7950.873 71.576 108.118 67.91% +241.44%
ROCM_AITER_FA do not support Block size: 128 n/a n/a n/a n/a n/a n/a
ROCM_AITER_UNIFIED_ATTN pass 858.428 8091.533 70.158 107.299 67.89% +247.48%

ROCM_AITER_UNIFIED_ATTN is 3.47x the current ROCM_ATTN default and slightly faster than TRITON_ATTN on this workload.

Test command

vllm serve amd/MiniMax-M3-MXFP4 \
  --tensor-parallel-size 4 \
  --trust-remote-code \
  --block-size 128 \
  --no-enable-prefix-caching \
  --language-model-only \
  --max-model-len 32768 \
  --attention-backend TRITON_ATTN \
  --moe-backend aiter \
  --tool-call-parser minimax_m3 \
  --enable-auto-tool-choice \
  --reasoning-parser minimax_m3 \
  --kv-cache-dtype fp8 \
  --hf-overrides '{"text_config": {"use_index_cache": true, "index_topk_freq": 4}}' \
  --speculative-config '{"method":"eagle3","model":"Inferact/MiniMax-M3-EAGLE3","num_speculative_tokens":2}' \
  --no-async-scheduling

Signed-off-by: Tan Pin Siang <tanpinsiang@gmail.com>

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@mergify mergify Bot added llama Related to Llama models rocm Related to AMD ROCm labels Jul 7, 2026
@github-project-automation github-project-automation Bot moved this to Todo in AMD Jul 7, 2026
@tanpinsiang
tanpinsiang marked this pull request as draft July 7, 2026 15:27
@hongxiayang

Copy link
Copy Markdown
Collaborator

We can use TRITON_ATTN, which do not need to depend on aiter to be installed.
Also I used TRITON_ATTN for the minimax-m3 eagle3 recipe in this PR: vllm-project/recipes#615 which has shown very good performance.

@tanpinsiang

Copy link
Copy Markdown
Contributor Author

Superseded by the MiniMax-M3 recipe update in vllm-project/recipes#615.
Closing this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

llama Related to Llama models rocm Related to AMD ROCm

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants