char-fork/llama.cpp

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

Masato Nakasakavulkan: Convert FILL to distribute workgroups in 2D to avoid exceeding maxComputeWorkGroupCount (#28592)22397c31a

char/aliceai-t5-moe
594 B21 linesraw
1#version 450
2
3#include "generic_head.glsl"
4#include "types.glsl"
5
6layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in;
7
8layout (binding = 0) writeonly buffer D {D_TYPE data_d[];};
9
10void main() {
11    // 2D grid flattening: each x workgroup covers gl_WorkGroupSize.x elements,
12    // each y workgroup covers gl_NumWorkGroups.x * gl_WorkGroupSize.x elements.
13    const uint i = (gl_GlobalInvocationID.y * gl_NumWorkGroups.x * gl_WorkGroupSize.x) + gl_GlobalInvocationID.x;
14
15    if (i >= p.KX) {
16        return;
17    }
18
19    // p.param1 = fill value
20    data_d[i] = D_TYPE(p.param1);
21}