rename
This commit is contained in:
parent
5fe7b87ba1
commit
9456bba121
1 changed files with 34 additions and 34 deletions
68
ggml-qnn.cpp
68
ggml-qnn.cpp
|
@ -2077,8 +2077,8 @@ private:
|
||||||
void operator=(ggml_qnn_tensor_readwrite&&) = delete;
|
void operator=(ggml_qnn_tensor_readwrite&&) = delete;
|
||||||
};
|
};
|
||||||
|
|
||||||
using ggml_qnn_tensor_reader = ggml_qnn_tensor_readwrite<QNN_TENSOR_TYPE_APP_READ>;
|
using ggml_qnn_tensor_output = ggml_qnn_tensor_readwrite<QNN_TENSOR_TYPE_APP_READ>;
|
||||||
using ggml_qnn_tensor_writer = ggml_qnn_tensor_readwrite<QNN_TENSOR_TYPE_APP_WRITE>;
|
using ggml_qnn_tensor_input = ggml_qnn_tensor_readwrite<QNN_TENSOR_TYPE_APP_WRITE>;
|
||||||
|
|
||||||
//TODO: this function can be removed later because there are duplicated codes with ggml_qnn_mul_mat
|
//TODO: this function can be removed later because there are duplicated codes with ggml_qnn_mul_mat
|
||||||
// keep it for illustrate how to implement a specified GGMPL OP using QNN API + QNN RPC
|
// keep it for illustrate how to implement a specified GGMPL OP using QNN API + QNN RPC
|
||||||
|
@ -2164,22 +2164,22 @@ static void ggml_qnn_add(ggml_backend_qnn_context * ctx, const ggml_tensor * src
|
||||||
QNN_LOG_INFO("create qnn graph handle with graph name %s ok\n", graph_name.c_str());
|
QNN_LOG_INFO("create qnn graph handle with graph name %s ok\n", graph_name.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
ggml_qnn_tensor_writer tensor_writer0(src0, graph_handle, ctx);
|
ggml_qnn_tensor_input tensor_input0(src0, graph_handle, ctx);
|
||||||
if (!tensor_writer0.is_valid()) {
|
if (!tensor_input0.is_valid()) {
|
||||||
goto failure;
|
goto failure;
|
||||||
}
|
}
|
||||||
ggml_qnn_tensor_writer tensor_writer1(src1, graph_handle, ctx);
|
ggml_qnn_tensor_input tensor_input1(src1, graph_handle, ctx);
|
||||||
if (!tensor_writer1.is_valid()) {
|
if (!tensor_input1.is_valid()) {
|
||||||
QNN_LOG_INFO("error = %d\n", error);
|
QNN_LOG_INFO("error = %d\n", error);
|
||||||
goto failure;
|
goto failure;
|
||||||
}
|
}
|
||||||
ggml_qnn_tensor_reader tensor_reader(dst, graph_handle, ctx);
|
ggml_qnn_tensor_output tensor_output(dst, graph_handle, ctx);
|
||||||
if (!tensor_reader.is_valid()) {
|
if (!tensor_output.is_valid()) {
|
||||||
goto failure;
|
goto failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
Qnn_Tensor_t tensor_inputs[] = {*tensor_writer0.get_qnn_tensor(), *tensor_writer1.get_qnn_tensor()};
|
Qnn_Tensor_t tensor_inputs[] = {*tensor_input0.get_qnn_tensor(), *tensor_input1.get_qnn_tensor()};
|
||||||
Qnn_Tensor_t tensor_outputs[] = {*tensor_reader.get_qnn_tensor()};
|
Qnn_Tensor_t tensor_outputs[] = {*tensor_output.get_qnn_tensor()};
|
||||||
Qnn_OpConfig_t op_config = {
|
Qnn_OpConfig_t op_config = {
|
||||||
(Qnn_OpConfigVersion_t) 1,
|
(Qnn_OpConfigVersion_t) 1,
|
||||||
.v1 = {"ggml_op_add",
|
.v1 = {"ggml_op_add",
|
||||||
|
@ -2215,18 +2215,18 @@ static void ggml_qnn_add(ggml_backend_qnn_context * ctx, const ggml_tensor * src
|
||||||
}
|
}
|
||||||
|
|
||||||
auto graph_item = std::make_tuple(graph_handle,
|
auto graph_item = std::make_tuple(graph_handle,
|
||||||
tensor_writer0.get_qnn_tensor(),
|
tensor_input0.get_qnn_tensor(),
|
||||||
tensor_writer1.get_qnn_tensor(),
|
tensor_input1.get_qnn_tensor(),
|
||||||
tensor_reader.get_qnn_tensor());
|
tensor_output.get_qnn_tensor());
|
||||||
instance->_qnn_graph_map[map_entry] = graph_item;
|
instance->_qnn_graph_map[map_entry] = graph_item;
|
||||||
} else {
|
} else {
|
||||||
auto & graph_item = instance->_qnn_graph_map[map_entry];
|
auto & graph_item = instance->_qnn_graph_map[map_entry];
|
||||||
ggml_qnn_tensor_writer tensor_writer0(src0, std::get<1>(graph_item), ctx);
|
ggml_qnn_tensor_input tensor_input0(src0, std::get<1>(graph_item), ctx);
|
||||||
ggml_qnn_tensor_writer tensor_writer1(src1, std::get<2>(graph_item), ctx);
|
ggml_qnn_tensor_input tensor_input1(src1, std::get<2>(graph_item), ctx);
|
||||||
ggml_qnn_tensor_reader tensor_reader(dst, std::get<3>(graph_item), ctx);
|
ggml_qnn_tensor_output tensor_output(dst, std::get<3>(graph_item), ctx);
|
||||||
|
|
||||||
Qnn_Tensor_t tensor_inputs[] = {*tensor_writer0.get_qnn_tensor(), *tensor_writer1.get_qnn_tensor()};
|
Qnn_Tensor_t tensor_inputs[] = {*tensor_input0.get_qnn_tensor(), *tensor_input1.get_qnn_tensor()};
|
||||||
Qnn_Tensor_t tensor_outputs[] = {*tensor_reader.get_qnn_tensor()};
|
Qnn_Tensor_t tensor_outputs[] = {*tensor_output.get_qnn_tensor()};
|
||||||
error = qnn_raw_interface.graphExecute(graph_handle,
|
error = qnn_raw_interface.graphExecute(graph_handle,
|
||||||
tensor_inputs,2,
|
tensor_inputs,2,
|
||||||
tensor_outputs,1,
|
tensor_outputs,1,
|
||||||
|
@ -2360,21 +2360,21 @@ static void ggml_qnn_mul_mat(ggml_backend_qnn_context * ctx,
|
||||||
goto failure;
|
goto failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
ggml_qnn_tensor_writer tensor_writer0(src0, graph_handle, ctx);
|
ggml_qnn_tensor_input tensor_input0(src0, graph_handle, ctx);
|
||||||
if (!tensor_writer0.is_valid()) {
|
if (!tensor_input0.is_valid()) {
|
||||||
goto failure;
|
goto failure;
|
||||||
}
|
}
|
||||||
ggml_qnn_tensor_writer tensor_writer1(src1, graph_handle, ctx);
|
ggml_qnn_tensor_input tensor_input1(src1, graph_handle, ctx);
|
||||||
if (!tensor_writer1.is_valid()) {
|
if (!tensor_input1.is_valid()) {
|
||||||
goto failure;
|
goto failure;
|
||||||
}
|
}
|
||||||
ggml_qnn_tensor_reader tensor_reader(dst, graph_handle, ctx);
|
ggml_qnn_tensor_output tensor_output(dst, graph_handle, ctx);
|
||||||
if (!tensor_reader.is_valid()) {
|
if (!tensor_output.is_valid()) {
|
||||||
goto failure;
|
goto failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
Qnn_Tensor_t tensor_inputs[] = {*tensor_writer0.get_qnn_tensor(), *tensor_writer1.get_qnn_tensor()};
|
Qnn_Tensor_t tensor_inputs[] = {*tensor_input0.get_qnn_tensor(), *tensor_input1.get_qnn_tensor()};
|
||||||
Qnn_Tensor_t tensor_outputs[] = {*tensor_reader.get_qnn_tensor()};
|
Qnn_Tensor_t tensor_outputs[] = {*tensor_output.get_qnn_tensor()};
|
||||||
Qnn_OpConfig_t op_config = {
|
Qnn_OpConfig_t op_config = {
|
||||||
(Qnn_OpConfigVersion_t) 1,
|
(Qnn_OpConfigVersion_t) 1,
|
||||||
.v1 = {"ggml_op_mul_mat",
|
.v1 = {"ggml_op_mul_mat",
|
||||||
|
@ -2410,18 +2410,18 @@ static void ggml_qnn_mul_mat(ggml_backend_qnn_context * ctx,
|
||||||
}
|
}
|
||||||
|
|
||||||
auto graph_item = std::make_tuple(graph_handle,
|
auto graph_item = std::make_tuple(graph_handle,
|
||||||
tensor_writer0.get_qnn_tensor(),
|
tensor_input0.get_qnn_tensor(),
|
||||||
tensor_writer1.get_qnn_tensor(),
|
tensor_input1.get_qnn_tensor(),
|
||||||
tensor_reader.get_qnn_tensor());
|
tensor_output.get_qnn_tensor());
|
||||||
instance->_qnn_graph_map[map_entry] = graph_item;
|
instance->_qnn_graph_map[map_entry] = graph_item;
|
||||||
} else {
|
} else {
|
||||||
auto & graph_item= instance->_qnn_graph_map[map_entry];
|
auto & graph_item= instance->_qnn_graph_map[map_entry];
|
||||||
ggml_qnn_tensor_writer tensor_writer0(src0, std::get<1>(graph_item), ctx);
|
ggml_qnn_tensor_input tensor_input0(src0, std::get<1>(graph_item), ctx);
|
||||||
ggml_qnn_tensor_writer tensor_writer1(src1, std::get<2>(graph_item), ctx);
|
ggml_qnn_tensor_input tensor_input1(src1, std::get<2>(graph_item), ctx);
|
||||||
ggml_qnn_tensor_reader tensor_reader(dst, std::get<3>(graph_item), ctx);
|
ggml_qnn_tensor_output tensor_output(dst, std::get<3>(graph_item), ctx);
|
||||||
|
|
||||||
Qnn_Tensor_t tensor_inputs[] = {*tensor_writer0.get_qnn_tensor(), *tensor_writer1.get_qnn_tensor()};
|
Qnn_Tensor_t tensor_inputs[] = {*tensor_input0.get_qnn_tensor(), *tensor_input1.get_qnn_tensor()};
|
||||||
Qnn_Tensor_t tensor_outputs[] = {*tensor_reader.get_qnn_tensor()};
|
Qnn_Tensor_t tensor_outputs[] = {*tensor_output.get_qnn_tensor()};
|
||||||
error = qnn_raw_interface.graphExecute(graph_handle,
|
error = qnn_raw_interface.graphExecute(graph_handle,
|
||||||
tensor_inputs, 2,
|
tensor_inputs, 2,
|
||||||
tensor_outputs, 1,
|
tensor_outputs, 1,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue