char-fork/llama.cpp

git clone https://git.t4t.associates/char-fork/llama.cpp

Reese Levineggml-webgpu: FlashAttention refactor + standardize quantization support (#23834)e8c54893f

char/aliceai-t5-moe
780 B21 linesraw
1#ifdef U32_DEQUANT_HELPERS
2fn dequant_q4_0_packed_to_shmem(q_packed: u32, d: f16, dst_idx: u32) {
3    let scale = QUANT_OUT_TYPE(d);
4    for (var k = 0u; k < 4u; k++) {
5        let q_byte = get_byte(q_packed, k);
6        let q_hi = (QUANT_OUT_TYPE((q_byte >> 4) & 0xFu) - QUANT_OUT_TYPE(8.0)) * scale;
7        let q_lo = (QUANT_OUT_TYPE(q_byte & 0xFu) - QUANT_OUT_TYPE(8.0)) * scale;
8        QUANT_SHMEM[dst_idx + k] = q_lo;
9        QUANT_SHMEM[dst_idx + k + 16u] = q_hi;
10    }
11}
12
13fn dequant_q8_0_packed_to_shmem(q_packed: u32, d: f16, dst_idx: u32) {
14    let scale = QUANT_OUT_TYPE(d);
15    for (var k = 0u; k < 4u; k++) {
16        let q_byte = get_byte_i32(q_packed, k);
17        let q_val = QUANT_OUT_TYPE(q_byte) * scale;
18        QUANT_SHMEM[dst_idx + k] = q_val;
19    }
20}
21#endif