1 /** 2 * Copyright 2022 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 MINDSPORE_CCSRC_C_API_BASE_TYPES_H_ 18 #define MINDSPORE_CCSRC_C_API_BASE_TYPES_H_ 19 20 #include <stdint.h> 21 22 #ifdef __cplusplus 23 extern "C" { 24 #endif 25 26 typedef enum DataTypeC { 27 MS_NONE = 0, 28 MS_TYPE = 1, 29 MS_STRING = 12, 30 MS_BOOL = 30, 31 MS_INT8 = 32, 32 MS_INT16 = 33, 33 MS_INT32 = 34, 34 MS_INT64 = 35, 35 MS_UINT8 = 37, 36 MS_UINT16 = 38, 37 MS_UINT32 = 39, 38 MS_UINT64 = 40, 39 MS_FLOAT16 = 42, 40 MS_FLOAT32 = 43, 41 MS_FLOAT64 = 44, 42 MS_COMPLEX64 = 46, 43 MS_COMPLEX128 = 47, 44 MS_INVALID_TYPE = INT32_MAX, 45 } DataTypeC; 46 47 typedef enum DTypeFormat { 48 None_None, // {"", ""}; 49 None_Default, // {"", "DefaultFormat"}; 50 51 BOOL_None, // {"bool", ""}; 52 BOOL_Default, // {"bool", "DefaultFormat"}; 53 BOOL_5HD, // {"bool", "NC1HWC0"}; 54 BOOL_FracZ, // {"bool", "FRACTAL_Z"}; 55 BOOL_FracNZ, // {"bool", "FRACTAL_NZ"}; 56 BOOL_C1HWNCoC0, // {"bool", "C1HWNCoC0"}; 57 BOOL_NCHW, // {"bool", "NCHW"}; 58 BOOL_NHWC, // {"bool", "NHWC"}; 59 BOOL_HWCN, // {"bool", "HWCN"}; 60 BOOL_NDHWC, // {"bool", "NDHWC"}; 61 BOOL_ChannelLast, // {"bool", "ChannelLast"}; 62 BOOL_Default_Tuple, // {"bool", "DefaultFormat", "tuple"}; 63 BOOL_Default_List, // {"bool", "DefaultFormat", "list"}; 64 65 I8_None, // {"int8", ""}; 66 I8_Default, // {"int8", "DefaultFormat"}; 67 I8_5HD, // {"int8", "NC1HWC0"}; 68 I8_FracZ, // {"int8", "FRACTAL_Z"}; 69 I8_FracNZ, // {"int8", "FRACTAL_NZ"}; 70 I8_C1HWNCoC0, // {"int8", "C1HWNCoC0"}; 71 I8_NCHW, // {"int8", "NCHW"}; 72 I8_NHWC, // {"int8", "NHWC"}; 73 I8_HWCN, // {"int8", "HWCN"}; 74 I8_NDHWC, // {"int8", "NDHWC"}; 75 I8_NCDHW, // {"int8", "NCDHW"}; 76 I8_ChannelLast, // {"int8", "ChannelLast"}; 77 I8_NDC1HWC0, // {"int8", "NDC1HWC0"}; 78 I8_NC1HWC0, // {"int8", "NC1HWC0"}; 79 I8_Default_Tuple, // {"int8", "DefaultFormat", "tuple"}; 80 I8_Default_List, // {"int8", "DefaultFormat", "list"}; 81 82 U8_None, // {"uint8", ""}; 83 U8_Default, // {"uint8", "DefaultFormat"}; 84 U8_5HD, // {"uint8", "NC1HWC0"}; 85 U8_FracZ, // {"uint8", "FRACTAL_Z"}; 86 U8_FracNZ, // {"uint8", "FRACTAL_NZ"}; 87 U8_C1HWNCoC0, // {"uint8", "C1HWNCoC0"}; 88 U8_NCHW, // {"uint8", "NCHW"}; 89 U8_NHWC, // {"uint8", "NHWC"}; 90 U8_HWCN, // {"uint8", "HWCN"}; 91 U8_NDHWC, // {"uint8", "NDHWC"}; 92 U8_NCDHW, // {"uint8", "NCDHW"}; 93 U8_ChannelLast, // {"uint8", "ChannelLast"}; 94 U8_NDC1HWC0, // {"uint8", "NDC1HWC0"}; 95 U8_NC1HWC0, // {"uint8", "NC1HWC0"}; 96 U8_Default_Tuple, // {"uint8", "DefaultFormat", "tuple"}; 97 U8_Default_List, // {"uint8", "DefaultFormat", "list"}; 98 99 I16_None, // {"int16", ""}; 100 I16_Default, // {"int16", "DefaultFormat"}; 101 I16_5HD, // {"int16", "NC1HWC0"}; 102 I16_FracZ, // {"int16", "FRACTAL_Z"}; 103 I16_FracNZ, // {"int16", "FRACTAL_NZ"}; 104 I16_C1HWNCoC0, // {"int16", "C1HWNCoC0"}; 105 I16_NCHW, // {"int16", "NCHW"}; 106 I16_NHWC, // {"int16", "NHWC"}; 107 I16_HWCN, // {"int16", "HWCN"}; 108 I16_NDHWC, // {"int16", "NDHWC"}; 109 I16_ChannelLast, // {"int16", "ChannelLast"}; 110 I16_Default_Tuple, // {"int16", "DefaultFormat", "tuple"}; 111 I16_Default_List, // {"int16", "DefaultFormat", "list"}; 112 113 U16_None, // {"uint16", ""}; 114 U16_Default, // {"uint16", "DefaultFormat"}; 115 U16_5HD, // {"uint16", "NC1HWC0"}; 116 U16_FracZ, // {"uint16", "FRACTAL_Z"}; 117 U16_FracNZ, // {"uint16", "FRACTAL_NZ"}; 118 U16_C1HWNCoC0, // {"uint16", "C1HWNCoC0"}; 119 U16_NCHW, // {"uint16", "NCHW"}; 120 U16_NHWC, // {"uint16", "NHWC"}; 121 U16_HWCN, // {"uint16", "HWCN"}; 122 U16_NDHWC, // {"uint16", "NDHWC"}; 123 U16_ChannelLast, // {"uint16", "ChannelLast"}; 124 U16_Default_Tuple, // {"uint16", "DefaultFormat", "tuple"}; 125 U16_Default_List, // {"uint16", "DefaultFormat", "list"}; 126 127 I32_None, // {"int32", ""}; 128 I32_Default, // {"int32", "DefaultFormat"}; 129 I32_5HD, // {"int32", "NC1HWC0"}; 130 I32_FracZ, // {"int32", "FRACTAL_Z"}; 131 I32_FracNZ, // {"int32", "FRACTAL_NZ"}; 132 I32_C1HWNCoC0, // {"int32", "C1HWNCoC0"}; 133 I32_NCHW, // {"int32", "NCHW"}; 134 I32_NHWC, // {"int32", "NHWC"}; 135 I32_HWCN, // {"int32", "HWCN"}; 136 I32_NDHWC, // {"int32", "NDHWC"}; 137 I32_NDC1HWC0, // {"int32", "NDC1HWC0"}; 138 I32_NCDHW, // {"int32", "NCDHW"}; 139 I32_ChannelLast, // {"int32", "ChannelLast"}; 140 I32_Default_Tuple, // {"int32", "DefaultFormat", "tuple"}; 141 I32_Default_List, // {"int32", "DefaultFormat", "list"}; 142 143 U32_None, // {"uint32", ""}; 144 U32_Default, // {"uint32", "DefaultFormat"}; 145 U32_5HD, // {"uint32", "NC1HWC0"}; 146 U32_FracZ, // {"uint32", "FRACTAL_Z"}; 147 U32_FracNZ, // {"uint32", "FRACTAL_NZ"}; 148 U32_C1HWNCoC0, // {"uint32", "C1HWNCoC0"}; 149 U32_NCHW, // {"uint32", "NCHW"}; 150 U32_NHWC, // {"uint32", "NHWC"}; 151 U32_HWCN, // {"uint32", "HWCN"}; 152 U32_NDHWC, // {"uint32", "NDHWC"}; 153 U32_ChannelLast, // {"uint32", "ChannelLast"}; 154 U32_Default_Tuple, // {"uint32", "DefaultFormat", "tuple"}; 155 U32_Default_List, // {"uint32", "DefaultFormat", "list"}; 156 157 I64_None, // {"int64", ""}; 158 I64_Default, // {"int64", "DefaultFormat"}; 159 I64_5HD, // {"int64", "NC1HWC0"}; 160 I64_FracZ, // {"int64", "FRACTAL_Z"}; 161 I64_FracNZ, // {"int64", "FRACTAL_NZ"}; 162 I64_C1HWNCoC0, // {"int64", "C1HWNCoC0"}; 163 I64_NCHW, // {"int64", "NCHW"}; 164 I64_NHWC, // {"int64", "NHWC"}; 165 I64_HWCN, // {"int64", "HWCN"}; 166 I64_NDHWC, // {"int64", "NDHWC"}; 167 I64_ChannelLast, // {"int64", "ChannelLast"}; 168 I64_Default_Tuple, // {"int64", "DefaultFormat", "tuple"}; 169 I64_Default_List, // {"int64", "DefaultFormat", "list"}; 170 171 U64_None, // {"uint64", ""}; 172 U64_Default, // {"uint64", "DefaultFormat"}; 173 U64_5HD, // {"uint64", "NC1HWC0"}; 174 U64_FracZ, // {"uint64", "FRACTAL_Z"}; 175 U64_FracNZ, // {"uint64", "FRACTAL_NZ"}; 176 U64_C1HWNCoC0, // {"uint64", "C1HWNCoC0"}; 177 U64_NCHW, // {"uint64", "NCHW"}; 178 U64_NHWC, // {"uint64", "NHWC"}; 179 U64_HWCN, // {"uint64", "HWCN"}; 180 U64_NDHWC, // {"uint64", "NDHWC"}; 181 U64_ChannelLast, // {"uint64", "ChannelLast"}; 182 U64_Default_Tuple, // {"uint64", "DefaultFormat", "tuple"}; 183 U64_Default_List, // {"uint64", "DefaultFormat", "list"}; 184 185 F16_None, // {"float16", ""}; 186 F16_Default, // {"float16", "DefaultFormat"}; 187 F16_5HD, // {"float16", "NC1HWC0"}; 188 F16_FracZ, // {"float16", "FRACTAL_Z"}; 189 F16_FracNZ, // {"float16", "FRACTAL_NZ"}; 190 F16_C1HWNCoC0, // {"float16", "C1HWNCoC0"}; 191 F16_NCHW, // {"float16", "NCHW"}; 192 F16_NHWC, // {"float16", "NHWC"}; 193 F16_HWCN, // {"float16", "HWCN"}; 194 F16_NDHWC, // {"float16", "NDHWC"}; 195 F16_NCDHW, // {"float16", "NCDHW"}; 196 F16_DHWCN, // {"float16", "DHWCN"}; 197 F16_NDC1HWC0, // {"float16", "NDC1HWC0"}; 198 F16_FRACTAL_Z_3D, // {"float16", "FRACTAL_Z_3D"}; 199 F16_FracZNLSTM, // {"float16", "FRACTAL_ZN_LSTM"}; 200 F16_FracZNRNN, // {"float16", "FRACTAL_ZN_RNN"}; 201 F16_ND_RNNBIAS, // {"float16", "ND_RNN_BIAS"}; 202 F16_ChannelLast, // {"float16", "ChannelLast"}; 203 F16_Default_Tuple, // {"float16", "DefaultFormat", "tuple"}; 204 F16_Default_List, // {"float16", "DefaultFormat", "list"}; 205 206 F32_None, // {"float32", ""}; 207 F32_Default, // {"float32", "DefaultFormat"}; 208 F32_5HD, // {"float32", "NC1HWC0"}; 209 F32_FracZ, // {"float32", "FRACTAL_Z"}; 210 F32_FracNZ, // {"float32", "FRACTAL_NZ"}; 211 F32_C1HWNCoC0, // {"float32", "C1HWNCoC0"}; 212 F32_NCHW, // {"float32", "NCHW"}; 213 F32_NHWC, // {"float32", "NHWC"}; 214 F32_HWCN, // {"float32", "HWCN"}; 215 F32_NDHWC, // {"float32", "NDHWC"}; 216 F32_NCDHW, // {"float32", "NCDHW"}; 217 F32_DHWCN, // {"float32", "DHWCN"}; 218 F32_NDC1HWC0, // {"float32", "NDC1HWC0"}; 219 F32_FRACTAL_Z_3D, // {"float32", "FRACTAL_Z_3D"}; 220 F32_FracZNLSTM, // {"float32", "FRACTAL_ZN_LSTM"}; 221 F32_FracZNRNN, // {"float32", "FRACTAL_ZN_RNN"}; 222 F32_ND_RNNBIAS, // {"float32", "ND_RNN_BIAS"}; 223 F32_ChannelLast, // {"float32", "ChannelLast"}; 224 F32_Default_Tuple, // {"float32", "DefaultFormat", "tuple"}; 225 F32_Default_List, // {"float32", "DefaultFormat", "list"}; 226 227 F64_None, // {"float64", ""}; 228 F64_Default, // {"float64", "DefaultFormat"}; 229 F64_5HD, // {"float64", "NC1HWC0"}; 230 F64_FracZ, // {"float64", "FRACTAL_Z"}; 231 F64_FracNZ, // {"float64", "FRACTAL_NZ"}; 232 F64_C1HWNCoC0, // {"float64", "C1HWNCoC0"}; 233 F64_NCHW, // {"float64", "NCHW"}; 234 F64_NHWC, // {"float64", "NHWC"}; 235 F64_HWCN, // {"float64", "HWCN"}; 236 F64_NDHWC, // {"float64", "NDHWC"}; 237 F64_ChannelLast, // {"float64", "ChannelLast"}; 238 F64_Default_Tuple, // {"float64", "DefaultFormat", "tuple"}; 239 F64_Default_List, // {"float64", "DefaultFormat", "list"}; 240 241 C64_Default, // {"complex64", "DefaultFormat"}; 242 C128_Default, // {"complex128", "DefaultFormat"}; 243 } DTypeFormat; 244 245 typedef enum OptPassID { 246 MS_AUTO_MONAD_ELIM_PASS, // eliminate extra monad nodes 247 } OptPassID; 248 249 typedef enum PadMode { 250 PAD = 0, 251 SAME = 1, 252 VALID = 2, 253 FULL = 3, 254 } PadMode; 255 256 typedef enum Format { 257 DEFAULT_FORMAT = -1, 258 NCHW = 0, 259 NHWC = 1, 260 NHWC4 = 2, 261 HWKC = 3, 262 HWCK = 4, 263 KCHW = 5, 264 CKHW = 6, 265 KHWC = 7, 266 CHWK = 8, 267 HW = 9, 268 HW4 = 10, 269 NC = 11, 270 NC4 = 12, 271 NC4HW4 = 13, 272 NUM_OF_FORMAT = 14, 273 NCDHW = 15, 274 NWC = 16, 275 NCW = 17, 276 NDHWC = 18, 277 NC8HW8 = 19 278 } Format; 279 280 #ifdef __cplusplus 281 } 282 #endif 283 #endif // MINDSPORE_CCSRC_C_API_BASE_TYPES_H_ 284