From: Georgi Gerganov Date: Mon, 4 Nov 2024 11:49:34 +0000 (+0200) Subject: metal : simplify f16 and f32 dequant kernels (llama/0) X-Git-Tag: upstream/1.7.4~251 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=939d36fb4c2703af72feae63be502ffd5dab513a;p=pkg%2Fggml%2Fsources%2Fwhisper.cpp metal : simplify f16 and f32 dequant kernels (llama/0) --- diff --git a/ggml/src/ggml-metal.metal b/ggml/src/ggml-metal.metal index 3eb97663..ff9d3749 100644 --- a/ggml/src/ggml-metal.metal +++ b/ggml/src/ggml-metal.metal @@ -19,18 +19,12 @@ constexpr constant static float kvalues_iq4nl_f[16] = { // NOTE: this is not dequantizing - we are simply fitting the template template void dequantize_f32(device const float4x4 * src, short il, thread type4x4 & reg) { - float4x4 temp = *(((device float4x4 *)src)); - for (int i = 0; i < 16; i++){ - reg[i/4][i%4] = temp[i/4][i%4]; - } + reg = (type4x4)(*src); } template void dequantize_f16(device const half4x4 * src, short il, thread type4x4 & reg) { - half4x4 temp = *(((device half4x4 *)src)); - for (int i = 0; i < 16; i++){ - reg[i/4][i%4] = temp[i/4][i%4]; - } + reg = (type4x4)(*src); } template