pub fn dequant_turbo3_block_to_bf16(
raw: &[u8],
bs: usize,
nkv: usize,
hd: usize,
out: &mut [bf16],
)Expand description
Dequant a Turbo3 (3-bit packed) KV block to BF16.
Layout per block:
data: bs * nkv * (hd * 3 / 8) bytes — 8 values packed in 3 bytes.
scales: bs * nkv * (hd / NVFP4_GROUP_SIZE) bytes.
Bit packing for 8 vals v0..v7 in 3 bytes b0,b1,b2 (mirrors
kernels/gb10/common/paged_decode_attn_turbo3.cu:67-75):
v0 = b0 & 0x7
v1 = (b0 >> 3) & 0x7
v2 = ((b0 >> 6) | (b1 << 2)) & 0x7
v3 = (b1 >> 1) & 0x7
v4 = (b1 >> 4) & 0x7
v5 = ((b1 >> 7) | (b2 << 1)) & 0x7
v6 = (b2 >> 2) & 0x7
v7 = (b2 >> 5) & 0x7