---
id: pr-flashinfer-765
repo: flashinfer-ai/flashinfer
pr: 765
title: 'feat: support deepseek prefill attention shape'
author: yzh119
date: '2025-02-01'
url: https://github.com/flashinfer-ai/flashinfer/pull/765
source_category: upstream-code
architectures:
- sm100
tags:
- attention
- decode
- epilogue-fusion
- prefill
techniques:
- epilogue-fusion
hardware_features: []
kernel_types:
- attention
- decode
- prefill
languages:
- cuda-cpp
captured_at: '2026-04-17'
status: merged
merge_sha: eb660de27bc8c1cd4b2f90508b0f7b1900d2d592
inclusion_reason: kernel file changes
changed_paths:
- aot_build_utils/generate.py
- aot_build_utils/generate_batch_paged_decode_inst.py
- aot_build_utils/generate_batch_paged_prefill_inst.py
- aot_build_utils/generate_batch_paged_prefill_sm90_inst.py
- aot_build_utils/generate_batch_ragged_prefill_inst.py
- aot_build_utils/generate_batch_ragged_prefill_sm90_inst.py
- aot_build_utils/generate_single_decode_inst.py
- aot_build_utils/generate_single_prefill_inst.py
- aot_build_utils/generate_single_prefill_sm90_inst.py
- aot_build_utils/generate_sm90.py
- csrc/batch_decode.cu
- csrc/batch_decode_config.inc
- csrc/batch_decode_customize_config.jinja
- csrc/batch_decode_jit_pybind.cu
- csrc/batch_decode_kernel_inst.jinja
- csrc/batch_prefill.cu
- csrc/batch_prefill_config.inc
- csrc/batch_prefill_customize_config.jinja
- csrc/batch_prefill_jit_pybind.cu
- csrc/batch_prefill_paged_kernel_inst.jinja
- csrc/batch_prefill_paged_sm90_kernel_inst.jinja
- csrc/batch_prefill_ragged_kernel_inst.jinja
- csrc/batch_prefill_ragged_sm90_kernel_inst.jinja
- csrc/batch_prefill_sm90.cu
- csrc/batch_prefill_sm90_config.inc
- csrc/batch_prefill_sm90_customize_config.jinja
- csrc/batch_prefill_sm90_jit_pybind.cu
- csrc/flashinfer_ops.cu
- csrc/flashinfer_ops_sm90.cu
- csrc/single_decode.cu
- csrc/single_decode_config.inc
- csrc/single_decode_customize_config.jinja
- csrc/single_decode_kernel_inst.jinja
- csrc/single_prefill.cu
- csrc/single_prefill_config.inc
- csrc/single_prefill_customize_config.jinja
- csrc/single_prefill_kernel_inst.jinja
- csrc/single_prefill_sm90.cu
- csrc/single_prefill_sm90_config.inc
- csrc/single_prefill_sm90_customize_config.jinja
- csrc/single_prefill_sm90_kernel_inst.jinja
- custom_backend.py
- flashinfer/decode.py
- flashinfer/jit/attention.py
- flashinfer/prefill.py
- flashinfer/sparse.py
- include/flashinfer/attention/decode.cuh
- include/flashinfer/attention/default_decode_params.cuh
- include/flashinfer/attention/default_prefill_params.cuh
- include/flashinfer/attention/hopper/attention_updater.cuh
- include/flashinfer/attention/hopper/default_params.cuh
- include/flashinfer/attention/hopper/epilogue.cuh
- include/flashinfer/attention/hopper/kernel_traits.cuh
- include/flashinfer/attention/hopper/mainloop.cuh
- include/flashinfer/attention/hopper/mainloop_mma.cuh
- include/flashinfer/attention/hopper/prefill_sm90.cuh
- include/flashinfer/attention/hopper/sparse_mainloop.cuh
- include/flashinfer/attention/prefill.cuh
- include/flashinfer/attention/scheduler.cuh
- include/flashinfer/permuted_smem.cuh
- setup.py
- src/flashinfer_ops.cuh
- tests/jit_utils.py
- tests/test_block_sparse.py
- tests/test_deepseek_prefill.py
- tests/test_jit_example.py
head_ref_oid: 0c9b6189b5ab581ac104546406064e57ec5b1e75
artifact_dir: evidence/pull-bundles/flashinfer/gh-765
---
# feat: support deepseek prefill attention shape

