vllm - 💡(How to fix) Fix [Performance]: Qwen/Qwen3.5-35B-A3B-FP8 has a 8.5x perf reggression when using FA3 backend on a Hopper backend [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
vllm-project/vllm#39323Fetched 2026-04-09 07:51:52
View on GitHub
Comments
0
Participants
1
Timeline
2
Reactions
0
Participants
Timeline (top)
labeled ×1renamed ×1

Code Example

vllm bench serve
          --backend vllm
          --base-url http://localhost:8000
          --model Qwen/Qwen3.5-35B-A3B-FP8
          --endpoint /v1/completions
          --dataset-name random
          --random-input-len 4096
          --random-output-len 256
          --num-prompts 256
          --num-warmups 10
          --request-rate inf
          --ignore-eos

---

The output of `python collect_env.py`
RAW_BUFFERClick to expand / collapse

Proposal to improve performance

There are 2 solutions to this:

  1. Update the FA3 backend codebase (which is where the bug is)
  2. Make FLASHINFER the default choice of attention backend for Hopper GPUs

(1) has already been done in the latest nightly build. The nightly no longer has this performance bug, but I wanted to raise it incase existing users running with vLLM 0.19.0 have issues.

(2) I've found that in general the FLASHINFER kernels are as perofrmance of FLASHATTN and is also the default for Blackwell. So maybe making this default for Hopper is also a good idea.

Report of performance regression

On a 1xH100 machine, I launched vLLM with two configurations: Config 1) vllm serve Qwen/Qwen3.5-35B-A3B-FP8 --host 0.0.0.0 --port 8000 Config 2) vllm serve Qwen/Qwen3.5-35B-A3B-FP8 --host 0.0.0.0 --port 8000 --attention-backend FLASHINFER

I then ran the following benchmark:

vllm bench serve
          --backend vllm
          --base-url http://localhost:8000
          --model Qwen/Qwen3.5-35B-A3B-FP8
          --endpoint /v1/completions
          --dataset-name random
          --random-input-len 4096
          --random-output-len 256
          --num-prompts 256
          --num-warmups 10
          --request-rate inf
          --ignore-eos

The results were as follows:

MetricFlashAttn v3 (default)FlashInferDelta
Benchmark duration (s)336.0739.378.5x faster
Request throughput (req/s)0.766.50+755%
Output token throughput (tok/s)1951,665+754%
Total token throughput (tok/s)3,31528,297+754%
Mean TTFT (ms)80,94814,319−82.3%
Mean TPOT (ms)92691.86−90.1%
P99 ITL (ms)2,612413−84.2%

Misc discussion on performance

No response

Your current environment (if you think it is necessary)

The output of `python collect_env.py`

Before submitting a new issue...

  • Make sure you already searched for relevant issues, and asked the chatbot living at the bottom right corner of the documentation page, which can answer lots of frequently asked questions.

extent analysis

TL;DR

To fix the performance regression, consider making FLASHINFER the default choice of attention backend for Hopper GPUs or updating to the latest nightly build where the FA3 backend codebase has been updated.

Guidance

  • For existing users running with vLLM 0.19.0, update to the latest nightly build to leverage the updated FA3 backend codebase.
  • Alternatively, explicitly specify --attention-backend FLASHINFER when running vllm serve to use the FLASHINFER backend, which has shown significant performance improvements.
  • Review the benchmark results to understand the performance differences between FlashAttn v3 (default) and FlashInfer backends.
  • Consider making FLASHINFER the default attention backend for Hopper GPUs, given its comparable performance to FLASHATTN and its status as the default for Blackwell.

Example

No explicit code changes are required, but users can modify their vllm serve command to include --attention-backend FLASHINFER for improved performance.

Notes

The performance regression is specific to vLLM 0.19.0 and Hopper GPUs. The latest nightly build and the use of FLASHINFER backend are potential solutions.

Recommendation

Apply workaround: Use --attention-backend FLASHINFER with vLLM 0.19.0, as it provides significant performance improvements without requiring an update to the latest nightly build.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING