paged_decode_attn_splitk_bf16

Function paged_decode_attn_splitk_bf16 

Source
pub fn paged_decode_attn_splitk_bf16(
    gpu: &dyn GpuBackend,
    kernel: KernelHandle,
    q: DevicePtr,
    k_cache: DevicePtr,
    v_cache: DevicePtr,
    workspace: DevicePtr,
    block_tables: DevicePtr,
    seq_lens: DevicePtr,
    max_blocks_per_seq: u32,
    num_q_heads: u32,
    num_kv_heads: u32,
    head_dim: u32,
    block_size: u32,
    inv_sqrt_d: f32,
    num_splits: u32,
    q_stride: u32,
    num_seqs: u32,
    sliding_window: u32,
    stream: u64,
) -> Result<()>
Expand description

Split-K paged decode attention (BF16 KV cache) — Hopper twin (#928).

The capability run_paged_decode.rs did not have: its BF16 arm carried an explicit “no Split-K (not implemented for BF16 yet)” branch, so the --kv-high-precision-layers auto layers ran one CTA per (q_head, seq) at any occupancy. Kernel: kernels/hopper/common/paged_decode_bf16_splitk_hopper.cu.

No cache_stride: the BF16 cache is the contiguous [blocks, block_size, kv_heads, head_dim] layout and the kernel derives the page stride, matching paged_decode_attn_bf16 next door.

Grid: (num_q_heads, num_splits, num_seqs) Block: (256, 1, 1)