cera 0.5.0

Rust-native LLM inference engine
Documentation
enable f16;

@binding(0) @group(0) var<storage, read> a_buf_0 : array<f16>;

@binding(1) @group(0) var<storage, read> b_buf_0 : array<f16>;

@binding(2) @group(0) var<storage, read_write> c_buf_0 : array<f32>;

@compute
@workgroup_size(32, 1, 1)
fn coopmat_probe(@builtin(local_invocation_id) tid_0 : vec3<u32>)
{
    var t_0 : u32 = tid_0.x;
    if(t_0 < u32(64))
    {
        var _S1 : u32 = t_0 / u32(8);
        var _S2 : u32 = t_0 % u32(8);
        var i_0 : u32 = u32(0);
        var acc_0 : f32 = 0.0f;
        for(;;)
        {
            if(i_0 < u32(8))
            {
            }
            else
            {
                break;
            }
            var acc_1 : f32 = acc_0 + f32(a_buf_0[_S1 * u32(8) + i_0]) * f32(b_buf_0[i_0 * u32(8) + _S2]);
            i_0 = i_0 + u32(1);
            acc_0 = acc_1;
        }
        c_buf_0[t_0] = acc_0;
    }
    return;
}