From ce3d09e5f2bfa95ca448e7cc053040108d0373e3 Mon Sep 17 00:00:00 2001 From: hongruichen Date: Fri, 19 Jul 2024 10:13:56 +0800 Subject: [PATCH] tried fix the add node error 6005 --- ggml/src/ggml-qnn.cpp | 6 +----- ggml/src/ggml-qnn/graph.hpp | 6 ++++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/ggml/src/ggml-qnn.cpp b/ggml/src/ggml-qnn.cpp index 3f228935c..d62a8074e 100644 --- a/ggml/src/ggml-qnn.cpp +++ b/ggml/src/ggml-qnn.cpp @@ -319,10 +319,6 @@ GGML_CALL static ggml_status ggml_backend_qnn_graph_compute(ggml_backend_t backe GGML_CALL static bool ggml_backend_qnn_supports_op(ggml_backend_t backend, const ggml_tensor *op) { GGML_UNUSED(backend); - if (op->op == GGML_OP_NONE) { - return true; - } - if (op->op == GGML_OP_UNARY) { if (!qnn::ggml_qnn_unary_op_array()[qnn::kGgmlUnaryOpStart + ggml_get_unary_op(op)]) { QNN_LOG_DEBUG("unsupported unary op %d", ggml_get_unary_op(op)); @@ -333,7 +329,7 @@ GGML_CALL static bool ggml_backend_qnn_supports_op(ggml_backend_t backend, const QNN_LOG_DEBUG("src0 is nullptr"); return false; } - } else { + } else if (op->op != GGML_OP_NONE) { if (!qnn::ggml_qnn_unary_op_array()[op->op] && !qnn::ggml_qnn_binary_op_array()[op->op]) { QNN_LOG_DEBUG("unsupported op %d", op->op); return false; diff --git a/ggml/src/ggml-qnn/graph.hpp b/ggml/src/ggml-qnn/graph.hpp index 462ed9203..5fe5dc83d 100644 --- a/ggml/src/ggml-qnn/graph.hpp +++ b/ggml/src/ggml-qnn/graph.hpp @@ -102,8 +102,9 @@ public: _tensor_outputs = tensor_outputs; Qnn_OpConfig_t op_config = { /*.version = */ QNN_OPCONFIG_VERSION_1, - /*.v1 = */ { _graph_name.c_str(), QNN_OP_PACKAGE_NAME_QTI_AISW, op_name.c_str(), 0, - nullptr, (uint32_t)_tensor_inputs.size(), _tensor_inputs.data(), + /*.v1 = */ { _graph_name.c_str(), QNN_OP_PACKAGE_NAME_QTI_AISW, op_name.c_str(), + (uint32_t)_param_types.size(), _param_types.data(), + (uint32_t)_tensor_inputs.size(), _tensor_inputs.data(), (uint32_t)_tensor_outputs.size(), _tensor_outputs.data() } }; auto error = _qnn_interface->qnn_graph_add_node(_graph_handle, op_config); if (error != QNN_SUCCESS) { @@ -154,6 +155,7 @@ private: Qnn_GraphHandle_t _graph_handle = nullptr; std::array _tensor_inputs; std::array _tensor_outputs; + std::vector _param_types; ggml_qnn_graph(const ggml_qnn_graph &) = delete; void operator=(const ggml_qnn_graph &) = delete;