1
2// vk_op_sum_rows_push_constants
3layout (push_constant) uniform parameter
4{
5 uint n_cols;
6 uint ne01, ne02;
7 uint nb01, nb02, nb03;
8 uint nb11, nb12, nb13;
9 float weight;
10 uint misalign_offsets;
11 uint ne0_12mp, ne0_12L;
12 uint ne0_1mp, ne0_1L;
13} p;
14
15uint get_aoffset() { return p.misalign_offsets >> 16; }
16uint get_doffset() { return p.misalign_offsets & 0xFFFF; }
17
18// see init_fastdiv_values in ggml-vulkan.cpp
19uint fastdiv(uint n, uint mp, uint L) {
20 uint msbs, lsbs;
21 // msbs = mulhi(n, mp)
22 umulExtended(n, mp, msbs, lsbs);
23 return (msbs + n) >> L;
24}
25