Spaces:
Running on Zero
Running on Zero
| #version 450 | |
| #include "types.glsl" | |
| #include "generic_unary_head.glsl" | |
| layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in; | |
| void main() { | |
| const uint idx = get_idx(); | |
| if (idx >= p.ne) { | |
| return; | |
| } | |
| #if defined(DATA_A_BF16) | |
| data_d[get_doffset() + dst_idx(idx)] = D_TYPE(bf16_to_fp32(uint32_t(data_a[get_aoffset() + src0_idx(idx)]))); | |
| #elif defined(DATA_D_BF16) | |
| float f = float(data_a[get_aoffset() + src0_idx(idx)]); | |
| data_d[get_doffset() + dst_idx(idx)] = D_TYPE(fp32_to_bf16(f)); | |
| #elif !defined(OPTIMIZATION_ERROR_WORKAROUND) | |
| data_d[get_doffset() + dst_idx(idx)] = D_TYPE(data_a[get_aoffset() + src0_idx(idx)]); | |
| #else | |
| data_d[get_doffset() + dst_idx(idx)] = data_a[get_aoffset() + src0_idx(idx)]; | |
| #endif | |
| } | |