]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
metal : fix FA support logic (#21898)
authorGeorgi Gerganov <redacted>
Tue, 14 Apr 2026 14:32:29 +0000 (17:32 +0300)
committerGitHub <redacted>
Tue, 14 Apr 2026 14:32:29 +0000 (17:32 +0300)
ggml/src/ggml-metal/ggml-metal-device.m

index 4c192da650fb512700e22e916031ebe2f5c8aec2..effe666a6918c4e145a5d3de2f713fb6b7315c6e 100644 (file)
@@ -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: