add function to convert qnn error into string

This commit is contained in:
hongruichen 2024-07-19 22:51:17 +08:00
parent a607995f95
commit b1b5cc10b1
3 changed files with 47 additions and 2 deletions

View file

@ -108,13 +108,23 @@ public:
(uint32_t)_tensor_outputs.size(), _tensor_outputs.data() } };
auto error = _qnn_interface->qnn_graph_add_node(_graph_handle, op_config);
if (error != QNN_SUCCESS) {
QNN_LOG_ERROR("graphAddNode.error = %d\n", error);
auto *error_str = get_qnn_error_string(error);
if (error_str) {
QNN_LOG_ERROR("qnn_graph_add_node.error: %s\n", error_str);
} else {
QNN_LOG_ERROR("qnn_graph_add_node.error: %d\n", error);
}
return false;
}
error = _qnn_interface->qnn_graph_finalize(_graph_handle, nullptr, nullptr);
if (error != QNN_SUCCESS) {
QNN_LOG_ERROR("graphFinalize.error = %d\n", error);
auto *error_str = get_qnn_error_string(error);
if (error_str) {
QNN_LOG_ERROR("qnn_graph_finalize.error: %s\n", error_str);
} else {
QNN_LOG_ERROR("qnn_graph_finalize.error: %d\n", error);
}
return false;
}

View file

@ -152,4 +152,37 @@ const char *opname_from_ggmlop(enum ggml_op ggmlop) {
return nullptr;
}
const char *get_qnn_error_string(Qnn_ErrorHandle_t error) {
switch (error) {
case QNN_SUCCESS:
return "QNN_SUCCESS";
case QNN_GRAPH_ERROR_UNSUPPORTED_FEATURE:
return "QNN_GRAPH_ERROR_UNSUPPORTED_FEATURE";
case QNN_GRAPH_ERROR_MEM_ALLOC:
return "QNN_GRAPH_ERROR_MEM_ALLOC";
case QNN_GRAPH_ERROR_GENERAL:
return "QNN_GRAPH_ERROR_GENERAL";
case QNN_GRAPH_ERROR_INVALID_ARGUMENT:
return "QNN_GRAPH_ERROR_INVALID_ARGUMENT";
case QNN_GRAPH_ERROR_INVALID_HANDLE:
return "QNN_GRAPH_ERROR_INVALID_HANDLE";
case QNN_GRAPH_ERROR_GRAPH_DOES_NOT_EXIST:
return "QNN_GRAPH_ERROR_GRAPH_DOES_NOT_EXIST";
case QNN_GRAPH_ERROR_INVALID_NAME:
return "QNN_GRAPH_ERROR_INVALID_NAME";
case QNN_GRAPH_ERROR_INVALID_TENSOR:
return "QNN_GRAPH_ERROR_INVALID_TENSOR";
case QNN_GRAPH_ERROR_INVALID_OP_CONFIG:
return "QNN_GRAPH_ERROR_INVALID_OP_CONFIG";
case QNN_GRAPH_ERROR_SET_PROFILE:
return "QNN_GRAPH_ERROR_SET_PROFILE";
case QNN_GRAPH_ERROR_UNCONNECTED_NODE:
return "QNN_GRAPH_ERROR_UNCONNECTED_NODE";
case QNN_GRAPH_ERROR_CREATE_FAILED:
return "QNN_GRAPH_ERROR_CREATE_FAILED";
default:
return nullptr;
}
}
} // namespace qnn

View file

@ -27,6 +27,8 @@ void align_free(void *ptr);
const char *opname_from_ggmlop(enum ggml_op ggmlop);
const char *get_qnn_error_string(Qnn_ErrorHandle_t error);
inline int validate_tensor_version(const Qnn_Tensor_t &tensor) {
if (tensor.version != QNN_TENSOR_VERSION_1) {
QNN_LOG_WARN("validate_tensor_version() tensor %s, got unsupported version %d\n", tensor.v1.name,