#version 450 #include "types.comp" #include "generic_unary_head.comp" 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_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 }