@@ -820,10 +820,16 @@ static bool ggml_tsavorite_supports_op(const struct ggml_backend_tsavorite_devic
820820 case GGML_OP_SQRT:
821821 case GGML_OP_SQR:
822822 case GGML_OP_SIN:
823+ case GGML_OP_RESHAPE:
824+ case GGML_OP_VIEW:
825+ case GGML_OP_PERMUTE:
826+ case GGML_OP_TRANSPOSE:
827+
823828 case GGML_OP_RMS_NORM:
824- #ifdef GGML_TARGET_POSIX
825- case GGML_OP_SOFT_MAX:
826- #endif /* GGML_TARGET_POSIX */
829+
830+ #ifdef GGML_TARGET_POSIX_DEBUG
831+ case GGML_OP_SOFT_MAX:
832+ #endif /* GGML_TARGET_POSIX_DEBUG */
827833 break ;
828834 case GGML_OP_GLU:
829835 {
@@ -1064,6 +1070,20 @@ static enum ggml_status ggml_tsavorite_graph_compute(ggml_backend_t backend,
10641070 }
10651071 num_of_input_tensors = TSAVORITE_TWO_INPUT_TENSORS;
10661072 break ;
1073+ case GGML_OP_RESHAPE:
1074+ kernel_type = GGML_TSAVORITE_KERNEL_TYPE_RESHAPE;
1075+ num_of_input_tensors = TSAVORITE_IGNORE_TENSORS;
1076+ break ;
1077+ case GGML_OP_VIEW:
1078+ kernel_type = GGML_TSAVORITE_KERNEL_TYPE_VIEW;
1079+ num_of_input_tensors = TSAVORITE_IGNORE_TENSORS;
1080+ break ;
1081+ case GGML_OP_PERMUTE:
1082+ num_of_input_tensors = TSAVORITE_IGNORE_TENSORS;
1083+ break ;
1084+ case GGML_OP_TRANSPOSE:
1085+ num_of_input_tensors = TSAVORITE_IGNORE_TENSORS;
1086+ break ;
10671087 case GGML_OP_UNARY:
10681088 switch (ggml_get_unary_op (node)) {
10691089 case GGML_UNARY_OP_NEG:
@@ -1094,10 +1114,10 @@ static enum ggml_status ggml_tsavorite_graph_compute(ggml_backend_t backend,
10941114 return GGML_STATUS_ABORTED;
10951115 }
10961116
1097- if (!ctx->kernels [kernel_type].pipeline ||
1117+ if ((num_of_input_tensors != TSAVORITE_IGNORE_TENSORS) && ( !ctx->kernels [kernel_type].pipeline ||
10981118 (!ctx->kernels [kernel_type].pipeline ->_mlir_fptr_3_input [kernel_sub_type] &&
10991119 !ctx->kernels [kernel_type].pipeline ->_mlir_fptr_2_input [kernel_sub_type] &&
1100- !ctx->kernels [kernel_type].pipeline ->_mlir_fptr_1_input [kernel_sub_type])) {
1120+ !ctx->kernels [kernel_type].pipeline ->_mlir_fptr_1_input [kernel_sub_type]))) {
11011121 GGML_TSAVORITE_LOG_ERROR (" Kernel Type %d, not supported \n " , kernel_type);
11021122 return GGML_STATUS_ABORTED;
11031123 }
@@ -2129,10 +2149,16 @@ static bool ggml_backend_tsavorite_device_offload_op(ggml_backend_dev_t dev,
21292149 case GGML_OP_SQRT:
21302150 case GGML_OP_SQR:
21312151 case GGML_OP_SIN:
2152+ case GGML_OP_RESHAPE:
2153+ case GGML_OP_VIEW:
2154+ case GGML_OP_PERMUTE:
2155+ case GGML_OP_TRANSPOSE:
21322156 case GGML_OP_RMS_NORM:
2133- #ifdef GGML_TARGET_POSIX
2134- case GGML_OP_SOFT_MAX:
2135- #endif /* GGML_TARGET_POSIX */
2157+
2158+ #ifdef GGML_TARGET_POSIX_DEBUG
2159+ case GGML_OP_SOFT_MAX:
2160+ #endif /* GGML_TARGET_POSIX_DEBUG */
2161+
21362162 break ;
21372163 case GGML_OP_GLU:
21382164 {
0 commit comments