• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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