• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright 2020 Huawei Technologies Co., Ltd
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef NNACL_ERRORCODE_H_
18 #define NNACL_ERRORCODE_H_
19 
20 #include <string.h>
21 
22 #define MAX_MSG_LEN 256
23 
24 typedef enum ErrorCodeCommonEnum {
25   NNACL_OK = 0,
26   NNACL_ERR = 1,
27   NNACL_NULL_PTR,
28   NNACL_PARAM_INVALID,
29   NNACL_INFER_INVALID,
30   NNACL_INPUT_TENSOR_ERROR,
31   NNACL_OUTPUT_TENSOR_ERROR,
32   NNACL_INPUT_OUTPUT_DATA_TYPE_UNMATCH,
33   NNACL_FORMAT_ERROR,
34   NNACL_BUFFER_OVERFLOW,
35   NNACL_TENSOR_SIZE_INVALID,
36   NNACL_UNSUPPORTED_DATA_TYPE,
37   NNACL_UNSUPPORTED_FORMAT,
38   NNACL_MALLOC_BUFFER_FAILED,
39   NNACL_MALLOC_SIZE_INVALID,
40   NNACL_DISABLE_FP16,
41   NNACL_ADDN_SHAPE_UNMATCH,
42   NNACL_ACTIVATION_TYPE_INVALID,
43   NNACL_ARITHMETIC_DATA_TYPE_UNMATCH,
44   NNACL_ARITHMETIC_SHAPE_INVALID,
45   NNACL_ARITHMETIC_SELF_DATA_TYPE_UNSUPPORT,
46   NNACL_ARG_MIN_MAX_AXIS_INVALID,
47   NNACL_BIAS_ADD_SHAPE_NOT_MATCH,
48   NNACL_BIAS_ADD_SHAPE_OVERFLOW,
49   NNACL_BATCH_TO_SPACE_BLOCK_SHAPE_INVALID,
50   NNACL_BATCH_TO_SPACE_CROP_INVALID,
51   NNACL_BATCH_NORM_CHANNEL_SHAPE_INVALID,
52   NNACL_CLIP_DATA_TYPE_INVALID,
53   NNACL_CLIP_MINMAX_VALUE_INVALID,
54   NNACL_CONCAT_AXIS_INVALID,
55   NNACL_CONCAT_F16_INVALID_DATA_TYPE,
56   NNACL_CONCAT_F16_OUTPUT_DATA_INVALID,
57   NNACL_CONCAT_SHAPE_INVALID,
58   NNACL_CONVOLUTION_INPUT_CHANNEL_UNMATCH,
59   NNACL_CONVOLUTION_INPUT_HW_OVERFLOW,
60   NNACL_CONVOLUTION_KERNEL_HW_OVERFLOW,
61   NNACL_CONVOLUTION_OUTPUT_HW_OVERFLOW,
62   NNACL_CONVOLUTION_WEIGHT_DATATYPE_INVALID,
63   NNACL_CONVOLUTION_WEIGHT_SHAPE_INVALID,
64   NNACL_CONVOLUTION_AVX512_UNSUPPORT_FORMAT,
65   NNACL_CONVOLUTION_WEIGHT_DATA_INVALID,
66   NNACL_CONVOLUTION_BIAS_DATATYPE_INVALID,
67   NNACL_CROP_AND_RESIZE_BOX_IDX_INVALID,
68   NNACL_DECONV_RESIZE_OC_INVALID,
69   NNACL_DECONVOLUTION_DEPTHWISE_DILATION_INVALID,
70   NNACL_DECONVOLUTION_DEPTHWISE_STRIDE_INVALID,
71   NNACL_DECONVOLUTION_DEPTHWISE_INVALID_WEIGHT_SHAPE,
72   NNACL_DECONVOLUTION_DEPTHWISE_INVALID_WEIGHT_REPACK,
73   NNACL_DECONVOLUTION_DEPTHWISE_CHANNEL_INVALID,
74   NNACL_DEPTH_TO_SPACE_INVALID_MODE,
75   NNACL_ELTWISE_INVALID_MOD,
76   NNACL_FILL_DATA_TYPE_INVALID,
77   NNACL_FUSED_BATCH_NORM_NO_CHANGE,
78   NNACL_FUSED_BATCH_DATA_TYPE_INVALID,
79   NNACL_FUSED_BATCH_NORM_TO_SCALE_FAILED,
80   NNACL_FUSED_BATCH_TRAIN_DATA_INVALID,
81   NNACL_FUSED_BATCH_TRAIN_PARAM_DATA_INVALID,
82   NNACL_GATHER_INDICES_DATA_TYPE_INVALID,
83   NNACL_GATHER_INDICES_VALUE_INVALID,
84   NNACL_GATHER_AXIS_INVALID,
85   NNACL_GATHER_INPUT_TENSOR_INVALID,
86   NNACL_GATHER_OUTPUT_TENSOR_INVALID,
87   NNACL_GATHER_D_AXIS_INVALID,
88   NNACL_GATHER_ND_COUNT_INVALID,
89   NNACL_GATHER_ND_INDICES_RANK_INVALID,
90   NNACL_GATHER_ND_INDICES_SHAPE_INVALID,
91   NNACL_GROUP_CONVOLUTION_GROUP_INVALID,
92   NNACL_GATHER_ND_INDICES_DATA_TYPE_INVALID,
93   NNACL_GROUP_CONVOLUTION_SHAPE_INVALID,
94   NNACL_GROUP_NORM_NUM_GROUPS_INVALID,
95   NNACL_GROUP_NORM_SHAPE_SIZE_INVALID,
96   NNACL_GROUP_NORM_FORMAT_INVALID,
97   NNACL_SOFTMAX_AXIS_INVALID,
98   NNACL_MATMUL_ACT_TYPE_INVALID,
99   NNACL_MATMUL_BIAS_INVALID,
100   NNACL_NON_ZERO_SHAPE_INVALID,
101   NNACL_NON_MAX_SUPPRESSION_TENSOR_SIZE_INVALID,
102   NNACL_NON_MAX_SUPPRESSION_PARAM_INVALID,
103   NNACL_NON_MAX_SUPPRESSION_BOX_DIMS_INVALID,
104   NNACL_NON_MAX_SUPPRESSION_BOX_DIMS_SCORE_UNMATCH,
105   NNACL_NON_MAX_SUPPRESSION_DIMENSION_SPATIAL_UNMATCH,
106   NNACL_NON_MAX_SUPPRESSION_UNSUPPORT_DEFINE_DATA,
107   NNACL_NON_MAX_SUPPRESSION_OUTPUT_SIZE_UNMATCH,
108   NNACL_ONE_HOT_AXIS_INVALID,
109   NNACL_ONE_HOT_OUTER_SIZE_INVALID,
110   NNACL_ONE_HOT_INNER_SIZE_INVALID,
111   NNACL_ONE_HOR_DEPTH_TENSOR_DATA_TYPE_INVALID,
112   NNACL_ONE_HOR_ON_VALUE_TENSOR_DATA_TYPE_INVALID,
113   NNACL_ONE_HOR_OFF_VALUE_TENSOR_DATA_TYPE_INVALID,
114   NNACL_ONE_HOR_ON_OFF_VALUE_TENSOR_DATA_TYPE_INVALID,
115   NNACL_PAD_SHAPE_INVALID,
116   NNACL_PAD_PADDING_VALID_INVALID,
117   NNACL_PAD_MIRROR_PAD_SIZE_INVALID,
118   NNACL_POW_INVALID_DATA_TYPE,
119   NNACL_PRELU_SLOPE_NUM_INVALID,
120   NNACL_PRIOR_BOX_VALUE_INVALID,
121   NNACL_PRIOR_BOX_RATIO_INVALID,
122   NNACL_LOCAL_RESPONSE_NORM_SHAPE_INVALID,
123   NNACL_LOCAL_RESPONSE_NORM_DEPTH_RADIUS_INVALID,
124   NNACL_LAYER_NORM_OUTPUT_NUM_INVALID,
125   NNACL_REDUCE_AXIS_SIZE_ERROR,
126   NNACL_REDUCE_AXES_TENSOR_ERROR,
127   NNACL_REDUCE_UNSUPPORTED_DATA_TYPE,
128   NNACL_REDUCE_INPUT_SHAPE_SIZE_INVALID,
129   NNACL_REDUCE_COEFF_DATA_TYPE_INVALID,
130   NNACL_REVERSE_AXIS_INVALID,
131   NNACL_REVERSE_AXIS_VALUE_INVALID,
132   NNACL_REVERSE_DATA_SIZE_INVALID,
133   NNACL_REVERSE_NUM_AXIS_INVALID,
134   NNACL_SCALE_AXIS_AND_SHAPE_UNMATCH,
135   NNACL_SCALE_UNSUPPORT_ACT_TYPE,
136   NNACL_SCALE_SCALE_SHAPE_UNMATCH,
137   NNACL_SCALE_INPUT_NUM_INVALID,
138   NNACL_STACK_TENSOR_SHAPE_INVALID,
139   NNACL_STRIDED_SLICE_INVALID_SHAPE_SIZE,
140   NNACL_STRIDED_SLICE_INVALID_DATA_SIZE,
141   NNACL_STRIDED_SLICE_UNSUPPORTED_DATA_TYPE,
142   NNACL_STRIDED_SLICE_INVALID_PARALLEL_MOD,
143   NNACL_STRIDED_SLICE_UNSUPPORTED_MAX_8D,
144   NNACL_SPLICE_SHAPE_INVALID,
145   NNACL_TILE_INPUT_SHAPE_INVALID,
146   NNACL_TILE_SECOND_INPUT_NUM_INVALID,
147   NNACL_TILE_SECOND_INPUT_VALUE_INVALID,
148   NNACL_TILE_SECOND_INPUT_DATA_TYPE_INVALID,
149   NNACL_TILE_RESIZE_IN_RUNTIME_FAILED,
150   NNACL_TRIU_TRIL_INPUT_SHAPE_ERROR,
151   NNACL_TRIU_K_TENSOR_DATA_TYPE_INVALID,
152   NNACL_TRIU_INPUT_DIMS_INVALID,
153   NNACL_TRANSPOSE_INSHAPE_OUT_OF_RANGE,
154   NNACL_TRANSPOSE_INPUT_TENSOR_NUM_INVALID,
155   NNACL_TRANSPOSE_INPUT_TENSOR_VALUD_INVALID,
156   NNACL_TRANSPOSE_PERM_DIMS_INVALID,
157   NNACL_TRANSPOSE_PERM_TENSOR_INVALID,
158   NNACL_TRANSPOSE_PERM_TENSOR_VALUE_INVALID,
159   NNACL_TRANSPOSE_PERM_DELETE_DIMENSION_FAILED,
160   NNACL_WHERE_INPUT_NUM_INVALID,
161   NNACL_WHERE_CONDITION_DATA_TYPE_ERROR,
162   NNACL_WHERE_CONDITION_NUM_INVALID,
163   NNACL_WHERE_INVALID_OUT_NUM,
164   NNACL_WHERE_NUM_MAX_INVALID,
165   NNACL_WHERE_BROAD_CAST_FAILED,
166   NNACL_COMMON_END
167 } ErrorCodeCommonEnum;
168 
169 typedef enum ErrorCodeFp32OpEnum {
170   NNACL_ERRCODE_OP_FP32_START = 10000,
171   NNACL_ERRCODE_STRASSEN_RECURSION_MALLOC,
172   NNACL_ERRCODE_REVERSE_MALLOC,
173   NNACL_ERRCODE_SQRT_NEGATIVE,
174   NNACL_ERRCODE_RSQRT_NEGATIVE,
175   NNACL_ERRCODE_RSQRT_NEGATIVE_OR_ZERO,
176   NNACL_ERRCODE_LOG_NEGATIVE_OR_ZERO,
177   NNACL_ERRCODE_DIVISOR_ZERO,
178   NNACL_ERRCODE_INDEX_OUT_OF_RANGE,
179   NNACL_ERRCODE_WINOGRAD_GENERATOR_ERROR,
180   NNACL_ERRCODE_OP_FP32_END = 19999
181 } ErrorCodeFp32OpEnum;
182 
183 typedef enum ErrorCodeFp16OpEnum {
184   NNACL_ERRCODE_OP_FP16_START = 20000,
185   NNACL_ERRCODE_OP_FP16_WINOGRAD_GENERATOR,
186   NNACL_ERRCODE_OP_FP16_END = 29999
187 } ErrorCodeFp16OpEnum;
188 
189 typedef enum ErrorCodeUint8OpEnum {
190   NNACL_ERRCODE_OP_UINT8_START = 30000,
191   NNACL_ERRCODE_OP_UINT8_END = 39999
192 } ErrorCodeUint8OpEnum;
193 
194 typedef enum ErrorCodeInt8OpEnum {
195   NNACL_ERRCODE_OP_INT8_START = 40000,
196   NNACL_ERRCODE_ADD_OVERFLOW,
197   NNACL_ERRCODE_MUL_OVERFLOW,
198   NNACL_ERRCODE_OP_INT8_END = 49999
199 } ErrorCodeInt8OpEnums;
200 
201 #ifdef __cplusplus
202 extern "C" {
203 #endif
204 char *NNACLErrorMsg(int error_code);
205 #ifdef __cplusplus
206 }
207 #endif
208 #endif  // NNACL_ERRORCODE_H_
209