pub fn prefill_attention_paged_dflash_bf16_indirect(
gpu: &dyn GpuBackend,
kernel: KernelHandle,
q: DevicePtr,
k_cache: DevicePtr,
v_cache: DevicePtr,
output: DevicePtr,
block_table: DevicePtr,
q_len: u32,
kv_len_q_offset_dev: DevicePtr,
num_q_heads: u32,
num_kv_heads: u32,
head_dim: u32,
cache_block_size: u32,
sliding_window: u32,
inv_sqrt_d: f32,
stream: u64,
) -> Result<()>Expand description
2026-09-25: prefill_attention_paged_dflash with kv_len, q_offset and
q_rope_pos read on the device from kv_len_q_offset_dev (three u32 at byte
offsets 0, 4 and 8) instead of passed as scalars, so a captured CUDA graph
can replay the launch with values the host writes before each replay.
q_offset addresses the cache; q_rope_pos is the absolute query position
the causal and sliding-window masks compare against. The kernel applies no
RoPE. Kernel: attn_prefill_paged_indirect.