@@ -155,6 +155,7 @@ Priority is **1 = highest** (tried first).
155155| ** Block Sizes** | Supported KV cache block sizes (%N means multiples of N) |
156156| ** Head Sizes** | Supported attention head sizes |
157157| ** Sink** | Attention sink support (for StreamingLLM) |
158+ | ** Non-Causal** | Non-causal (bidirectional) attention support for decoder models |
158159| ** Sparse** | Sparse attention support (MLA only) |
159160| ** MM Prefix** | Multimodal prefix full attention support |
160161| ** DCP** | Decode Context Parallelism support (` --decode-context-parallel-size ` ) |
@@ -165,22 +166,22 @@ Priority is **1 = highest** (tried first).
165166
166167## Standard Attention (MHA, MQA, GQA) Backends
167168
168- | Backend | Version | Dtypes | KV Dtypes | Block Sizes | Head Sizes | Sink | MM Prefix | DCP | Attention Types | Compute Cap. |
169- | ------- | ------- | ------ | --------- | ----------- | ---------- | ---- | --------- | --- | --------------- | ------------ |
170- | ` CPU_ATTN ` | | fp16, bf16, fp32 | ` auto ` , ` fp8 ` , ` fp8_e4m3 ` , ` fp8_e5m2 ` | Any | 32, 64, 80, 96, 112, 128, 160, 192, 224, 256, 512 | ❌ | ❌ | ❌ | All | N/A |
171- | ` FLASHINFER ` | Native† | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` , ` fp8_e5m2 ` | 16, 32, 64 | 64, 128, 256 | ❌ | ❌ | ✅ | Decoder | 7.x-9.x |
172- | ` FLASHINFER ` | TRTLLM† | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` , ` fp8_e5m2 ` , ` nvfp4 ` | 16, 32, 64 | 64, 128, 256 | ✅ | ❌ | ✅ | Decoder | 10.x |
173- | ` FLASH_ATTN ` | FA2* | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` | %16 | Any | ❌ | ❌ | ✅ | All | ≥8.0 |
174- | ` FLASH_ATTN ` | FA3* | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` , ` fp8_e5m2 ` | %16 | Any | ✅ | ❌ | ✅ | All | 9.x |
175- | ` FLASH_ATTN ` | FA4* | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` | %16 | Any | ✅ | ❌ | ✅ | All | ≥10.0 |
176- | ` FLASH_ATTN_DIFFKV ` | | fp16, bf16 | ` auto ` | Any | Any | ❌ | ❌ | ✅ | Decoder | Any |
177- | ` FLEX_ATTENTION ` | | fp16, bf16, fp32 | ` auto ` , ` float16 ` , ` bfloat16 ` | %16 | Any | ❌ | ✅ | ❌ | Decoder, Encoder Only | Any |
178- | ` ROCM_AITER_FA ` | | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` , ` fp8_e5m2 ` | 16, 32 | 64, 128, 256 | ❌ | ❌ | ❌ | Decoder | N/A |
179- | ` ROCM_AITER_UNIFIED_ATTN ` | | fp16, bf16 | ` auto ` | %16 | Any | ✅ | ✅ | ❌ | All | N/A |
180- | ` ROCM_ATTN ` | | fp16, bf16, fp32 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` , ` fp8_e5m2 ` | %16 | 32, 64, 80, 96, 128, 160, 192, 224, 256 | ❌ | ✅ | ❌ | Decoder, Encoder, Encoder Only | N/A |
181- | ` TREE_ATTN ` | | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` | %16 | 32, 64, 96, 128, 160, 192, 224, 256 | ❌ | ❌ | ❌ | Decoder | Any |
182- | ` TRITON_ATTN ` | | fp16, bf16, fp32 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` , ` fp8_e5m2 ` , ` int8_per_token_head ` , ` fp8_per_token_head ` | %16 | Any | ✅ | ✅ | ❌ | All | Any |
183- | ` TURBOQUANT ` | | fp16, bf16 | ` turboquant_k8v4 ` , ` turboquant_4bit_nc ` , ` turboquant_k3v4_nc ` , ` turboquant_3bit_nc ` | 16, 32, 64, 128 | Any | ❌ | ❌ | ❌ | Decoder | Any |
169+ | Backend | Version | Dtypes | KV Dtypes | Block Sizes | Head Sizes | Sink | Non-Causal | MM Prefix | DCP | Attention Types | Compute Cap. |
170+ | ------- | ------- | ------ | --------- | ----------- | ---------- | ---- | ---------- | --------- | --- | --------------- | ------------ |
171+ | ` CPU_ATTN ` | | fp16, bf16, fp32 | ` auto ` , ` fp8 ` , ` fp8_e4m3 ` , ` fp8_e5m2 ` | Any | 32, 64, 80, 96, 112, 128, 160, 192, 224, 256, 512 | ❌ | ❌ | ❌ | ❌ | All | N/A |
172+ | ` FLASHINFER ` | Native† | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` , ` fp8_e5m2 ` | 16, 32, 64 | 64, 128, 256 | ❌ | ❌ | ❌ | ✅ | Decoder | 7.x-9.x |
173+ | ` FLASHINFER ` | TRTLLM† | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` , ` fp8_e5m2 ` , ` nvfp4 ` | 16, 32, 64 | 64, 128, 256 | ✅ | ❌ | ❌ | ✅ | Decoder | 10.x |
174+ | ` FLASH_ATTN ` | FA2* | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` | %16 | Any | ❌ | ✅ | ❌ | ✅ | All | ≥8.0 |
175+ | ` FLASH_ATTN ` | FA3* | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` , ` fp8_e5m2 ` | %16 | Any | ✅ | ✅ | ❌ | ✅ | All | 9.x |
176+ | ` FLASH_ATTN ` | FA4* | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` | %16 | Any | ✅ | ✅ | ❌ | ✅ | All | ≥10.0 |
177+ | ` FLASH_ATTN_DIFFKV ` | | fp16, bf16 | ` auto ` | Any | Any | ❌ | ❌ | ❌ | ✅ | Decoder | Any |
178+ | ` FLEX_ATTENTION ` | | fp16, bf16, fp32 | ` auto ` , ` float16 ` , ` bfloat16 ` | %16 | Any | ❌ | ✅ | ✅ | ❌ | Decoder, Encoder Only | Any |
179+ | ` ROCM_AITER_FA ` | | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` , ` fp8_e5m2 ` | 16, 32 | 64, 128, 256 | ❌ | ✅ | ❌ | ❌ | Decoder | N/A |
180+ | ` ROCM_AITER_UNIFIED_ATTN ` | | fp16, bf16 | ` auto ` | %16 | Any | ✅ | ❌ | ✅ | ❌ | All | N/A |
181+ | ` ROCM_ATTN ` | | fp16, bf16, fp32 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` , ` fp8_e5m2 ` | %16 | 32, 64, 80, 96, 128, 160, 192, 224, 256 | ❌ | ✅ | ✅ | ❌ | Decoder, Encoder, Encoder Only | N/A |
182+ | ` TREE_ATTN ` | | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` | %16 | 32, 64, 96, 128, 160, 192, 224, 256 | ❌ | ❌ | ❌ | ❌ | Decoder | Any |
183+ | ` TRITON_ATTN ` | | fp16, bf16, fp32 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` , ` fp8_e5m2 ` , ` int8_per_token_head ` , ` fp8_per_token_head ` | %16 | Any | ✅ | ❌ | ✅ | ❌ | All | Any |
184+ | ` TURBOQUANT ` | | fp16, bf16 | ` turboquant_k8v4 ` , ` turboquant_4bit_nc ` , ` turboquant_k3v4_nc ` , ` turboquant_3bit_nc ` | 16, 32, 64, 128 | Any | ❌ | ❌ | ❌ | ❌ | Decoder | Any |
184185
185186> ** †** FlashInfer uses TRTLLM attention on Blackwell (SM100), which supports sinks. Disable via ` --attention-config.use_trtllm_attention=0 ` .
186187>
@@ -211,16 +212,16 @@ hardware and configuration.
211212MLA decode backends are selected using the standard
212213` -ac.backend=<BACKEND> ` argument (e.g., ` FLASHMLA ` , ` TRITON_MLA ` ).
213214
214- | Backend | Dtypes | KV Dtypes | Block Sizes | Head Sizes | Sink | Sparse | MM Prefix | DCP | Attention Types | Compute Cap. |
215- | ------- | ------ | --------- | ----------- | ---------- | ---- | ------ | --------- | --- | --------------- | ------------ |
216- | ` CUTLASS_MLA ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` | 128 | Any | ❌ | ❌ | ❌ | ✅ | Decoder | 10.x |
217- | ` FLASHINFER_MLA ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` | 32, 64 | Any | ❌ | ❌ | ❌ | ❌ | Decoder | 10.x |
218- | ` FLASHINFER_MLA_SPARSE ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` | 32, 64 | 576 | ❌ | ✅ | ❌ | ❌ | Decoder | 10.x |
219- | ` FLASHMLA ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` | 64 | Any | ❌ | ❌ | ❌ | ✅ | Decoder | 9.x-10.x |
220- | ` FLASHMLA_SPARSE ` | bf16 | ` auto ` , ` bfloat16 ` , ` fp8_ds_mla ` | 64 | 512, 576 | ❌ | ✅ | ❌ | ❌ | Decoder | 9.x-10.x |
221- | ` FLASH_ATTN_MLA ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` | %16 | Any | ❌ | ❌ | ❌ | ✅ | Decoder | 9.x |
222- | ` ROCM_AITER_MLA ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` , ` fp8_e5m2 ` | %1 | Any | ❌ | ❌ | ❌ | ❌ | Decoder | N/A |
223- | ` ROCM_AITER_MLA_SPARSE ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` | 1, 64 | Any | ❌ | ✅ | ❌ | ❌ | Decoder | N/A |
224- | ` ROCM_AITER_TRITON_MLA ` | fp16, bf16 | ` auto ` | Any | Any | ❌ | ❌ | ❌ | ❌ | Decoder | N/A |
225- | ` TRITON_MLA ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` | %16 | Any | ❌ | ❌ | ❌ | ✅ | Decoder | Any |
226- | ` XPU_MLA_SPARSE ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` | Any | 576 | ❌ | ✅ | ❌ | ❌ | Decoder | Any |
215+ | Backend | Dtypes | KV Dtypes | Block Sizes | Head Sizes | Sink | Non-Causal | Sparse | MM Prefix | DCP | Attention Types | Compute Cap. |
216+ | ------- | ------ | --------- | ----------- | ---------- | ---- | ---------- | ------ | --------- | --- | --------------- | ------------ |
217+ | ` CUTLASS_MLA ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` | 128 | Any | ❌ | ❌ | ❌ | ❌ | ✅ | Decoder | 10.x |
218+ | ` FLASHINFER_MLA ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` | 32, 64 | Any | ❌ | ❌ | ❌ | ❌ | ❌ | Decoder | 10.x |
219+ | ` FLASHINFER_MLA_SPARSE ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` | 32, 64 | 576 | ❌ | ❌ | ✅ | ❌ | ❌ | Decoder | 10.x |
220+ | ` FLASHMLA ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` | 64 | Any | ❌ | ❌ | ❌ | ❌ | ✅ | Decoder | 9.x-10.x |
221+ | ` FLASHMLA_SPARSE ` | bf16 | ` auto ` , ` bfloat16 ` , ` fp8_ds_mla ` | 64 | 512, 576 | ❌ | ❌ | ✅ | ❌ | ❌ | Decoder | 9.x-10.x |
222+ | ` FLASH_ATTN_MLA ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` | %16 | Any | ❌ | ❌ | ❌ | ❌ | ✅ | Decoder | 9.x |
223+ | ` ROCM_AITER_MLA ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` , ` fp8_e5m2 ` | %1 | Any | ❌ | ❌ | ❌ | ❌ | ❌ | Decoder | N/A |
224+ | ` ROCM_AITER_MLA_SPARSE ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` | 1, 64 | Any | ❌ | ❌ | ✅ | ❌ | ❌ | Decoder | N/A |
225+ | ` ROCM_AITER_TRITON_MLA ` | fp16, bf16 | ` auto ` | Any | Any | ❌ | ❌ | ❌ | ❌ | ❌ | Decoder | N/A |
226+ | ` TRITON_MLA ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` , ` fp8 ` , ` fp8_e4m3 ` | %16 | Any | ❌ | ❌ | ❌ | ❌ | ✅ | Decoder | Any |
227+ | ` XPU_MLA_SPARSE ` | fp16, bf16 | ` auto ` , ` float16 ` , ` bfloat16 ` | Any | 576 | ❌ | ❌ | ✅ | ❌ | ❌ | Decoder | Any |
0 commit comments