---
id: pr-flashinfer-1117
repo: flashinfer-ai/flashinfer
pr: 1117
title: '[Feature] Support PDL for batch Prefill and Decode'
author: Edenzzzz
date: '2025-06-10'
url: https://github.com/flashinfer-ai/flashinfer/pull/1117
source_category: upstream-code
architectures:
- sm100
tags:
- attention
- decode
- fp8
- mla
- prefill
- quantization
techniques: []
hardware_features:
- fp8
kernel_types:
- attention
- decode
- mla
- prefill
- quantization
languages:
- cuda-cpp
captured_at: '2026-04-17'
status: merged
merge_sha: 2f01a9a35dad5781a058012b673c77fc240bab08
inclusion_reason: kernel file changes
changed_paths:
- 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
- csrc/batch_decode.cu
- csrc/batch_decode_customize_config.jinja
- csrc/batch_decode_jit_pybind.cu
- csrc/batch_decode_kernel_inst.jinja
- csrc/batch_decode_mla_config.jinja
- csrc/batch_decode_mla_cute_sm80.cu
- csrc/batch_decode_mla_plan.cu
- csrc/batch_decode_mla_pybind.cu
- csrc/batch_decode_mla_run.cu
- csrc/batch_prefill.cu
- csrc/batch_prefill_fp8_paged_sm90_kernel_inst.jinja
- csrc/batch_prefill_fp8_sm90.cu
- 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_jit_pybind.cu
- csrc/flashinfer_ops.cu
- csrc/flashinfer_ops_sm90.cu
- csrc/pod.cu
- csrc/pod_jit_pybind.cu
- csrc/pod_kernel_inst.jinja
- flashinfer/activation.py
- flashinfer/decode.py
- flashinfer/norm.py
- flashinfer/pod.py
- flashinfer/prefill.py
- flashinfer/sparse.py
- flashinfer/utils.py
- include/flashinfer/attention/cascade.cuh
- include/flashinfer/attention/decode.cuh
- include/flashinfer/attention/hopper/prefill_sm90.cuh
- include/flashinfer/attention/hopper/quantization/prefill_sm90.cuh
- include/flashinfer/attention/pod.cuh
- include/flashinfer/attention/prefill.cuh
- tests/test_mla_decode_kernel.py
- tvm_binding/batch_decode.cu
- tvm_binding/batch_decode_jit_tvm_binding.cu
- tvm_binding/batch_prefill.cu
- tvm_binding/batch_prefill_jit_tvm_binding.cu
- tvm_binding/batch_prefill_sm90.cu
- tvm_binding/batch_prefill_sm90_jit_tvm_binding.cu
artifact_dir: evidence/pull-bundles/flashinfer/gh-1117
head_ref_oid: 93ad07a491da2ee2e22e27cffdf147b6192bfc18
---
# [Feature] Support PDL for batch Prefill and Decode

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

## Changed Paths

- `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`
- `csrc/batch_decode.cu`
- `csrc/batch_decode_customize_config.jinja`
- `csrc/batch_decode_jit_pybind.cu`
- `csrc/batch_decode_kernel_inst.jinja`
- `csrc/batch_decode_mla_config.jinja`
- `csrc/batch_decode_mla_cute_sm80.cu`
- `csrc/batch_decode_mla_plan.cu`
- `csrc/batch_decode_mla_pybind.cu`
- `csrc/batch_decode_mla_run.cu`
- `csrc/batch_prefill.cu`
- `csrc/batch_prefill_fp8_paged_sm90_kernel_inst.jinja`
- `csrc/batch_prefill_fp8_sm90.cu`
- `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_jit_pybind.cu`
- `csrc/flashinfer_ops.cu`
- `csrc/flashinfer_ops_sm90.cu`
- `csrc/pod.cu`
- `csrc/pod_jit_pybind.cu`
- `csrc/pod_kernel_inst.jinja`
- `flashinfer/activation.py`
- `flashinfer/decode.py`
- `flashinfer/norm.py`
- `flashinfer/pod.py`
- `flashinfer/prefill.py`
- `flashinfer/sparse.py`
- `flashinfer/utils.py`
- `include/flashinfer/attention/cascade.cuh`
- `include/flashinfer/attention/decode.cuh`
- `include/flashinfer/attention/hopper/prefill_sm90.cuh`
- `include/flashinfer/attention/hopper/quantization/prefill_sm90.cuh`
- `include/flashinfer/attention/pod.cuh`
- `include/flashinfer/attention/prefill.cuh`
- `tests/test_mla_decode_kernel.py`
- `tvm_binding/batch_decode.cu`
- `tvm_binding/batch_decode_jit_tvm_binding.cu`
- `tvm_binding/batch_prefill.cu`
- `tvm_binding/batch_prefill_jit_tvm_binding.cu`
- `tvm_binding/batch_prefill_sm90.cu`
- `tvm_binding/batch_prefill_sm90_jit_tvm_binding.cu`

## Evidence Bundle

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