char-fork/llama.cpp

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

Pascalvulkan: add cpy bf16 -> f32 pipelines (#22677)fcae601e4

char/aliceai-t5-moe
760 B25 linesraw
1#version 450
2
3#include "types.glsl"
4#include "generic_unary_head.glsl"
5
6layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in;
7
8void main() {
9    const uint idx = get_idx();
10
11    if (idx >= p.ne) {
12        return;
13    }
14
15#if defined(DATA_A_BF16)
16    data_d[get_doffset() + dst_idx(idx)] = D_TYPE(bf16_to_fp32(uint32_t(data_a[get_aoffset() + src0_idx(idx)])));
17#elif defined(DATA_D_BF16)
18    float f = float(data_a[get_aoffset() + src0_idx(idx)]);
19    data_d[get_doffset() + dst_idx(idx)] = D_TYPE(fp32_to_bf16(f));
20#elif !defined(OPTIMIZATION_ERROR_WORKAROUND)
21    data_d[get_doffset() + dst_idx(idx)] = D_TYPE(data_a[get_aoffset() + src0_idx(idx)]);
22#else
23    data_d[get_doffset() + dst_idx(idx)] = data_a[get_aoffset() + src0_idx(idx)];
24#endif
25}