char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
8fe90e1fb
char/aliceai-t5-moe
1#version 450 2 3#include "dequant_head.glsl" 4 5layout (local_size_x = 256, local_size_y = 1, local_size_z = 1) in; 6 7layout (binding = 0) readonly buffer A {block_tq1_0 data_a[];}; 8layout (binding = 1) writeonly buffer D {D_TYPE data_b[];}; 9 10void main() { 11 const uint i = gl_GlobalInvocationID.x * 4; 12 13 if (i >= p.nel) { 14 return; 15 } 16 17 const uint ib = i / QUANT_K_TQ1_0; 18 const float d = float(data_a[ib].d); 19 20 [[unroll]] for (uint j = 0; j < 4 && (i + j) < p.nel; ++j) { 21 const uint e = (i + j) % QUANT_K_TQ1_0; 22 const uint bidx = tq1_0_byte_of(e); 23 const uint qbyte = uint(bidx < 48u ? data_a[ib].qs[bidx] 24 : data_a[ib].qh[bidx - 48u]); 25 const uint xi = tq1_0_trit(qbyte, tq1_0_digit_of(e)); 26 data_b[i + j] = D_TYPE(d * (float(xi) - 1.0f)); 27 } 28}