From: Georgi Gerganov Date: Tue, 14 Apr 2026 14:32:29 +0000 (+0300) Subject: metal : fix FA support logic (llama/21898) X-Git-Tag: upstream/1.9.2~589 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=08e412c862ca2274aedb16f314376a81cd32b9a6;p=pkg%2Fggml%2Fsources%2Fwhisper.cpp metal : fix FA support logic (llama/21898) --- diff --git a/ggml/src/ggml-metal/ggml-metal-device.m b/ggml/src/ggml-metal/ggml-metal-device.m index 4c192da6..effe666a 100644 --- a/ggml/src/ggml-metal/ggml-metal-device.m +++ b/ggml/src/ggml-metal/ggml-metal-device.m @@ -1160,6 +1160,23 @@ bool ggml_metal_device_supports_op(ggml_metal_device_t dev, const struct ggml_te if (op->src[1]->type != op->src[2]->type) { return false; } + switch (op->src[1]->type) { + case GGML_TYPE_F32: + case GGML_TYPE_F16: + case GGML_TYPE_Q8_0: + case GGML_TYPE_Q4_0: + case GGML_TYPE_Q4_1: + case GGML_TYPE_Q5_0: + case GGML_TYPE_Q5_1: + break; + case GGML_TYPE_BF16: + if (!has_bfloat) { + return false; + } + break; + default: + return false; + } return has_simdgroup_mm; // TODO: over-restricted for vec-kernels case GGML_OP_SSM_CONV: case GGML_OP_SSM_SCAN: