@@ -56,35 +56,29 @@ constexpr const qnn_op_caps_t kOpCaps[] = {
56
56
{
57
57
// GGML_OP_ADD
58
58
QNN_OP_ELEMENT_WISE_ADD, // qnn_op_name
59
- generic_get_op_desc, // get_desc
60
59
},
61
60
{}, // GGML_OP_ADD1
62
61
{}, // GGML_OP_ACC
63
62
{
64
63
// GGML_OP_SUB
65
64
QNN_OP_ELEMENT_WISE_SUBTRACT, // qnn_op_name
66
- generic_get_op_desc, // get_desc
67
65
},
68
66
{
69
67
// GGML_OP_MUL
70
68
QNN_OP_ELEMENT_WISE_MULTIPLY, // qnn_op_name
71
- generic_get_op_desc, // get_desc
72
69
},
73
70
{
74
71
// GGML_OP_DIV
75
72
QNN_OP_ELEMENT_WISE_DIVIDE, // qnn_op_name
76
- generic_get_op_desc, // get_desc
77
73
},
78
74
{}, // GGML_OP_SQR
79
75
{
80
76
// GGML_OP_SQRT
81
77
QNN_OP_ELEMENT_WISE_SQUARE_ROOT, // qnn_op_name
82
- generic_get_op_desc, // get_desc
83
78
},
84
79
{
85
80
// GGML_OP_LOG
86
81
QNN_OP_ELEMENT_WISE_LOG, // qnn_op_name
87
- generic_get_op_desc, // get_desc
88
82
},
89
83
{}, // GGML_OP_SIN
90
84
{}, // GGML_OP_COS
@@ -108,8 +102,7 @@ constexpr const qnn_op_caps_t kOpCaps[] = {
108
102
{}, // GGML_OP_GROUP_NORM
109
103
{
110
104
// GGML_OP_MUL_MAT
111
- QNN_OP_MAT_MUL, // qnn_op_name
112
- generic_get_op_desc, // get_desc
105
+ QNN_OP_MAT_MUL, // qnn_op_name
113
106
},
114
107
{}, // GGML_OP_MUL_MAT_ID
115
108
{}, // GGML_OP_OUT_PROD
@@ -119,8 +112,7 @@ constexpr const qnn_op_caps_t kOpCaps[] = {
119
112
{}, // GGML_OP_CONT
120
113
{
121
114
// GGML_OP_RESHAPE
122
- QNN_OP_RESHAPE, // qnn_op_name
123
- generic_get_op_desc, // get_desc
115
+ QNN_OP_RESHAPE, // qnn_op_name
124
116
},
125
117
{}, // GGML_OP_VIEW
126
118
{}, // GGML_OP_PERMUTE
@@ -190,8 +182,7 @@ constexpr const qnn_op_caps_t kOpCaps[] = {
190
182
{}, // GGML_UNARY_OP_SIGMOID
191
183
{
192
184
// GGML_UNARY_OP_GELU
193
- QNN_OP_GELU, // qnn_op_name
194
- generic_get_op_desc, // get_desc
185
+ QNN_OP_GELU, // qnn_op_name
195
186
},
196
187
{}, // GGML_UNARY_OP_GELU_QUICK
197
188
{}, // GGML_UNARY_OP_SILU
@@ -201,14 +192,10 @@ constexpr const qnn_op_caps_t kOpCaps[] = {
201
192
};
202
193
203
194
static_assert (kOpCaps [GGML_OP_NONE].get_desc == nullptr , " GGML_OP_NONE should not have get_desc function" );
204
- static_assert (kOpCaps [GGML_OP_ADD].get_desc == generic_get_op_desc,
205
- " GGML_OP_ADD does not have element_wise_op_dims function" );
206
- static_assert (kOpCaps [GGML_OP_MUL_MAT].get_desc == generic_get_op_desc,
207
- " GGML_OP_MUL_MAT does not have element_wise_op_dims function" );
208
- static_assert (kOpCaps [GGML_OP_MUL].get_desc == generic_get_op_desc,
209
- " GGML_OP_MUL does not have element_wise_op_dims function" );
210
- static_assert (kOpCaps [GGML_OP_LOG].get_desc == generic_get_op_desc,
211
- " GGML_OP_LOG does not have element_wise_op_dims function" );
195
+ static_assert (kOpCaps [GGML_OP_ADD].qnn_op_name, " GGML_OP_ADD does not have qnn_op_name in the kOpCaps table" );
196
+ static_assert (kOpCaps [GGML_OP_MUL_MAT].qnn_op_name, " GGML_OP_MUL_MAT does not have qnn_op_name in the kOpCaps table" );
197
+ static_assert (kOpCaps [GGML_OP_MUL].qnn_op_name, " GGML_OP_MUL does not have qnn_op_name in the kOpCaps table" );
198
+ static_assert (kOpCaps [GGML_OP_LOG].qnn_op_name, " GGML_OP_LOG does not have qnn_op_name in the kOpCaps table" );
212
199
static_assert (std::size(kOpCaps ) == (GGML_OP_COUNT + GGML_UNARY_OP_COUNT),
213
200
" GGML_OP_COUNT does not match the size of the kOpCaps table" );
214
201
@@ -424,8 +411,11 @@ void get_qnn_op_desc(const ggml_tensor * op, bool append_dimensions, std::string
424
411
auto op_index = get_qnn_op_index (op);
425
412
GGML_ASSERT (op_index < std::size (kOpCaps ));
426
413
auto get_desc = kOpCaps [op_index].get_desc ;
427
- GGML_ASSERT (get_desc);
428
- get_desc (op, append_dimensions, output);
414
+ if (get_desc) {
415
+ get_desc (op, append_dimensions, output);
416
+ } else {
417
+ generic_get_op_desc (op, append_dimensions, output);
418
+ }
429
419
}
430
420
431
421
std::shared_ptr<ggml_qnn_op_config> create_op (const ggml_tensor * op, const std::string & name,
0 commit comments