- Repository: `flashinfer-ai/flashinfer`
- PR: [765](https://github.com/flashinfer-ai/flashinfer/pull/765)
- Decision: `kernel file changes`
- Reason: kernel file changes

## Changed Paths

- `aot_build_utils/generate.py`
- `aot_build_utils/generate_batch_paged_decode_inst.py`
- `aot_build_utils/generate_batch_paged_prefill_inst.py`
- `aot_build_utils/generate_batch_paged_prefill_sm90_inst.py`
- `aot_build_utils/generate_batch_ragged_prefill_inst.py`
- `aot_build_utils/generate_batch_ragged_prefill_sm90_inst.py`
- `aot_build_utils/generate_single_decode_inst.py`
- `aot_build_utils/generate_single_prefill_inst.py`
- `aot_build_utils/generate_single_prefill_sm90_inst.py`
- `aot_build_utils/generate_sm90.py`
- `csrc/batch_decode.cu`
- `csrc/batch_decode_config.inc`
- `csrc/batch_decode_customize_config.jinja`
- `csrc/batch_decode_jit_pybind.cu`
- `csrc/batch_decode_kernel_inst.jinja`
- `csrc/batch_prefill.cu`
- `csrc/batch_prefill_config.inc`
- `csrc/batch_prefill_customize_config.jinja`
- `csrc/batch_prefill_jit_pybind.cu`
- `csrc/batch_prefill_paged_kernel_inst.jinja`
- `csrc/batch_prefill_paged_sm90_kernel_inst.jinja`
- `csrc/batch_prefill_ragged_kernel_inst.jinja`
- `csrc/batch_prefill_ragged_sm90_kernel_inst.jinja`
- `csrc/batch_prefill_sm90.cu`
- `csrc/batch_prefill_sm90_config.inc`
- `csrc/batch_prefill_sm90_customize_config.jinja`
- `csrc/batch_prefill_sm90_jit_pybind.cu`
- `csrc/flashinfer_ops.cu`
- `csrc/flashinfer_ops_sm90.cu`
- `csrc/single_decode.cu`
- `csrc/single_decode_config.inc`
- `csrc/single_decode_customize_config.jinja`
- `csrc/single_decode_kernel_inst.jinja`
- `csrc/single_prefill.cu`
- `csrc/single_prefill_config.inc`
- `csrc/single_prefill_customize_config.jinja`
- `csrc/single_prefill_kernel_inst.jinja`
- `csrc/single_prefill_sm90.cu`
- `csrc/single_prefill_sm90_config.inc`
- `csrc/single_prefill_sm90_customize_config.jinja`
- `csrc/single_prefill_sm90_kernel_inst.jinja`
- `custom_backend.py`
- `flashinfer/decode.py`
- `flashinfer/jit/attention.py`
- `flashinfer/prefill.py`
- `flashinfer/sparse.py`
- `include/flashinfer/attention/decode.cuh`
- `include/flashinfer/attention/default_decode_params.cuh`
- `include/flashinfer/attention/default_prefill_params.cuh`
- `include/flashinfer/attention/hopper/attention_updater.cuh`
- `include/flashinfer/attention/hopper/default_params.cuh`
- `include/flashinfer/attention/hopper/epilogue.cuh`
- `include/flashinfer/attention/hopper/kernel_traits.cuh`
- `include/flashinfer/attention/hopper/mainloop.cuh`
- `include/flashinfer/attention/hopper/mainloop_mma.cuh`
- `include/flashinfer/attention/hopper/prefill_sm90.cuh`
- `include/flashinfer/attention/hopper/sparse_mainloop.cuh`
- `include/flashinfer/attention/prefill.cuh`
- `include/flashinfer/attention/scheduler.cuh`
- `include/flashinfer/permuted_smem.cuh`
- `setup.py`
- `src/flashinfer_ops.cuh`
- `tests/jit_utils.py`
- `tests/test_block_sparse.py`
- `tests/test_deepseek_prefill.py`
- `tests/test_jit_example.py`

## Evidence Bundle

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