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