---
id: pr-flashinfer-3276
repo: flashinfer-ai/flashinfer
pr: 3276
title: 'fix(fmha_v2): fix FP8 V-scratch pipeline and varlen scheduler on SM90'
author: jimmyzho
date: '2026-05-14'
url: https://github.com/flashinfer-ai/flashinfer/pull/3276
source_category: upstream-code
architectures:
- sm100
- sm90
tags:
- TMA
- arch_pipeline
- attention_kv
- fp8
- gemm_quant
- hopper
- scheduler_autotune
- sm120
- sm90
- varlen scheduler
- warpspec
techniques:
- async-copy
- autotuning
- fine-grained-quantization
- pipeline-stages
- tile-scheduling
- warp-specialization
hardware_features:
- fp8
- hopper
- tma
kernel_types:
- attention
- gemm
- runtime
- scheduler
languages:
- cuda-cpp
captured_at: '2026-05-16'
status: merged
merge_sha: d625ed4d09b0a3d23d5d4fa3d08b94f2a8cbeeee
inclusion_reason: 'Extract the architecture assumption first: SM target, TMA/WGMMA/tcgen path, cluster use, and pipeline stages.'
changed_paths:
- csrc/fmha_v2/fmha/warpspec/circular_buffer.h
- csrc/fmha_v2/fmha/warpspec/dma.h
- csrc/fmha_v2/fmha/warpspec/kernel_traits.h
- flashinfer/jit/attention/fmha_v2/fmha_library.py
- flashinfer/prefill.py
- tests/attention/test_fmha_v2_prefill.py
artifact_dir: evidence/pull-bundles/flashinfer/gh-3276
head_ref_oid: 5c50d2ab278707158eee83c6f0e4b9c6eccc185f
---
# fix(fmha_v2): fix FP8 V-scratch pipeline and varlen scheduler on SM90

- Repository: `flashinfer-ai/flashinfer`
- PR: [3276](https://github.com/flashinfer-ai/flashinfer/pull/3276)
- Decision: `Extract the architecture assumption first: SM target, TMA/WGMMA/tcgen path, cluster use, and pipeline stages.`
- Reason: Extract the architecture assumption first: SM target, TMA/WGMMA/tcgen path, cluster use, and pipeline stages.

## Changed Paths

- `csrc/fmha_v2/fmha/warpspec/circular_buffer.h`
- `csrc/fmha_v2/fmha/warpspec/dma.h`
- `csrc/fmha_v2/fmha/warpspec/kernel_traits.h`
- `flashinfer/jit/attention/fmha_v2/fmha_library.py`
- `flashinfer/prefill.py`
- `tests/attention/test_fmha_v2_prefill.py`

## Evidence Bundle

`evidence/pull-bundles/flashinfer/gh-3276`
