---
id: pr-vllm-24794
repo: vllm-project/vllm
pr: 24794
title: '[Attention] Refactor CUDA attention backend selection logic'
author: MatthewBonanni
date: '2025-11-11'
url: https://github.com/vllm-project/vllm/pull/24794
source_category: upstream-code
architectures:
- sm100
tags: []
techniques: []
hardware_features: []
kernel_types: []
languages: []
captured_at: '2026-05-16'
status: merged
merge_sha: b30dfa03c564ce51c56bf2dd16283f074253c27c
inclusion_reason: defer
changed_paths:
- .buildkite/test-pipeline.yaml
- tests/compile/test_fusion_attn.py
- tests/compile/test_fusions_e2e.py
- tests/config/test_multimodal_config.py
- tests/kernels/attention/test_attention_selector.py
- tests/kernels/attention/test_mha_attn.py
- tests/models/test_initialization.py
- tests/v1/attention/test_attention_backends.py
- tests/v1/attention/test_mla_backends.py
- tests/v1/attention/utils.py
- tests/v1/spec_decode/test_eagle.py
- tests/v1/spec_decode/test_mtp.py
- tests/v1/spec_decode/test_tree_attention.py
- tests/v1/worker/test_gpu_model_runner.py
- vllm/attention/backends/abstract.py
- vllm/attention/backends/registry.py
- vllm/attention/layer.py
- vllm/attention/selector.py
- vllm/config/cache.py
- vllm/config/model.py
- vllm/config/multimodal.py
- vllm/distributed/kv_transfer/kv_connector/v1/nixl_connector.py
- vllm/engine/arg_utils.py
- vllm/envs.py
- vllm/model_executor/models/dots_ocr.py
- vllm/model_executor/models/ernie45_vl.py
- vllm/model_executor/models/glm4_1v.py
- vllm/model_executor/models/keye.py
- vllm/model_executor/models/ovis2_5.py
- vllm/model_executor/models/paddleocr_vl.py
- vllm/model_executor/models/qwen2_5_vl.py
- vllm/model_executor/models/qwen2_vl.py
- vllm/model_executor/models/qwen3_omni_moe_thinker.py
- vllm/model_executor/models/qwen3_vl.py
- vllm/model_executor/models/siglip2navit.py
- vllm/model_executor/models/vision.py
- vllm/platforms/cpu.py
- vllm/platforms/cuda.py
- vllm/platforms/interface.py
- vllm/platforms/rocm.py
- vllm/platforms/tpu.py
- vllm/platforms/xpu.py
- vllm/v1/attention/backends/cpu_attn.py
- vllm/v1/attention/backends/flash_attn.py
- vllm/v1/attention/backends/flashinfer.py
- vllm/v1/attention/backends/flex_attention.py
- vllm/v1/attention/backends/mla/common.py
- vllm/v1/attention/backends/mla/cutlass_mla.py
- vllm/v1/attention/backends/mla/flashattn_mla.py
- vllm/v1/attention/backends/mla/flashinfer_mla.py
- vllm/v1/attention/backends/mla/flashmla.py
- vllm/v1/attention/backends/mla/flashmla_sparse.py
- vllm/v1/attention/backends/mla/indexer.py
- vllm/v1/attention/backends/mla/triton_mla.py
- vllm/v1/attention/backends/rocm_aiter_fa.py
- vllm/v1/attention/backends/rocm_attn.py
- vllm/v1/attention/backends/tree_attn.py
- vllm/v1/attention/backends/triton_attn.py
- vllm/v1/attention/backends/xformers.py
- vllm/v1/spec_decode/eagle.py
- vllm/v1/worker/gpu_model_runner.py
artifact_dir: evidence/pull-bundles/vllm/gh-24794
head_ref_oid: d0f46985c9b2bd3a1a381d04dc0f51809f0b4977
---
# [Attention] Refactor CUDA attention backend selection logic

- Repository: `vllm-project/vllm`
- PR: [24794](https://github.com/vllm-project/vllm/pull/24794)
- Decision: `defer`
- Reason: defer

## Changed Paths

- `.buildkite/test-pipeline.yaml`
- `tests/compile/test_fusion_attn.py`
- `tests/compile/test_fusions_e2e.py`
- `tests/config/test_multimodal_config.py`
- `tests/kernels/attention/test_attention_selector.py`
- `tests/kernels/attention/test_mha_attn.py`
- `tests/models/test_initialization.py`
- `tests/v1/attention/test_attention_backends.py`
- `tests/v1/attention/test_mla_backends.py`
- `tests/v1/attention/utils.py`
- `tests/v1/spec_decode/test_eagle.py`
- `tests/v1/spec_decode/test_mtp.py`
- `tests/v1/spec_decode/test_tree_attention.py`
- `tests/v1/worker/test_gpu_model_runner.py`
- `vllm/attention/backends/abstract.py`
- `vllm/attention/backends/registry.py`
- `vllm/attention/layer.py`
- `vllm/attention/selector.py`
- `vllm/config/cache.py`
- `vllm/config/model.py`
- `vllm/config/multimodal.py`
- `vllm/distributed/kv_transfer/kv_connector/v1/nixl_connector.py`
- `vllm/engine/arg_utils.py`
- `vllm/envs.py`
- `vllm/model_executor/models/dots_ocr.py`
- `vllm/model_executor/models/ernie45_vl.py`
- `vllm/model_executor/models/glm4_1v.py`
- `vllm/model_executor/models/keye.py`
- `vllm/model_executor/models/ovis2_5.py`
- `vllm/model_executor/models/paddleocr_vl.py`
- `vllm/model_executor/models/qwen2_5_vl.py`
- `vllm/model_executor/models/qwen2_vl.py`
- `vllm/model_executor/models/qwen3_omni_moe_thinker.py`
- `vllm/model_executor/models/qwen3_vl.py`
- `vllm/model_executor/models/siglip2navit.py`
- `vllm/model_executor/models/vision.py`
- `vllm/platforms/cpu.py`
- `vllm/platforms/cuda.py`
- `vllm/platforms/interface.py`
- `vllm/platforms/rocm.py`
- `vllm/platforms/tpu.py`
- `vllm/platforms/xpu.py`
- `vllm/v1/attention/backends/cpu_attn.py`
- `vllm/v1/attention/backends/flash_attn.py`
- `vllm/v1/attention/backends/flashinfer.py`
- `vllm/v1/attention/backends/flex_attention.py`
- `vllm/v1/attention/backends/mla/common.py`
- `vllm/v1/attention/backends/mla/cutlass_mla.py`
- `vllm/v1/attention/backends/mla/flashattn_mla.py`
- `vllm/v1/attention/backends/mla/flashinfer_mla.py`
- `vllm/v1/attention/backends/mla/flashmla.py`
- `vllm/v1/attention/backends/mla/flashmla_sparse.py`
- `vllm/v1/attention/backends/mla/indexer.py`
- `vllm/v1/attention/backends/mla/triton_mla.py`
- `vllm/v1/attention/backends/rocm_aiter_fa.py`
- `vllm/v1/attention/backends/rocm_attn.py`
- `vllm/v1/attention/backends/tree_attn.py`
- `vllm/v1/attention/backends/triton_attn.py`
- `vllm/v1/attention/backends/xformers.py`
- `vllm/v1/spec_decode/eagle.py`
- `vllm/v1/worker/gpu_model_runner.py`

## Evidence Bundle

`evidence/pull-bundles/vllm/gh-24794`
