Skip to content

Commit c0de6ed

Browse files
authored
metal : fix FA support logic (ggml-org#21898)
1 parent 707c0b7 commit c0de6ed

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

ggml/src/ggml-metal/ggml-metal-device.m

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1160,6 +1160,23 @@ bool ggml_metal_device_supports_op(ggml_metal_device_t dev, const struct ggml_te
11601160
if (op->src[1]->type != op->src[2]->type) {
11611161
return false;
11621162
}
1163+
switch (op->src[1]->type) {
1164+
case GGML_TYPE_F32:
1165+
case GGML_TYPE_F16:
1166+
case GGML_TYPE_Q8_0:
1167+
case GGML_TYPE_Q4_0:
1168+
case GGML_TYPE_Q4_1:
1169+
case GGML_TYPE_Q5_0:
1170+
case GGML_TYPE_Q5_1:
1171+
break;
1172+
case GGML_TYPE_BF16:
1173+
if (!has_bfloat) {
1174+
return false;
1175+
}
1176+
break;
1177+
default:
1178+
return false;
1179+
}
11631180
return has_simdgroup_mm; // TODO: over-restricted for vec-kernels
11641181
case GGML_OP_SSM_CONV:
11651182
case GGML_OP_SSM_SCAN:

0 commit comments

Comments
 (0)