pub fn reshape_and_cache_bf16k_turbo3v(
gpu: &dyn GpuBackend,
kernel: KernelHandle,
key: DevicePtr,
value: DevicePtr,
k_cache: DevicePtr,
v_cache: DevicePtr,
slot_mapping: DevicePtr,
num_tokens: u32,
num_kv_heads: u32,
head_dim: u32,
block_size: u32,
key_stride: u32,
value_stride: u32,
k_block_stride_bytes: u64,
v_block_stride_bytes: u64,
v_data_section_bytes: u64,
stream: u64,
) -> Result<()>Expand description
Write K/V to paged Bf16K + Turbo3V (TurboQuant+ safer-asym) cache.
K is written as raw BF16 (NHD contiguous), V as 3-bit Lloyd-Max + FP8 per-group scale with matched-norm correction. K and V pools have separate strides because K is 2 b/elem and V is ~0.5 b/elem + scale.
Kernel: reshape_and_cache_flash_bf16k_turbo3v(key, value, k_cache, v_cache, slot_mapping, num_kv_heads, head_dim, block_size, key_stride, value_stride, k_block_stride_bytes, v_block_stride_bytes, v_data_section_bytes)
Grid: (num_tokens, 1, 1) Block: (256, 1, 1)