From 31708e272a0d1fdfdf3447519ced1613362c01e9 Mon Sep 17 00:00:00 2001 From: AN Long Date: Sun, 1 Mar 2026 00:44:35 +0900 Subject: [PATCH] ggml : add GGML_OP_ADD1 for metal --- ggml/src/ggml-metal/ggml-metal-device.cpp | 2 ++ ggml/src/ggml-metal/ggml-metal-device.m | 1 + ggml/src/ggml-metal/ggml-metal-ops.cpp | 1 + 3 files changed, 4 insertions(+) diff --git a/ggml/src/ggml-metal/ggml-metal-device.cpp b/ggml/src/ggml-metal/ggml-metal-device.cpp index 06f3d80459..ff824b1abc 100644 --- a/ggml/src/ggml-metal/ggml-metal-device.cpp +++ b/ggml/src/ggml-metal/ggml-metal-device.cpp @@ -1423,6 +1423,7 @@ ggml_metal_pipeline_with_params ggml_metal_library_get_pipeline_bin(ggml_metal_l switch (op->op) { case GGML_OP_ADD: op_num = 0; break; + case GGML_OP_ADD1: op_num = 0; break; case GGML_OP_SUB: op_num = 1; break; case GGML_OP_MUL: op_num = 2; break; case GGML_OP_DIV: op_num = 3; break; @@ -1467,6 +1468,7 @@ ggml_metal_pipeline_with_params ggml_metal_library_get_pipeline_bin_one(ggml_met switch (op) { case GGML_OP_ADD: op_num = 0; break; + case GGML_OP_ADD1: op_num = 0; break; case GGML_OP_SUB: op_num = 1; break; case GGML_OP_MUL: op_num = 2; break; case GGML_OP_DIV: op_num = 3; break; diff --git a/ggml/src/ggml-metal/ggml-metal-device.m b/ggml/src/ggml-metal/ggml-metal-device.m index 3db7f12629..9bb0d4c65d 100644 --- a/ggml/src/ggml-metal/ggml-metal-device.m +++ b/ggml/src/ggml-metal/ggml-metal-device.m @@ -1063,6 +1063,7 @@ bool ggml_metal_device_supports_op(ggml_metal_device_t dev, const struct ggml_te case GGML_OP_CONCAT: return true; case GGML_OP_ADD: + case GGML_OP_ADD1: case GGML_OP_SUB: case GGML_OP_MUL: case GGML_OP_DIV: diff --git a/ggml/src/ggml-metal/ggml-metal-ops.cpp b/ggml/src/ggml-metal/ggml-metal-ops.cpp index 3d5db0b79f..596099ec3f 100644 --- a/ggml/src/ggml-metal/ggml-metal-ops.cpp +++ b/ggml/src/ggml-metal/ggml-metal-ops.cpp @@ -268,6 +268,7 @@ static int ggml_metal_op_encode_impl(ggml_metal_op_t ctx, int idx) { n_fuse = ggml_metal_op_concat(ctx, idx); } break; case GGML_OP_ADD: + case GGML_OP_ADD1: case GGML_OP_SUB: case GGML_OP_MUL: case GGML_OP_DIV: