From 5c1e6d4905c4e7e6023caa5c1ca12fd9aafcd70c Mon Sep 17 00:00:00 2001 From: hongruichen Date: Tue, 29 Oct 2024 00:54:08 +0800 Subject: [PATCH] disable gelu in NPU --- ggml/src/ggml-qnn/backend-ops.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ggml/src/ggml-qnn/backend-ops.cpp b/ggml/src/ggml-qnn/backend-ops.cpp index d20069874a..c4207e62a3 100644 --- a/ggml/src/ggml-qnn/backend-ops.cpp +++ b/ggml/src/ggml-qnn/backend-ops.cpp @@ -573,8 +573,15 @@ bool ggml_qnn_supports_op(ggml_backend_qnn_device_context *ctx, const ggml_tenso } if (op->op == GGML_OP_UNARY) { - if (!kQnnUnaryOpsTable[kGgmlUnaryOpStart + ggml_get_unary_op(op)]) { - QNN_LOG_DEBUG("unsupported unary op %d", ggml_get_unary_op(op)); + const auto unary_op = ggml_get_unary_op(op); + if (unary_op == GGML_UNARY_OP_GELU && ctx->device == QNN_BACKEND_NPU) { + // TODO: fix this when NPU supports GELU + QNN_LOG_DEBUG("unsupported unary op GGML_UNARY_OP_GELU for NPU"); + return false; + } + + if (!kQnnUnaryOpsTable[kGgmlUnaryOpStart + unary_op]) { + QNN_LOG_DEBUG("unsupported unary op %d", unary_op); return false; }