1 | /******************************************************************************* |
2 | * Copyright 2016-2022 Intel Corporation |
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 | /// @file |
18 | /// C API types definitions |
19 | |
20 | #ifndef ONEAPI_DNNL_DNNL_TYPES_H |
21 | #define ONEAPI_DNNL_DNNL_TYPES_H |
22 | |
23 | #ifdef __cplusplus |
24 | extern "C" { |
25 | #endif |
26 | |
27 | /// @cond DO_NOT_DOCUMENT_THIS |
28 | #include <stddef.h> |
29 | #include <stdint.h> |
30 | /// @endcond |
31 | |
32 | #include "oneapi/dnnl/dnnl_common_types.h" |
33 | |
34 | /// @addtogroup dnnl_api |
35 | /// @{ |
36 | |
37 | /// @addtogroup dnnl_api_memory |
38 | /// @{ |
39 | |
40 | /// Memory format kind |
41 | typedef enum { |
42 | /// Undefined memory format kind, used for empty memory descriptors. |
43 | dnnl_format_kind_undef = 0, |
44 | /// A special format kind that indicates that the actual format will be |
45 | /// selected by a primitive automatically. |
46 | dnnl_format_kind_any, |
47 | /// A tensor in a generic format described by the stride and blocking |
48 | /// values in each dimension. |
49 | dnnl_blocked, |
50 | /// A special format kind that indicates that tensor format is opaque. |
51 | dnnl_format_kind_opaque, |
52 | /// Parameter to allow internal only format kinds without undefined |
53 | /// behavior. This parameter is chosen to be valid for so long as |
54 | /// sizeof(int) >= 2. |
55 | dnnl_format_kind_max = 0x7fff, |
56 | } dnnl_format_kind_t; |
57 | |
58 | /// Memory format tag specification. |
59 | /// |
60 | /// oneDNN formats describe physical data layout. The physical layout |
61 | /// is described as a sequence of the dimensions as they are laid out in the |
62 | /// memory (from the outer-most to the inner-most). Note that this order |
63 | /// doesn't affect the logical order of the dimensions that is kept in the |
64 | /// `dims` field of the dnnl_memory_desc_t structure. The logical order of the |
65 | /// dimensions is specified by the primitive that uses the tensor. |
66 | /// |
67 | /// For example, CNN 5D tensor always has its logical dimensions in the order |
68 | /// `(batch, channels, depth, height, width)`, while the physical layout might be |
69 | /// `NCDHW` (corresponds to #dnnl_ncdhw format tag) or |
70 | /// `NDHWC` (corresponds to #dnnl_ndhwc format tag). |
71 | /// |
72 | /// ~~~cpp |
73 | /// int batch = 2, channels = 16, depth = 13, height = 13, width = 13; |
74 | /// |
75 | /// int ndims = 5; // 5D tensor |
76 | /// dnnl_dims_t dims = {batch, channels, depth, height, width}; |
77 | /// dnnl_memory_desc_t data_in_ncdhw; |
78 | /// dnnl_memory_desc_create_with_tag( |
79 | /// &data_in_ncdhw, 5, dims, dnnl_f32, dnnl_ncdhw); |
80 | /// |
81 | /// // note that in both cases dims passed are the same |
82 | /// dnnl_memory_desc_t data_in_ndhwc; |
83 | /// dnnl_memory_desc_create_with_tag( |
84 | /// &data_in_ndhwc, 5, dims, dnnl_f32, dnnl_ndhwc); |
85 | /// |
86 | /// dnnl_memory_desc_destroy(data_in_ncdhw); |
87 | /// dnnl_memory_desc_destroy(data_in_ndhwc); |
88 | /// ~~~ |
89 | /// |
90 | /// Memory format tags can be further divided into two categories: |
91 | /// - Domain-agnostic names, i.e. names the do not depend on the tensor usage |
92 | /// in the specific primitive. These names use letters from `a` to `l` to |
93 | /// denote logical dimension from 1 to 12, and form the order in which the |
94 | /// dimensions are laid in memory. For instance, #dnnl_ab is used to denote |
95 | /// 2D tensor where the second logical dimension (aka `b`) is the innermost, |
96 | /// i.e. has stride = 1, and the first logical dimension (`a`) laid out in |
97 | /// memory with stride equal to the size of second dimension. On the other |
98 | /// hand, #dnnl_ba is just transposed version of the same tensor: the |
99 | /// first dimension (`a`) becomes the innermost one. |
100 | /// - Domain-specific names, i.e. names that make sense only in the context of |
101 | /// a certain domain, such as CNN. This names are just aliases to the |
102 | /// corresponding domain-agnostic tags and used mostly for the convenience. |
103 | /// For example, #dnnl_nc is used to denote 2D CNN activations tensor |
104 | /// memory format, where channels are the innermost dimension and batch is an |
105 | /// outermost one. Moreover, #dnnl_nc is just an alias to #dnnl_ab, |
106 | /// since for oneDNN CNN primitives the logical dimensions of |
107 | /// activations tensors come in order: batch, channels, spatial. |
108 | /// In other words, batch corresponds to the first logical dimension (`a`), |
109 | /// channels correspond to the second one (`b`). |
110 | /// |
111 | /// The following domain-specific notation applies to memory format tags: |
112 | /// - @c 'n' denotes the mini-batch dimension |
113 | /// - @c 'c' denotes a channels dimension |
114 | /// - When there are multiple channel dimensions (for example, in convolution |
115 | /// weights tensor), @c 'i' and @c 'o' denote dimensions of input and output |
116 | /// channels |
117 | /// - @c 'd', @c 'h', and @c 'w' denote spatial depth, height, and width |
118 | /// respectively |
119 | /// |
120 | /// Upper-case letters indicate that the data is laid out in blocks for a |
121 | /// particular dimension. In such cases, the format name contains both upper- |
122 | /// and lower-case letters for that dimension with a lower-case letter preceded |
123 | /// by the block size. For example: #dnnl_nChw8c describes a format where the |
124 | /// outermost dimension is mini-batch, followed by the channel block number, |
125 | /// followed by the spatial height and width, and finally followed by 8-element |
126 | /// channel blocks. |
127 | /// |
128 | /// @sa @ref dev_guide_understanding_memory_formats |
129 | typedef enum { |
130 | /// Undefined memory format tag |
131 | dnnl_format_tag_undef = 0, |
132 | /// Undefined memory format tag. |
133 | /// The primitive selects a format automatically. |
134 | dnnl_format_tag_any, |
135 | |
136 | // Semantic agnostic section |
137 | // The physical order of dimensions is defined by the permutation of the |
138 | // characters, assuming that ab..z defines the natural order. |
139 | |
140 | // Plain formats |
141 | |
142 | dnnl_a, ///< plain 1D tensor |
143 | dnnl_ab, ///< plain 2D tensor |
144 | dnnl_abc, ///< plain 3D tensor |
145 | dnnl_abcd, ///< plain 4D tensor |
146 | dnnl_abcde, ///< plain 5D tensor |
147 | dnnl_abcdef, ///< plain 6D tensor |
148 | dnnl_abcdefg, ///< plain 7D tensor |
149 | dnnl_abcdefgh, ///< plain 8D tensor |
150 | dnnl_abcdefghi, ///< plain 9D tensor |
151 | dnnl_abcdefghij, ///< plain 10D tensor |
152 | dnnl_abcdefghijk, ///< plain 11D tensor |
153 | dnnl_abcdefghijkl, ///< plain 12D tensor |
154 | |
155 | // Permuted plain formats |
156 | |
157 | dnnl_ba, ///< permuted 2D tensor |
158 | dnnl_acb, ///< permuted 3D tensor |
159 | dnnl_bac, ///< permuted 3D tensor |
160 | dnnl_bca, ///< permuted 3D tensor |
161 | dnnl_cab, ///< permuted 3D tensor |
162 | dnnl_cba, ///< permuted 3D tensor |
163 | dnnl_abdc, ///< permuted 4D tensor |
164 | dnnl_acbd, ///< permuted 4D tensor |
165 | dnnl_acdb, ///< permuted 4D tensor |
166 | dnnl_adbc, ///< permuted 4D tensor |
167 | dnnl_adcb, ///< permuted 4D tensor |
168 | dnnl_bacd, ///< permuted 4D tensor |
169 | dnnl_bcda, ///< permuted 4D tensor |
170 | dnnl_cdab, ///< permuted 4D tensor |
171 | dnnl_cdba, ///< permuted 4D tensor |
172 | dnnl_dcab, ///< permuted 4D tensor |
173 | dnnl_abced, ///< permuted 5D tensor |
174 | dnnl_abdec, ///< permuted 5D tensor |
175 | dnnl_acbde, ///< permuted 5D tensor |
176 | dnnl_acdeb, ///< permuted 5D tensor |
177 | dnnl_adecb, ///< permuted 5D tensor |
178 | dnnl_bacde, ///< permuted 5D tensor |
179 | dnnl_bcdea, ///< permuted 5D tensor |
180 | dnnl_cdeab, ///< permuted 5D tensor |
181 | dnnl_cdeba, ///< permuted 5D tensor |
182 | dnnl_decab, ///< permuted 5D tensor |
183 | dnnl_abcdfe, ///< permuted 6D tensor |
184 | dnnl_abdefc, ///< permuted 6D tensor |
185 | dnnl_abdfce, ///< permuted 6D tensor |
186 | dnnl_acbdef, ///< permuted 6D tensor |
187 | dnnl_adefcb, ///< permuted 6D tensor |
188 | dnnl_defcab, ///< permuted 6D tensor |
189 | dnnl_abcdegf, ///< permuted 7D tensor |
190 | dnnl_abcdefhg, ///< permuted 8D tensor |
191 | dnnl_abcdefgih, ///< permuted 9D tensor |
192 | dnnl_abcdefghji, ///< permuted 10D tensor |
193 | dnnl_abcdefghikj, ///< permuted 11D tensor |
194 | dnnl_abcdefghijlk, ///< permuted 12D tensor |
195 | |
196 | // Opaque blocked formats |
197 | |
198 | dnnl_Abc16a, |
199 | dnnl_ABc16a16b, |
200 | dnnl_ABc32a32b, |
201 | dnnl_ABc4a4b, |
202 | /// 3D tensor blocked by 2nd dimension with block size 16 |
203 | dnnl_aBc16b, |
204 | dnnl_ABc16b16a, |
205 | dnnl_Abc4a, |
206 | /// 3D tensor blocked by 2nd dimension with block size 32 |
207 | dnnl_aBc32b, |
208 | /// 3D tensor blocked by 2nd dimension with block size 4 |
209 | dnnl_aBc4b, |
210 | dnnl_ABc4b16a4b, |
211 | dnnl_ABc2b8a4b, |
212 | dnnl_ABc16b16a4b, |
213 | dnnl_ABc16b16a2b, |
214 | dnnl_ABc4b4a, |
215 | dnnl_ABc8a16b2a, |
216 | dnnl_ABc8a8b, |
217 | dnnl_ABc8a4b, |
218 | /// 3D tensor blocked by 2nd dimension with block size 8 |
219 | dnnl_aBc8b, |
220 | dnnl_ABc8b16a2b, |
221 | dnnl_BAc8a16b2a, |
222 | dnnl_ABc8b8a, |
223 | dnnl_Abcd16a, |
224 | dnnl_Abcd8a, |
225 | dnnl_ABcd16a16b, |
226 | dnnl_Abcd32a, |
227 | dnnl_ABcd32a32b, |
228 | /// 4D tensor blocked by 2nd dimension with block size 16 |
229 | dnnl_aBcd16b, |
230 | dnnl_ABcd16b16a, |
231 | dnnl_aBCd16b16c, |
232 | dnnl_aBCd16c16b, |
233 | dnnl_Abcd4a, |
234 | /// 4D tensor blocked by 2nd dimension with block size 32 |
235 | dnnl_aBcd32b, |
236 | /// 4D tensor blocked by 2nd dimension with block size 4 |
237 | dnnl_aBcd4b, |
238 | dnnl_ABcd4b16a4b, |
239 | dnnl_ABcd16b16a4b, |
240 | dnnl_ABcd16b16a2b, |
241 | dnnl_ABcd4b4a, |
242 | dnnl_ABcd4a4b, |
243 | dnnl_aBCd2c4b2c, |
244 | dnnl_aBCd4b8c2b, |
245 | dnnl_aBCd4c16b4c, |
246 | dnnl_aBCd2c8b4c, |
247 | dnnl_aBCd16c16b4c, |
248 | dnnl_aBCd16c16b2c, |
249 | dnnl_aBCd4c4b, |
250 | dnnl_aBCd4b4c, |
251 | dnnl_ABcd8a16b2a, |
252 | dnnl_ABcd2b8a4b, |
253 | dnnl_ABcd8a8b, |
254 | dnnl_ABcd8a4b, |
255 | /// 4D tensor blocked by 2nd dimension with block size 8 |
256 | dnnl_aBcd8b, |
257 | dnnl_aBCd4c8b2c, |
258 | dnnl_ABcd8b16a2b, |
259 | dnnl_aBCd8b16c2b, |
260 | dnnl_BAcd8a16b2a, |
261 | /// 4D tensor blocked by 1st and 2nd dimension with block size 8 |
262 | dnnl_ABcd8b8a, |
263 | dnnl_aBCd8b8c, |
264 | dnnl_aBCd8b4c, |
265 | dnnl_aBCd8c16b2c, |
266 | dnnl_ABcde8a16b2a, |
267 | dnnl_aCBd8b16c2b, |
268 | dnnl_aBCd8c8b, |
269 | dnnl_Abcde16a, |
270 | dnnl_Abcde32a, |
271 | dnnl_ABcde16a16b, |
272 | dnnl_BAcde8a16b2a, |
273 | /// 4D tensor blocked by 3rd dimension with block size 4 |
274 | dnnl_aBCd2b4c2b, |
275 | /// 5D tensor blocked by 1st dimension with block size 16 |
276 | dnnl_ABcde4b16a4b, |
277 | /// 5D tensor blocked by 1st dimension with block size 8 |
278 | dnnl_ABcde2b8a4b, |
279 | /// 5D tensor blocked by 2nd dimension with block size 16 |
280 | dnnl_aBcde16b, |
281 | dnnl_ABcde16b16a, |
282 | dnnl_aBCde16b16c, |
283 | dnnl_aBCde16c16b, |
284 | dnnl_aBCde2c8b4c, |
285 | dnnl_Abcde4a, |
286 | /// 5D tensor blocked by 2nd dimension with block size 32 |
287 | dnnl_aBcde32b, |
288 | /// 5D tensor blocked by 2nd dimension with block size 4 |
289 | dnnl_aBcde4b, |
290 | dnnl_ABcde4b4a, |
291 | dnnl_ABcde4a4b, |
292 | dnnl_aBCde4b4c, |
293 | dnnl_aBCde2c4b2c, |
294 | dnnl_aBCde4b8c2b, |
295 | dnnl_aBCde4c16b4c, |
296 | dnnl_aBCde16c16b4c, |
297 | dnnl_aBCde16c16b2c, |
298 | dnnl_aBCde4c4b, |
299 | dnnl_Abcde8a, |
300 | dnnl_ABcde8a8b, |
301 | dnnl_ABcde8a4b, |
302 | dnnl_BAcde16b16a, |
303 | /// 5D tensor blocked by 2nd dimension with block size 8 |
304 | dnnl_aBcde8b, |
305 | dnnl_ABcde8b16a2b, |
306 | dnnl_aBCde8b16c2b, |
307 | dnnl_aBCde4c8b2c, |
308 | dnnl_aCBde8b16c2b, |
309 | dnnl_ABcde8b8a, |
310 | dnnl_ABcde32a32b, |
311 | dnnl_aBCde8b8c, |
312 | dnnl_aBCde8b4c, |
313 | dnnl_ABc4a8b8a4b, |
314 | dnnl_ABcd4a8b8a4b, |
315 | dnnl_ABcde4a8b8a4b, |
316 | dnnl_BAc4b8a8b4a, |
317 | dnnl_BAcd4b8a8b4a, |
318 | dnnl_BAcde4b8a8b4a, |
319 | dnnl_ABcd2a8b8a2b, |
320 | dnnl_aBCd4b8c8b4c, |
321 | dnnl_aBCde4b8c8b4c, |
322 | dnnl_aBCde2b8c8b2c, |
323 | dnnl_aBCde8c16b2c, |
324 | dnnl_aBCde8c8b, |
325 | /// 5D tensor blocked by 3rd dimension with block size 4 |
326 | dnnl_aBCde2b4c2b, |
327 | /// 6D tensor blocked by 2nd dimension with block size 16 |
328 | dnnl_aBcdef16b, |
329 | dnnl_aBCdef16b16c, |
330 | dnnl_aBCdef16c16b, |
331 | dnnl_aBCdef4c16b4c, |
332 | /// 6D tensor blocked by 2nd dimension with block size 8 |
333 | dnnl_aBCdef2c8b4c, |
334 | dnnl_aBCdef4c8b2c, |
335 | /// 6D tensor blocked by 3rd dimension with block size 4 |
336 | dnnl_aBCdef2b4c2b, |
337 | /// 6D tensor blocked by 2nd dimension with block size 4 |
338 | dnnl_aBcdef4b, |
339 | dnnl_aBCdef4c4b, |
340 | dnnl_aBCdef4b4c, |
341 | dnnl_aBCdef2c4b2c, |
342 | dnnl_aBCdef4b8c2b, |
343 | dnnl_aBCdef8b8c, |
344 | dnnl_aBCdef8b4c, |
345 | dnnl_aBCdef8c16b2c, |
346 | dnnl_aBCdef4b8c8b4c, |
347 | dnnl_aBCdef8b16c2b, |
348 | dnnl_aCBdef8b16c2b, |
349 | dnnl_aBCdef8c8b, |
350 | dnnl_aBdc16b, |
351 | dnnl_aBdC16b2c, |
352 | dnnl_aBdC16b4c, |
353 | dnnl_aBdc4b, |
354 | dnnl_aBdc8b, |
355 | dnnl_aBdec16b, |
356 | dnnl_aBdeC16b2c, |
357 | dnnl_aBdeC16b4c, |
358 | dnnl_aBdec32b, |
359 | dnnl_aBdec4b, |
360 | dnnl_aBdec8b, |
361 | dnnl_aBdefc16b, |
362 | dnnl_aBdefC16b2c, |
363 | dnnl_aCBdef16c16b, |
364 | dnnl_aBdefc4b, |
365 | dnnl_aBdefc8b, |
366 | dnnl_Abcdef16a, |
367 | dnnl_Abcdef32a, |
368 | dnnl_aBedc16b, |
369 | dnnl_Acb16a, |
370 | dnnl_AcB16a2b, |
371 | dnnl_AcB16a4b, |
372 | dnnl_Acb4a, |
373 | dnnl_Acb8a, |
374 | dnnl_aCBd16b16c, |
375 | dnnl_aCBd16c16b, |
376 | dnnl_aCBde16b16c, |
377 | dnnl_aCBde16c16b, |
378 | dnnl_Acdb16a, |
379 | dnnl_AcdB16a2b, |
380 | dnnl_AcdB16a4b, |
381 | dnnl_Acdb32a, |
382 | dnnl_Acdb4a, |
383 | dnnl_Acdb8a, |
384 | dnnl_Acdeb16a, |
385 | dnnl_AcdeB16a2b, |
386 | dnnl_Acdeb4a, |
387 | dnnl_Acdeb8a, |
388 | dnnl_Adcb16a, |
389 | dnnl_BAc16a16b, |
390 | dnnl_BAc16b16a, |
391 | dnnl_BAcd16a16b, |
392 | dnnl_BAcd16b16a, |
393 | dnnl_aCBd4c8b8c4b, |
394 | dnnl_aCBde4c8b8c4b, |
395 | dnnl_aCBdef4c8b8c4b, |
396 | dnnl_BAcde16a16b, |
397 | dnnl_aCBdef16b16c, |
398 | dnnl_ABc16b32a, |
399 | dnnl_ABc16b64a, |
400 | dnnl_ABc4b32a4b, |
401 | dnnl_ABc4b64a4b, |
402 | dnnl_ABc8b32a2b, |
403 | dnnl_ABc8b64a2b, |
404 | dnnl_AB16b16a, |
405 | dnnl_AB16b32a, |
406 | dnnl_AB16b64a, |
407 | dnnl_AB8b16a2b, |
408 | dnnl_AB8b32a2b, |
409 | dnnl_AB8b64a2b, |
410 | dnnl_AB4b16a4b, |
411 | dnnl_AB4b32a4b, |
412 | dnnl_AB4b64a4b, |
413 | dnnl_AB16b16a4b, |
414 | dnnl_ABcd16b32a, |
415 | dnnl_ABcd16b64a, |
416 | dnnl_ABcd4b32a4b, |
417 | dnnl_ABcd4b64a4b, |
418 | dnnl_ABcd8b32a2b, |
419 | dnnl_ABcd8b64a2b, |
420 | dnnl_ABcde4b32a4b, |
421 | dnnl_ABcde4b64a4b, |
422 | dnnl_ABcde16b16a4b, |
423 | dnnl_ABcde16b16a2b, |
424 | dnnl_ABcde16b32a, |
425 | dnnl_ABcde16b64a, |
426 | dnnl_ABcde8b32a2b, |
427 | dnnl_ABcde8b64a2b, |
428 | dnnl_aBCdef16c16b4c, |
429 | dnnl_aBCdef16c16b2c, |
430 | dnnl_AB32a32b8a4b, |
431 | dnnl_AB8a4b, |
432 | dnnl_AB32a32b8a2b, |
433 | dnnl_AB8a2b, |
434 | dnnl_abDc32d, |
435 | dnnl_abDC32d4c, |
436 | dnnl_abdEc32e, |
437 | dnnl_abdEC32e2c, |
438 | dnnl_abdEC32e4c, |
439 | dnnl_aBdefC16b4c, |
440 | dnnl_AcdeB16a4b, |
441 | dnnl_ABcd16a16b2a, |
442 | dnnl_ABc16a16b2a, |
443 | dnnl_aBCd16b16c2b, |
444 | dnnl_aBCde16b16c2b, |
445 | dnnl_Acb32a, |
446 | dnnl_AcB32a2b, |
447 | dnnl_AcB32a4b, |
448 | dnnl_Acb48a, |
449 | dnnl_AcB48a2b, |
450 | dnnl_AcB48a4b, |
451 | dnnl_Acb64a, |
452 | dnnl_AcB64a2b, |
453 | dnnl_AcB64a4b, |
454 | dnnl_cBa2b, |
455 | dnnl_cBa4b, |
456 | dnnl_aBdc32b, |
457 | dnnl_aBdC32b2c, |
458 | dnnl_aBdC32b4c, |
459 | dnnl_aBdc48b, |
460 | dnnl_aBdC48b2c, |
461 | dnnl_aBdC48b4c, |
462 | dnnl_aBdc64b, |
463 | dnnl_aBdC64b2c, |
464 | dnnl_aBdC64b4c, |
465 | dnnl_adCb2c, |
466 | dnnl_adCb4c, |
467 | dnnl_AcdB32a2b, |
468 | dnnl_AcdB32a4b, |
469 | dnnl_Acdb48a, |
470 | dnnl_AcdB48a2b, |
471 | dnnl_AcdB48a4b, |
472 | dnnl_Acdb64a, |
473 | dnnl_AcdB64a2b, |
474 | dnnl_AcdB64a4b, |
475 | dnnl_cdBa2b, |
476 | dnnl_cdBa4b, |
477 | dnnl_aBdeC32b2c, |
478 | dnnl_aBdeC32b4c, |
479 | dnnl_aBdec48b, |
480 | dnnl_aBdeC48b2c, |
481 | dnnl_aBdeC48b4c, |
482 | dnnl_aBdec64b, |
483 | dnnl_aBdeC64b2c, |
484 | dnnl_aBdeC64b4c, |
485 | dnnl_adeCb2c, |
486 | dnnl_adeCb4c, |
487 | dnnl_Acdeb32a, |
488 | dnnl_AcdeB32a2b, |
489 | dnnl_AcdeB32a4b, |
490 | dnnl_Acdeb48a, |
491 | dnnl_AcdeB48a2b, |
492 | dnnl_AcdeB48a4b, |
493 | dnnl_Acdeb64a, |
494 | dnnl_AcdeB64a2b, |
495 | dnnl_AcdeB64a4b, |
496 | dnnl_cdeBa2b, |
497 | dnnl_cdeBa4b, |
498 | dnnl_aBdefc32b, |
499 | dnnl_aBdefC32b2c, |
500 | dnnl_aBdefC32b4c, |
501 | dnnl_aBdefc48b, |
502 | dnnl_aBdefC48b2c, |
503 | dnnl_aBdefC48b4c, |
504 | dnnl_aBdefc64b, |
505 | dnnl_aBdefC64b2c, |
506 | dnnl_aBdefC64b4c, |
507 | dnnl_adefCb2c, |
508 | dnnl_adefCb4c, |
509 | dnnl_AB16b32a4b, |
510 | dnnl_AB16b48a4b, |
511 | dnnl_AB16b64a4b, |
512 | dnnl_AB16b16a2b, |
513 | dnnl_AB16b32a2b, |
514 | dnnl_AB16b48a2b, |
515 | dnnl_AB16b64a2b, |
516 | dnnl_ABc16b32a4b, |
517 | dnnl_ABc16b48a4b, |
518 | dnnl_ABc16b64a4b, |
519 | dnnl_ABc16b32a2b, |
520 | dnnl_ABc16b48a2b, |
521 | dnnl_ABc16b64a2b, |
522 | dnnl_ABcd16b32a4b, |
523 | dnnl_ABcd16b48a4b, |
524 | dnnl_ABcd16b64a4b, |
525 | dnnl_ABcd16b32a2b, |
526 | dnnl_ABcd16b48a2b, |
527 | dnnl_ABcd16b64a2b, |
528 | dnnl_ABcde16b32a4b, |
529 | dnnl_ABcde16b48a4b, |
530 | dnnl_ABcde16b64a4b, |
531 | dnnl_ABcde16b32a2b, |
532 | dnnl_ABcde16b48a2b, |
533 | dnnl_ABcde16b64a2b, |
534 | dnnl_ABc32a16b, |
535 | dnnl_ABcd32a16b, |
536 | dnnl_ABcde32a16b, |
537 | dnnl_AB48a16b, |
538 | dnnl_AB48a32b, |
539 | dnnl_ABc40a16b, |
540 | dnnl_ABc40a32b, |
541 | dnnl_aBC48b16c, |
542 | dnnl_aBC48b32c, |
543 | dnnl_ABcd40a16b, |
544 | dnnl_ABcd40a32b, |
545 | dnnl_abCd32c, |
546 | dnnl_abdCe32c, |
547 | dnnl_abdCE32c2e, |
548 | dnnl_BA16a16b2a, |
549 | dnnl_BA16a32b2a, |
550 | dnnl_BA16a48b2a, |
551 | dnnl_BA16a64b2a, |
552 | dnnl_BA16a16b4a, |
553 | dnnl_BA16a32b4a, |
554 | dnnl_BA16a48b4a, |
555 | dnnl_BA16a64b4a, |
556 | dnnl_ABcd8a2b, |
557 | dnnl_aBdeC16c16b2c, |
558 | dnnl_aBdeC16c16b4c, |
559 | dnnl_aBdefC16c16b2c, |
560 | dnnl_AcB16b16a2b, |
561 | dnnl_AcB16b16a4b, |
562 | dnnl_AcdB16b16a2b, |
563 | dnnl_AcdB16b16a4b, |
564 | dnnl_AcdeB16b16a2b, |
565 | dnnl_aBdefC16c16b4c, |
566 | dnnl_AcdeB16b16a4b, |
567 | dnnl_AcB16b32a2b, |
568 | dnnl_AcB16b32a4b, |
569 | dnnl_AcB16b48a2b, |
570 | dnnl_AcB16b48a4b, |
571 | dnnl_AcB16b64a2b, |
572 | dnnl_AcB16b64a4b, |
573 | dnnl_aBdC16c16b2c, |
574 | dnnl_aBdC16c16b4c, |
575 | dnnl_aBdC16c32b2c, |
576 | dnnl_aBdC16c32b4c, |
577 | dnnl_aBdC16c48b2c, |
578 | dnnl_aBdC16c48b4c, |
579 | dnnl_aBdC16c64b2c, |
580 | dnnl_aBdC16c64b4c, |
581 | dnnl_AcdB16b32a2b, |
582 | dnnl_AcdB16b32a4b, |
583 | dnnl_AcdB16b48a2b, |
584 | dnnl_AcdB16b48a4b, |
585 | dnnl_AcdB16b64a2b, |
586 | dnnl_AcdB16b64a4b, |
587 | dnnl_aBdeC16c32b2c, |
588 | dnnl_aBdeC16c32b4c, |
589 | dnnl_aBdeC16c48b2c, |
590 | dnnl_aBdeC16c48b4c, |
591 | dnnl_aBdeC16c64b2c, |
592 | dnnl_aBdeC16c64b4c, |
593 | dnnl_AcdeB16b32a2b, |
594 | dnnl_AcdeB16b32a4b, |
595 | dnnl_AcdeB16b48a2b, |
596 | dnnl_AcdeB16b48a4b, |
597 | dnnl_AcdeB16b64a2b, |
598 | dnnl_AcdeB16b64a4b, |
599 | dnnl_aBdefC16c32b2c, |
600 | dnnl_aBdefC16c32b4c, |
601 | dnnl_aBdefC16c48b2c, |
602 | dnnl_aBdefC16c48b4c, |
603 | dnnl_aBdefC16c64b2c, |
604 | dnnl_aBdefC16c64b4c, |
605 | dnnl_decbA16a, |
606 | dnnl_ABc4a2b, |
607 | dnnl_ABc8a2b, |
608 | dnnl_aBCd8b2c, |
609 | dnnl_ABcde4a2b, |
610 | dnnl_ABcde8a2b, |
611 | dnnl_ABcde40a16b, |
612 | dnnl_ABcde40a32b, |
613 | dnnl_aBCde8b2c, |
614 | dnnl_ABcde4a8b8a2b, |
615 | dnnl_ABcd4a8b8a2b, |
616 | dnnl_ABc4a8b8a2b, |
617 | dnnl_aBCdef4b8c8b2c, |
618 | dnnl_aBCde4b8c8b2c, |
619 | dnnl_aBCd4b8c8b2c, |
620 | dnnl_BAcde4b8a8b2a, |
621 | dnnl_BAcd4b8a8b2a, |
622 | dnnl_BAc4b8a8b2a, |
623 | dnnl_aCBdef4c8b8c2b, |
624 | dnnl_aCBde4c8b8c2b, |
625 | dnnl_aCBd4c8b8c2b, |
626 | dnnl_aBCdef8b2c, |
627 | dnnl_AB32a16b, |
628 | dnnl_AB32a32b, |
629 | dnnl_BA4b8a8b2a, |
630 | dnnl_BA4b8a8b4a, |
631 | dnnl_aBC32b16c, |
632 | dnnl_aBC32b32c, |
633 | dnnl_aCB4c8b8c2b, |
634 | dnnl_aCB4c8b8c4b, |
635 | dnnl_ABcd4a2b, |
636 | dnnl_ABc2b8a16b4a, |
637 | dnnl_ABcd2b8a16b4a, |
638 | dnnl_ABcde2b8a16b4a, |
639 | dnnl_ABc2a8b16a4b, |
640 | dnnl_ABc2a8b16a2b, |
641 | dnnl_ABc2b32a8b, |
642 | dnnl_ABcd2a8b16a4b, |
643 | dnnl_ABcd2a8b16a2b, |
644 | dnnl_aCBd2c8b16c2b, |
645 | dnnl_ABcd2b32a8b, |
646 | dnnl_aBCd2c8b16c2b, |
647 | dnnl_ABcde2a8b16a4b, |
648 | dnnl_ABcde2a8b16a2b, |
649 | dnnl_aCBde2c8b16c2b, |
650 | dnnl_ABcde2b32a8b, |
651 | dnnl_aBC2b8c16b2c, |
652 | dnnl_aBCd2b8c16b2c, |
653 | dnnl_aBCde2b8c16b2c, |
654 | dnnl_aBCdef2b8c16b2c, |
655 | dnnl_BAcde2b8a16b4a, |
656 | dnnl_BAcd2b8a16b4a, |
657 | dnnl_BAc2b8a16b4a, |
658 | dnnl_BAcde2b8a16b2a, |
659 | dnnl_BAcd2b8a16b2a, |
660 | dnnl_BAc2b8a16b2a, |
661 | dnnl_aBCde2c8b16c2b, |
662 | dnnl_aBCdef2c8b16c2b, |
663 | dnnl_aCBdef2c8b16c2b, |
664 | dnnl_aBCd2b8c16b4c, |
665 | dnnl_aBCde2b8c16b4c, |
666 | dnnl_BA4b8a16b2a, |
667 | dnnl_BA4b8a16b4a, |
668 | dnnl_aCB4c8b16c2b, |
669 | dnnl_aCB4c8b16c4b, |
670 | dnnl_BA16a16b, |
671 | dnnl_BA16a32b, |
672 | dnnl_BA16a48b, |
673 | dnnl_BA16a64b, |
674 | dnnl_aCB16c2b, |
675 | dnnl_aCB16c4b, |
676 | dnnl_BA16b2a, |
677 | dnnl_BA16b4a, |
678 | dnnl_aBC16b16c, |
679 | dnnl_aBC16b32c, |
680 | dnnl_AB16a16b, |
681 | dnnl_AB16a32b, |
682 | dnnl_ABcde16a16b2a, |
683 | dnnl_aBCdef16b16c2b, |
684 | dnnl_Acedb16a, |
685 | dnnl_aBdfec16b, |
686 | dnnl_abdEC64e2c, |
687 | dnnl_abdEC64e4c, |
688 | dnnl_aCB16b16c, |
689 | dnnl_aCB16b32c, |
690 | dnnl_aCB16b48c, |
691 | dnnl_aCB16b64c, |
692 | dnnl_aCB16b16c2b, |
693 | dnnl_aCB16b32c2b, |
694 | dnnl_aCB16b48c2b, |
695 | dnnl_aCB16b64c2b, |
696 | dnnl_aCB16b16c4b, |
697 | dnnl_aCB16b32c4b, |
698 | dnnl_aCB16b48c4b, |
699 | dnnl_aCB16b64c4b, |
700 | dnnl_abCd4c, |
701 | dnnl_abCde4c, |
702 | dnnl_abCdef4c, |
703 | dnnl_abCde32c, |
704 | dnnl_abCdef32c, |
705 | dnnl_ABcd16a32b, |
706 | dnnl_decbA8a, |
707 | dnnl_aCdefB16b32c2b, |
708 | dnnl_aCdefB16b32c4b, |
709 | dnnl_aCdefB16b48c2b, |
710 | dnnl_aCdefB16b48c4b, |
711 | dnnl_aCdefB16b64c2b, |
712 | dnnl_aCdefB16b64c4b, |
713 | dnnl_BcdeA16a32b2a, |
714 | dnnl_BcdeA16a32b4a, |
715 | dnnl_BcdeA16a48b2a, |
716 | dnnl_BcdeA16a48b4a, |
717 | dnnl_BcdeA16a64b2a, |
718 | dnnl_BcdeA16a64b4a, |
719 | dnnl_aCdefb32c, |
720 | dnnl_aCdefB32c2b, |
721 | dnnl_aCdefB32c4b, |
722 | dnnl_aCdefb48c, |
723 | dnnl_aCdefB48c2b, |
724 | dnnl_aCdefB48c4b, |
725 | dnnl_aCdefb64c, |
726 | dnnl_aCdefB64c2b, |
727 | dnnl_aCdefB64c4b, |
728 | dnnl_Bcdea32b, |
729 | dnnl_BcdeA32b2a, |
730 | dnnl_BcdeA32b4a, |
731 | dnnl_Bcdea48b, |
732 | dnnl_BcdeA48b2a, |
733 | dnnl_BcdeA48b4a, |
734 | dnnl_Bcdea64b, |
735 | dnnl_BcdeA64b2a, |
736 | dnnl_BcdeA64b4a, |
737 | dnnl_Bca32b, |
738 | dnnl_BcA32b2a, |
739 | dnnl_BcA32b4a, |
740 | dnnl_Bca48b, |
741 | dnnl_BcA48b2a, |
742 | dnnl_BcA48b4a, |
743 | dnnl_Bca64b, |
744 | dnnl_BcA64b2a, |
745 | dnnl_BcA64b4a, |
746 | dnnl_aCdb32c, |
747 | dnnl_aCdB32c2b, |
748 | dnnl_aCdB32c4b, |
749 | dnnl_aCdb48c, |
750 | dnnl_aCdB48c2b, |
751 | dnnl_aCdB48c4b, |
752 | dnnl_aCdb64c, |
753 | dnnl_aCdB64c2b, |
754 | dnnl_aCdB64c4b, |
755 | dnnl_BcA16a16b2a, |
756 | dnnl_BcA16a16b4a, |
757 | dnnl_BcdA16a16b2a, |
758 | dnnl_BcdA16a16b4a, |
759 | dnnl_BcdeA16a16b2a, |
760 | dnnl_BcdeA16a16b4a, |
761 | dnnl_aCdB16b16c2b, |
762 | dnnl_aCdB16b16c4b, |
763 | dnnl_aCdeB16b16c2b, |
764 | dnnl_aCdeB16b16c4b, |
765 | dnnl_aCdefB16b16c2b, |
766 | dnnl_aCdefB16b16c4b, |
767 | dnnl_BcA16a32b2a, |
768 | dnnl_BcA16a32b4a, |
769 | dnnl_BcA16a48b2a, |
770 | dnnl_BcA16a48b4a, |
771 | dnnl_BcA16a64b2a, |
772 | dnnl_BcA16a64b4a, |
773 | dnnl_aCdB16b32c2b, |
774 | dnnl_aCdB16b32c4b, |
775 | dnnl_aCdB16b48c2b, |
776 | dnnl_aCdB16b48c4b, |
777 | dnnl_aCdB16b64c2b, |
778 | dnnl_aCdB16b64c4b, |
779 | dnnl_BcdA16a32b2a, |
780 | dnnl_BcdA16a32b4a, |
781 | dnnl_BcdA16a48b2a, |
782 | dnnl_BcdA16a48b4a, |
783 | dnnl_BcdA16a64b2a, |
784 | dnnl_BcdA16a64b4a, |
785 | dnnl_aCdeB16b32c2b, |
786 | dnnl_aCdeB16b32c4b, |
787 | dnnl_aCdeB16b48c2b, |
788 | dnnl_aCdeB16b48c4b, |
789 | dnnl_aCdeB16b64c2b, |
790 | dnnl_aCdeB16b64c4b, |
791 | dnnl_Bca16b, |
792 | dnnl_BcA16b2a, |
793 | dnnl_BcA16b4a, |
794 | dnnl_Bcda16b, |
795 | dnnl_BcdA16b2a, |
796 | dnnl_BcdA16b4a, |
797 | dnnl_Bcdea16b, |
798 | dnnl_BcdeA16b2a, |
799 | dnnl_BcdeA16b4a, |
800 | dnnl_aCdb16c, |
801 | dnnl_aCdB16c2b, |
802 | dnnl_aCdB16c4b, |
803 | dnnl_aCdeb16c, |
804 | dnnl_aCdeB16c2b, |
805 | dnnl_aCdeB16c4b, |
806 | dnnl_aCdefb16c, |
807 | dnnl_aCdefB16c2b, |
808 | dnnl_aCdefB16c4b, |
809 | dnnl_Bcda32b, |
810 | dnnl_BcdA32b2a, |
811 | dnnl_BcdA32b4a, |
812 | dnnl_Bcda48b, |
813 | dnnl_BcdA48b2a, |
814 | dnnl_BcdA48b4a, |
815 | dnnl_Bcda64b, |
816 | dnnl_BcdA64b2a, |
817 | dnnl_BcdA64b4a, |
818 | dnnl_aCdeb32c, |
819 | dnnl_aCdeB32c2b, |
820 | dnnl_aCdeB32c4b, |
821 | dnnl_aCdeb48c, |
822 | dnnl_aCdeB48c2b, |
823 | dnnl_aCdeB48c4b, |
824 | dnnl_aCdeb64c, |
825 | dnnl_aCdeB64c2b, |
826 | dnnl_aCdeB64c4b, |
827 | |
828 | /// Just a sentinel, not real memory format tag. Must be changed after new |
829 | /// format tag is added. |
830 | dnnl_format_tag_last, |
831 | |
832 | // Aliases |
833 | |
834 | /// 1D tensor, an alias to #dnnl_a |
835 | dnnl_x = dnnl_a, |
836 | /// 2D CNN activations tensor, an alias to #dnnl_ab |
837 | dnnl_nc = dnnl_ab, |
838 | /// 2D CNN activations tensor, an alias to #dnnl_ba |
839 | dnnl_cn = dnnl_ba, |
840 | /// 2D RNN statistics tensor, an alias to #dnnl_ab |
841 | dnnl_tn = dnnl_ab, |
842 | /// 2D RNN statistics tensor, an alias to #dnnl_ba |
843 | dnnl_nt = dnnl_ba, |
844 | /// 3D CNN activations tensor, an alias to #dnnl_abc |
845 | dnnl_ncw = dnnl_abc, |
846 | /// 3D CNN activations tensor, an alias to #dnnl_acb |
847 | dnnl_nwc = dnnl_acb, |
848 | /// 4D CNN activations tensor, an alias to #dnnl_abcd |
849 | dnnl_nchw = dnnl_abcd, |
850 | /// 4D CNN activations tensor, an alias to #dnnl_acdb |
851 | dnnl_nhwc = dnnl_acdb, |
852 | /// 4D CNN activations tensor, an alias to #dnnl_bcda |
853 | dnnl_chwn = dnnl_bcda, |
854 | /// 5D CNN activations tensor, an alias to #dnnl_abcde |
855 | dnnl_ncdhw = dnnl_abcde, |
856 | /// 5D CNN activations tensor, an alias to #dnnl_acdeb |
857 | dnnl_ndhwc = dnnl_acdeb, |
858 | |
859 | /// 2D CNN weights tensor, an alias to #dnnl_ab |
860 | dnnl_oi = dnnl_ab, |
861 | /// 2D CNN weights tensor, an alias to #dnnl_ba |
862 | dnnl_io = dnnl_ba, |
863 | /// 3D CNN weights tensor, an alias to #dnnl_abc |
864 | dnnl_oiw = dnnl_abc, |
865 | /// 3D CNN weights tensor, an alias to #dnnl_acb |
866 | dnnl_owi = dnnl_acb, |
867 | /// 3D CNN weights tensor, an alias to #dnnl_cba |
868 | dnnl_wio = dnnl_cba, |
869 | /// 3D CNN weights tensor, an alias to #dnnl_cab |
870 | dnnl_woi = dnnl_cab, |
871 | /// 3D CNN weights tensor, an alias to #dnnl_bca |
872 | dnnl_iwo = dnnl_bca, |
873 | /// 4D CNN weights tensor, an alias to #dnnl_abcd |
874 | dnnl_oihw = dnnl_abcd, |
875 | /// 4D CNN weights tensor, an alias to #dnnl_cdba |
876 | dnnl_hwio = dnnl_cdba, |
877 | /// 4D CNN weights tensor, an alias to #dnnl_cdab |
878 | dnnl_hwoi = dnnl_cdab, |
879 | /// 4D CNN weights tensor, an alias to #dnnl_acdb |
880 | dnnl_ohwi = dnnl_acdb, |
881 | /// 4D CNN weights tensor, an alias to #dnnl_bcda |
882 | dnnl_ihwo = dnnl_bcda, |
883 | /// 4D CNN weights tensor, an alias to #dnnl_bacd |
884 | dnnl_iohw = dnnl_bacd, |
885 | /// 5D CNN weights tensor, an alias to #dnnl_abcde |
886 | dnnl_oidhw = dnnl_abcde, |
887 | /// 5D CNN weights tensor, an alias to #dnnl_bacde |
888 | dnnl_iodhw = dnnl_bacde, |
889 | /// 5D CNN weights tensor, an alias to #dnnl_cdeba |
890 | dnnl_dhwio = dnnl_cdeba, |
891 | /// 5D CNN weights tensor, an alias to #dnnl_cdeab |
892 | dnnl_dhwoi = dnnl_cdeab, |
893 | /// 5D CNN weights tensor, an alias to #dnnl_acdeb |
894 | dnnl_odhwi = dnnl_acdeb, |
895 | /// 5D CNN weights tensor, an alias to #dnnl_bcdea |
896 | dnnl_idhwo = dnnl_bcdea, |
897 | |
898 | /// 4D CNN weights tensor (incl. groups), an alias to #dnnl_abcd |
899 | dnnl_goiw = dnnl_abcd, |
900 | /// 4D CNN weights tensor (incl. groups), an alias to #dnnl_abdc |
901 | dnnl_gowi = dnnl_abdc, |
902 | /// 4D CNN weights tensor (incl. groups), an alias to #dnnl_dcab |
903 | dnnl_wigo = dnnl_dcab, |
904 | /// 5D CNN weights tensor (incl. groups), an alias to #dnnl_abcde |
905 | dnnl_goihw = dnnl_abcde, |
906 | /// 5D CNN weights tensor (incl. groups), an alias to #dnnl_abdec |
907 | dnnl_gohwi = dnnl_abdec, |
908 | /// 5D CNN weights tensor (incl. groups), an alias to #dnnl_decab |
909 | dnnl_hwigo = dnnl_decab, |
910 | /// 5D CNN weights tensor (incl. groups), an alias to #dnnl_acbde |
911 | dnnl_giohw = dnnl_acbde, |
912 | /// 6D CNN weights tensor (incl. groups), an alias to #dnnl_abcdef |
913 | dnnl_goidhw = dnnl_abcdef, |
914 | /// 6D CNN weights tensor (incl. groups), an alias to #dnnl_abdefc |
915 | dnnl_godhwi = dnnl_abdefc, |
916 | /// 6D CNN weights tensor (incl. groups), an alias to #dnnl_acbdef |
917 | dnnl_giodhw = dnnl_acbdef, |
918 | /// 6D CNN weights tensor (incl. groups), an alias to #dnnl_defcab |
919 | dnnl_dhwigo = dnnl_defcab, |
920 | |
921 | /// 3D RNN data tensor in the format (seq_length, batch, input channels), |
922 | /// an alias to #dnnl_abc. |
923 | dnnl_tnc = dnnl_abc, |
924 | /// 3D RNN data tensor in the format (batch, seq_length, input channels), |
925 | /// an alias to #dnnl_bac. |
926 | dnnl_ntc = dnnl_bac, |
927 | /// 4D RNN states tensor in the format (num_layers, num_directions, |
928 | /// batch, state channels), an alias to #dnnl_abcd. |
929 | dnnl_ldnc = dnnl_abcd, |
930 | /// 5D RNN weights tensor in the format (num_layers, num_directions, |
931 | /// input_channels, num_gates, output_channels), an alias to #dnnl_abcde. |
932 | /// |
933 | /// - For LSTM cells, the gates order is input, forget, candidate |
934 | /// and output gate. |
935 | /// - For GRU cells, the gates order is update, reset and output gate. |
936 | dnnl_ldigo = dnnl_abcde, |
937 | /// 5D RNN weights tensor in the format (num_layers, num_directions, |
938 | /// num_gates, output_channels, input_channels), an alias to #dnnl_abdec. |
939 | /// |
940 | /// - For LSTM cells, the gates order is input, forget, candidate |
941 | /// and output gate. |
942 | /// - For GRU cells, the gates order is update, reset and output gate. |
943 | dnnl_ldgoi = dnnl_abdec, |
944 | /// 4D LSTM projection tensor in the format (num_layers, num_directions, |
945 | /// num_channels_in_hidden_state, num_channels_in_recurrent_projection), |
946 | /// an alias to #dnnl_abcd. |
947 | dnnl_ldio = dnnl_abcd, |
948 | /// 4D LSTM projection tensor in the format (num_layers, num_directions, |
949 | /// num_channels_in_recurrent_projection, num_channels_in_hidden_state), |
950 | /// an alias to #dnnl_abdc. |
951 | dnnl_ldoi = dnnl_abdc, |
952 | /// 4D RNN bias tensor in the format (num_layers, num_directions, |
953 | /// num_gates, output_channels), an alias to #dnnl_abcd. |
954 | /// |
955 | /// - For LSTM cells, the gates order is input, forget, candidate |
956 | /// and output gate. |
957 | /// - For GRU cells, the gates order is update, reset and output gate. |
958 | dnnl_ldgo = dnnl_abcd, |
959 | /// 5D LSTM projection tensor |
960 | dnnl_ldOi32o = dnnl_abDc32d, |
961 | dnnl_ldOI32o4i = dnnl_abDC32d4c, |
962 | dnnl_ldIo32i = dnnl_abCd32c, |
963 | /// 6D RNN weights tensor |
964 | dnnl_ldgOi32o = dnnl_abdEc32e, |
965 | dnnl_ldgOI32o2i = dnnl_abdEC32e2c, |
966 | dnnl_ldgOI32o4i = dnnl_abdEC32e4c, |
967 | dnnl_ldgOI64o2i = dnnl_abdEC64e2c, |
968 | dnnl_ldgOI64o4i = dnnl_abdEC64e4c, |
969 | dnnl_ldgIo32i = dnnl_abdCe32c, |
970 | dnnl_ldgIO32i2o = dnnl_abdCE32c2e, |
971 | |
972 | // Opaque data types, are not to be used explicitly |
973 | |
974 | // data |
975 | /// 5D CNN activations tensor blocked by channels with block size 32, |
976 | /// an alias to #dnnl_aBcde32b |
977 | dnnl_nCdhw32c = dnnl_aBcde32b, |
978 | /// 5D CNN activations tensor blocked by channels with block size 16, |
979 | /// an alias to #dnnl_aBcde16b |
980 | dnnl_nCdhw16c = dnnl_aBcde16b, |
981 | /// 5D CNN activations tensor blocked by channels with block size 4, |
982 | /// an alias to #dnnl_aBcde4b |
983 | dnnl_nCdhw4c = dnnl_aBcde4b, |
984 | /// 5D CNN activations tensor blocked by channels with block size 8, |
985 | /// an alias to #dnnl_aBcde8b |
986 | dnnl_nCdhw8c = dnnl_aBcde8b, |
987 | /// 4D CNN activations tensor blocked by channels with block size 32, |
988 | /// an alias to #dnnl_aBcd32b |
989 | dnnl_nChw32c = dnnl_aBcd32b, |
990 | /// 4D CNN activations tensor blocked by channels with block size 16, |
991 | /// an alias to #dnnl_aBcd16b |
992 | dnnl_nChw16c = dnnl_aBcd16b, |
993 | /// 4D CNN activations tensor blocked by channels with block size 4, |
994 | /// an alias to #dnnl_aBcd4b |
995 | dnnl_nChw4c = dnnl_aBcd4b, |
996 | /// 4D CNN activations tensor blocked by channels with block size 8, |
997 | /// an alias to #dnnl_aBcd8b |
998 | dnnl_nChw8c = dnnl_aBcd8b, |
999 | /// 3D CNN activations tensor blocked by channels with block size 32, |
1000 | /// an alias to #dnnl_aBc32b |
1001 | dnnl_nCw32c = dnnl_aBc32b, |
1002 | /// 3D CNN activations tensor blocked by channels with block size 16, |
1003 | /// an alias to #dnnl_aBc16b |
1004 | dnnl_nCw16c = dnnl_aBc16b, |
1005 | /// 3D CNN activations tensor blocked by channels with block size 4, |
1006 | /// an alias to #dnnl_aBc4b |
1007 | dnnl_nCw4c = dnnl_aBc4b, |
1008 | /// 3D CNN activations tensor blocked by channels with block size 8, |
1009 | /// an alias to #dnnl_aBc8b |
1010 | dnnl_nCw8c = dnnl_aBc8b, |
1011 | dnnl_NCw16n16c = dnnl_ABc16a16b, |
1012 | dnnl_NCdhw16n16c = dnnl_ABcde16a16b, |
1013 | dnnl_NChw16n16c = dnnl_ABcd16a16b, |
1014 | dnnl_NCw32n16c = dnnl_ABc32a16b, |
1015 | dnnl_NChw32n16c = dnnl_ABcd32a16b, |
1016 | dnnl_NChw16n32c = dnnl_ABcd16a32b, |
1017 | dnnl_NCdhw32n16c = dnnl_ABcde32a16b, |
1018 | dnnl_NCw32n32c = dnnl_ABc32a32b, |
1019 | dnnl_NChw32n32c = dnnl_ABcd32a32b, |
1020 | dnnl_NCdhw32n32c = dnnl_ABcde32a32b, |
1021 | |
1022 | // weights, 2D |
1023 | dnnl_OI16i16o = dnnl_AB16b16a, |
1024 | dnnl_OI16i32o = dnnl_AB16b32a, |
1025 | dnnl_OI16i64o = dnnl_AB16b64a, |
1026 | dnnl_OI8i16o2i = dnnl_AB8b16a2b, |
1027 | dnnl_OI8i32o2i = dnnl_AB8b32a2b, |
1028 | dnnl_OI8i64o2i = dnnl_AB8b64a2b, |
1029 | dnnl_OI4i16o4i = dnnl_AB4b16a4b, |
1030 | dnnl_OI4i32o4i = dnnl_AB4b32a4b, |
1031 | dnnl_OI4i64o4i = dnnl_AB4b64a4b, |
1032 | dnnl_OI16i16o4i = dnnl_AB16b16a4b, |
1033 | // weights, 3D |
1034 | dnnl_IOw16o16i = dnnl_BAc16a16b, |
1035 | dnnl_IOw16i16o = dnnl_BAc16b16a, |
1036 | dnnl_OIw16i16o = dnnl_ABc16b16a, |
1037 | dnnl_OIw16i32o = dnnl_ABc16b32a, |
1038 | dnnl_OIw16i64o = dnnl_ABc16b64a, |
1039 | dnnl_OIw16o16i = dnnl_ABc16a16b, |
1040 | dnnl_Oiw16o = dnnl_Abc16a, |
1041 | dnnl_OIw4i16o4i = dnnl_ABc4b16a4b, |
1042 | dnnl_OIw4i32o4i = dnnl_ABc4b32a4b, |
1043 | dnnl_OIw4i64o4i = dnnl_ABc4b64a4b, |
1044 | dnnl_OIw2i8o4i = dnnl_ABc2b8a4b, |
1045 | dnnl_OIw16i16o4i = dnnl_ABc16b16a4b, |
1046 | dnnl_OIw16i16o2i = dnnl_ABc16b16a2b, |
1047 | dnnl_OIw16o16i2o = dnnl_ABc16a16b2a, |
1048 | dnnl_OIw4i4o = dnnl_ABc4b4a, |
1049 | dnnl_OIw4o4i = dnnl_ABc4a4b, |
1050 | dnnl_Oiw4o = dnnl_Abc4a, |
1051 | dnnl_OIw8i16o2i = dnnl_ABc8b16a2b, |
1052 | dnnl_OIw8i32o2i = dnnl_ABc8b32a2b, |
1053 | dnnl_OIw8i64o2i = dnnl_ABc8b64a2b, |
1054 | dnnl_OIw8i8o = dnnl_ABc8b8a, |
1055 | dnnl_OIw8o16i2o = dnnl_ABc8a16b2a, |
1056 | dnnl_IOw8o16i2o = dnnl_BAc8a16b2a, |
1057 | dnnl_OIw8o8i = dnnl_ABc8a8b, |
1058 | dnnl_OIw8o4i = dnnl_ABc8a4b, |
1059 | dnnl_Owi16o = dnnl_Acb16a, |
1060 | dnnl_OwI16o2i = dnnl_AcB16a2b, |
1061 | dnnl_OwI16o4i = dnnl_AcB16a4b, |
1062 | dnnl_Iwo16i = dnnl_Bca16b, |
1063 | dnnl_IwO16i2o = dnnl_BcA16b2a, |
1064 | dnnl_IwO16i4o = dnnl_BcA16b4a, |
1065 | dnnl_Owi4o = dnnl_Acb4a, |
1066 | dnnl_Owi8o = dnnl_Acb8a, |
1067 | |
1068 | // weights, 4D |
1069 | dnnl_IOhw16i16o = dnnl_BAcd16b16a, |
1070 | dnnl_IOhw16o16i = dnnl_BAcd16a16b, |
1071 | dnnl_Ohwi16o = dnnl_Acdb16a, |
1072 | dnnl_OhwI16o2i = dnnl_AcdB16a2b, |
1073 | dnnl_OhwI16o4i = dnnl_AcdB16a4b, |
1074 | dnnl_Ihwo16i = dnnl_Bcda16b, |
1075 | dnnl_IhwO16i2o = dnnl_BcdA16b2a, |
1076 | dnnl_IhwO16i4o = dnnl_BcdA16b4a, |
1077 | dnnl_Ohwi32o = dnnl_Acdb32a, |
1078 | dnnl_Ohwi4o = dnnl_Acdb4a, |
1079 | dnnl_Ohwi8o = dnnl_Acdb8a, |
1080 | dnnl_OIhw16i16o = dnnl_ABcd16b16a, |
1081 | dnnl_OIhw16i32o = dnnl_ABcd16b32a, |
1082 | dnnl_OIhw16i64o = dnnl_ABcd16b64a, |
1083 | dnnl_OIhw16o16i = dnnl_ABcd16a16b, |
1084 | dnnl_Oihw16o = dnnl_Abcd16a, |
1085 | dnnl_OIhw4i16o4i = dnnl_ABcd4b16a4b, |
1086 | dnnl_OIhw4i32o4i = dnnl_ABcd4b32a4b, |
1087 | dnnl_OIhw4i64o4i = dnnl_ABcd4b64a4b, |
1088 | dnnl_OIhw16i16o4i = dnnl_ABcd16b16a4b, |
1089 | dnnl_OIhw16i16o2i = dnnl_ABcd16b16a2b, |
1090 | dnnl_OIhw16o16i2o = dnnl_ABcd16a16b2a, |
1091 | dnnl_OIhw4i4o = dnnl_ABcd4b4a, |
1092 | dnnl_OIhw4o4i = dnnl_ABcd4a4b, |
1093 | dnnl_Oihw4o = dnnl_Abcd4a, |
1094 | dnnl_OIhw8i16o2i = dnnl_ABcd8b16a2b, |
1095 | dnnl_OIhw8i32o2i = dnnl_ABcd8b32a2b, |
1096 | dnnl_OIhw8i64o2i = dnnl_ABcd8b64a2b, |
1097 | dnnl_OIhw8i8o = dnnl_ABcd8b8a, |
1098 | dnnl_OIhw8o16i2o = dnnl_ABcd8a16b2a, |
1099 | dnnl_OIhw2i8o4i = dnnl_ABcd2b8a4b, |
1100 | dnnl_IOhw8o16i2o = dnnl_BAcd8a16b2a, |
1101 | dnnl_OIhw8o8i = dnnl_ABcd8a8b, |
1102 | dnnl_OIhw8o4i = dnnl_ABcd8a4b, |
1103 | dnnl_Owhi16o = dnnl_Adcb16a, |
1104 | |
1105 | // weights, 5D |
1106 | dnnl_Odhwi16o = dnnl_Acdeb16a, |
1107 | dnnl_OdhwI16o2i = dnnl_AcdeB16a2b, |
1108 | dnnl_OdhwI16o4i = dnnl_AcdeB16a4b, |
1109 | dnnl_Idhwo16i = dnnl_Bcdea16b, |
1110 | dnnl_IdhwO16i2o = dnnl_BcdeA16b2a, |
1111 | dnnl_IdhwO16i4o = dnnl_BcdeA16b4a, |
1112 | dnnl_Odhwi4o = dnnl_Acdeb4a, |
1113 | dnnl_Odhwi8o = dnnl_Acdeb8a, |
1114 | dnnl_Odwhi16o = dnnl_Acedb16a, |
1115 | dnnl_OIdhw16i16o = dnnl_ABcde16b16a, |
1116 | dnnl_OIdhw16i32o = dnnl_ABcde16b32a, |
1117 | dnnl_OIdhw16i64o = dnnl_ABcde16b64a, |
1118 | dnnl_OIdhw16o16i = dnnl_ABcde16a16b, |
1119 | dnnl_Oidhw16o = dnnl_Abcde16a, |
1120 | dnnl_OIdhw4i4o = dnnl_ABcde4b4a, |
1121 | dnnl_OIdhw4o4i = dnnl_ABcde4a4b, |
1122 | dnnl_Oidhw4o = dnnl_Abcde4a, |
1123 | dnnl_OIdhw8i16o2i = dnnl_ABcde8b16a2b, |
1124 | dnnl_OIdhw8i32o2i = dnnl_ABcde8b32a2b, |
1125 | dnnl_OIdhw8i64o2i = dnnl_ABcde8b64a2b, |
1126 | dnnl_OIdhw8i8o = dnnl_ABcde8b8a, |
1127 | dnnl_OIdhw8o16i2o = dnnl_ABcde8a16b2a, |
1128 | dnnl_IOdhw8o16i2o = dnnl_BAcde8a16b2a, |
1129 | dnnl_OIdhw4i16o4i = dnnl_ABcde4b16a4b, |
1130 | dnnl_OIdhw4i32o4i = dnnl_ABcde4b32a4b, |
1131 | dnnl_OIdhw4i64o4i = dnnl_ABcde4b64a4b, |
1132 | dnnl_OIdhw16i16o4i = dnnl_ABcde16b16a4b, |
1133 | dnnl_OIdhw16i16o2i = dnnl_ABcde16b16a2b, |
1134 | dnnl_OIdhw2i8o4i = dnnl_ABcde2b8a4b, |
1135 | dnnl_OIdhw8o8i = dnnl_ABcde8a8b, |
1136 | dnnl_OIdhw8o4i = dnnl_ABcde8a4b, |
1137 | dnnl_IOdhw16i16o = dnnl_BAcde16b16a, |
1138 | dnnl_OIdhw4o8i8o4i = dnnl_ABcde4a8b8a4b, |
1139 | dnnl_IOdhw16o16i = dnnl_BAcde16a16b, |
1140 | dnnl_OIdhw16o16i2o = dnnl_ABcde16a16b2a, |
1141 | |
1142 | // weights w/ groups, 3D |
1143 | dnnl_Goiw16g = dnnl_Abcd16a, |
1144 | dnnl_Goiw8g = dnnl_Abcd8a, |
1145 | dnnl_Goiw4g = dnnl_Abcd4a, |
1146 | dnnl_gIOw16o16i = dnnl_aCBd16b16c, |
1147 | dnnl_gIOw16i16o = dnnl_aCBd16c16b, |
1148 | dnnl_gOIw16i16o = dnnl_aBCd16c16b, |
1149 | dnnl_gOIw16o16i = dnnl_aBCd16b16c, |
1150 | dnnl_gOiw16o = dnnl_aBcd16b, |
1151 | dnnl_gOIw4i16o4i = dnnl_aBCd4c16b4c, |
1152 | dnnl_gOIw2i8o4i = dnnl_aBCd2c8b4c, |
1153 | dnnl_gOIw16i16o4i = dnnl_aBCd16c16b4c, |
1154 | dnnl_gOIw16i16o2i = dnnl_aBCd16c16b2c, |
1155 | dnnl_gOIw16o16i2o = dnnl_aBCd16b16c2b, |
1156 | dnnl_gOIw4i4o = dnnl_aBCd4c4b, |
1157 | dnnl_gOIw4o4i = dnnl_aBCd4b4c, |
1158 | dnnl_gOiw4o = dnnl_aBcd4b, |
1159 | dnnl_gOIw8i16o2i = dnnl_aBCd8c16b2c, |
1160 | dnnl_gOIw8i8o = dnnl_aBCd8c8b, |
1161 | dnnl_gOIw8o16i2o = dnnl_aBCd8b16c2b, |
1162 | dnnl_gIOw8o16i2o = dnnl_aCBd8b16c2b, |
1163 | dnnl_gOIw8o8i = dnnl_aBCd8b8c, |
1164 | dnnl_gOIw8o4i = dnnl_aBCd8b4c, |
1165 | dnnl_gOwi16o = dnnl_aBdc16b, |
1166 | dnnl_gOwI16o2i = dnnl_aBdC16b2c, |
1167 | dnnl_gOwI16o4i = dnnl_aBdC16b4c, |
1168 | dnnl_gIwo16i = dnnl_aCdb16c, |
1169 | dnnl_gIwO16i2o = dnnl_aCdB16c2b, |
1170 | dnnl_gIwO16i4o = dnnl_aCdB16c4b, |
1171 | dnnl_gOwi4o = dnnl_aBdc4b, |
1172 | dnnl_gOwi8o = dnnl_aBdc8b, |
1173 | dnnl_Goiw32g = dnnl_Abcd32a, |
1174 | dnnl_gOIw2i4o2i = dnnl_aBCd2c4b2c, |
1175 | dnnl_gOIw2o4i2o = dnnl_aBCd2b4c2b, |
1176 | dnnl_gOIw4i8o2i = dnnl_aBCd4c8b2c, |
1177 | dnnl_gOIw4o8i2o = dnnl_aBCd4b8c2b, |
1178 | dnnl_goIw4i = dnnl_abCd4c, |
1179 | dnnl_goIw32i = dnnl_abCd32c, |
1180 | |
1181 | // weights w/ groups, 4D |
1182 | dnnl_gIOhw16i16o = dnnl_aCBde16c16b, |
1183 | dnnl_gIOhw16o16i = dnnl_aCBde16b16c, |
1184 | dnnl_gOhwi16o = dnnl_aBdec16b, |
1185 | dnnl_gOhwI16o2i = dnnl_aBdeC16b2c, |
1186 | dnnl_gOhwI16o4i = dnnl_aBdeC16b4c, |
1187 | dnnl_gIhwo16i = dnnl_aCdeb16c, |
1188 | dnnl_gIhwO16i2o = dnnl_aCdeB16c2b, |
1189 | dnnl_gIhwO16i4o = dnnl_aCdeB16c4b, |
1190 | dnnl_gOhwi32o = dnnl_aBdec32b, |
1191 | dnnl_gOhwi4o = dnnl_aBdec4b, |
1192 | dnnl_gOhwi8o = dnnl_aBdec8b, |
1193 | dnnl_Goihw16g = dnnl_Abcde16a, |
1194 | dnnl_gOIhw16i16o = dnnl_aBCde16c16b, |
1195 | dnnl_gOIhw16o16i = dnnl_aBCde16b16c, |
1196 | dnnl_gOihw16o = dnnl_aBcde16b, |
1197 | dnnl_gOIhw2i8o4i = dnnl_aBCde2c8b4c, |
1198 | dnnl_gOIhw4i16o4i = dnnl_aBCde4c16b4c, |
1199 | dnnl_gOIhw16i16o4i = dnnl_aBCde16c16b4c, |
1200 | dnnl_gOIhw16i16o2i = dnnl_aBCde16c16b2c, |
1201 | dnnl_gOIhw16o16i2o = dnnl_aBCde16b16c2b, |
1202 | dnnl_gOIhw4i4o = dnnl_aBCde4c4b, |
1203 | dnnl_gOIhw4o4i = dnnl_aBCde4b4c, |
1204 | dnnl_gOihw4o = dnnl_aBcde4b, |
1205 | dnnl_Goihw8g = dnnl_Abcde8a, |
1206 | dnnl_Goihw4g = dnnl_Abcde4a, |
1207 | dnnl_gOIhw8i16o2i = dnnl_aBCde8c16b2c, |
1208 | dnnl_gOIhw8i8o = dnnl_aBCde8c8b, |
1209 | dnnl_gOIhw8o16i2o = dnnl_aBCde8b16c2b, |
1210 | dnnl_gIOhw8o16i2o = dnnl_aCBde8b16c2b, |
1211 | dnnl_gOIhw8o8i = dnnl_aBCde8b8c, |
1212 | dnnl_gOIhw8o4i = dnnl_aBCde8b4c, |
1213 | dnnl_Goihw32g = dnnl_Abcde32a, |
1214 | dnnl_gOwhi16o = dnnl_aBedc16b, |
1215 | dnnl_goIhw4i = dnnl_abCde4c, |
1216 | dnnl_goIhw32i = dnnl_abCde32c, |
1217 | |
1218 | dnnl_OIw4o8i8o4i = dnnl_ABc4a8b8a4b, |
1219 | dnnl_OIhw4o8i8o4i = dnnl_ABcd4a8b8a4b, |
1220 | dnnl_IOw4i8o8i4o = dnnl_BAc4b8a8b4a, |
1221 | dnnl_IOhw4i8o8i4o = dnnl_BAcd4b8a8b4a, |
1222 | dnnl_IOdhw4i8o8i4o = dnnl_BAcde4b8a8b4a, |
1223 | |
1224 | dnnl_OIhw2o8i8o2i = dnnl_ABcd2a8b8a2b, |
1225 | dnnl_gOIw4o8i8o4i = dnnl_aBCd4b8c8b4c, |
1226 | dnnl_gOIhw4o8i8o4i = dnnl_aBCde4b8c8b4c, |
1227 | dnnl_gOIdhw4o8i8o4i = dnnl_aBCdef4b8c8b4c, |
1228 | dnnl_gIOw4i8o8i4o = dnnl_aCBd4c8b8c4b, |
1229 | dnnl_gIOhw4i8o8i4o = dnnl_aCBde4c8b8c4b, |
1230 | dnnl_gIOdhw4i8o8i4o = dnnl_aCBdef4c8b8c4b, |
1231 | dnnl_gOIhw2o8i8o2i = dnnl_aBCde2b8c8b2c, |
1232 | dnnl_gOIhw2i4o2i = dnnl_aBCde2c4b2c, |
1233 | dnnl_gOIhw2o4i2o = dnnl_aBCde2b4c2b, |
1234 | dnnl_gOIhw4i8o2i = dnnl_aBCde4c8b2c, |
1235 | dnnl_gOIhw4o8i2o = dnnl_aBCde4b8c2b, |
1236 | |
1237 | // weights w/ groups, 6D |
1238 | dnnl_gIOdhw16i16o = dnnl_aCBdef16c16b, |
1239 | dnnl_gIOdhw16o16i = dnnl_aCBdef16b16c, |
1240 | dnnl_gOdhwi16o = dnnl_aBdefc16b, |
1241 | dnnl_gOdhwI16o2i = dnnl_aBdefC16b2c, |
1242 | dnnl_gOdhwI16o4i = dnnl_aBdefC16b4c, |
1243 | dnnl_gIdhwo16i = dnnl_aCdefb16c, |
1244 | dnnl_gIdhwO16i2o = dnnl_aCdefB16c2b, |
1245 | dnnl_gIdhwO16i4o = dnnl_aCdefB16c4b, |
1246 | dnnl_gOdhwi4o = dnnl_aBdefc4b, |
1247 | dnnl_gOdhwi8o = dnnl_aBdefc8b, |
1248 | dnnl_gOdwhi16o = dnnl_aBdfec16b, |
1249 | dnnl_gOIdhw16i16o = dnnl_aBCdef16c16b, |
1250 | dnnl_gOIdhw4i16o4i = dnnl_aBCdef4c16b4c, |
1251 | dnnl_gOIdhw16i16o4i = dnnl_aBCdef16c16b4c, |
1252 | dnnl_gOIdhw2i8o4i = dnnl_aBCdef2c8b4c, |
1253 | dnnl_gOIdhw16i16o2i = dnnl_aBCdef16c16b2c, |
1254 | dnnl_gOIdhw16o16i = dnnl_aBCdef16b16c, |
1255 | dnnl_gOIdhw16o16i2o = dnnl_aBCdef16b16c2b, |
1256 | dnnl_gOidhw16o = dnnl_aBcdef16b, |
1257 | dnnl_gOIdhw4i4o = dnnl_aBCdef4c4b, |
1258 | dnnl_gOIdhw4o4i = dnnl_aBCdef4b4c, |
1259 | dnnl_gOidhw4o = dnnl_aBcdef4b, |
1260 | dnnl_gOIdhw8i16o2i = dnnl_aBCdef8c16b2c, |
1261 | dnnl_gOIdhw8i8o = dnnl_aBCdef8c8b, |
1262 | dnnl_gOIdhw8o16i2o = dnnl_aBCdef8b16c2b, |
1263 | dnnl_gIOdhw8o16i2o = dnnl_aCBdef8b16c2b, |
1264 | dnnl_gOIdhw8o8i = dnnl_aBCdef8b8c, |
1265 | dnnl_gOIdhw8o4i = dnnl_aBCdef8b4c, |
1266 | dnnl_Goidhw16g = dnnl_Abcdef16a, |
1267 | dnnl_Goidhw32g = dnnl_Abcdef32a, |
1268 | dnnl_gOIdhw2i4o2i = dnnl_aBCdef2c4b2c, |
1269 | dnnl_gOIdhw4i8o2i = dnnl_aBCdef4c8b2c, |
1270 | dnnl_gOIdhw2o4i2o = dnnl_aBCdef2b4c2b, |
1271 | dnnl_gOIdhw4o8i2o = dnnl_aBCdef4b8c2b, |
1272 | dnnl_goIdhw4i = dnnl_abCdef4c, |
1273 | dnnl_goIdhw32i = dnnl_abCdef32c, |
1274 | |
1275 | // weights, 3D |
1276 | dnnl_Owi32o = dnnl_Acb32a, |
1277 | dnnl_OwI32o2i = dnnl_AcB32a2b, |
1278 | dnnl_OwI32o4i = dnnl_AcB32a4b, |
1279 | dnnl_Owi48o = dnnl_Acb48a, |
1280 | dnnl_OwI48o2i = dnnl_AcB48a2b, |
1281 | dnnl_OwI48o4i = dnnl_AcB48a4b, |
1282 | dnnl_Owi64o = dnnl_Acb64a, |
1283 | dnnl_OwI64o2i = dnnl_AcB64a2b, |
1284 | dnnl_OwI64o4i = dnnl_AcB64a4b, |
1285 | dnnl_Iwo32i = dnnl_Bca32b, |
1286 | dnnl_IwO32i2o = dnnl_BcA32b2a, |
1287 | dnnl_IwO32i4o = dnnl_BcA32b4a, |
1288 | dnnl_Iwo48i = dnnl_Bca48b, |
1289 | dnnl_IwO48i2o = dnnl_BcA48b2a, |
1290 | dnnl_IwO48i4o = dnnl_BcA48b4a, |
1291 | dnnl_Iwo64i = dnnl_Bca64b, |
1292 | dnnl_IwO64i2o = dnnl_BcA64b2a, |
1293 | dnnl_IwO64i4o = dnnl_BcA64b4a, |
1294 | dnnl_wIo2i = dnnl_cBa2b, |
1295 | dnnl_wIo4i = dnnl_cBa4b, |
1296 | dnnl_gOwi32o = dnnl_aBdc32b, |
1297 | dnnl_gOwI32o2i = dnnl_aBdC32b2c, |
1298 | dnnl_gOwI32o4i = dnnl_aBdC32b4c, |
1299 | dnnl_gOwi48o = dnnl_aBdc48b, |
1300 | dnnl_gOwI48o2i = dnnl_aBdC48b2c, |
1301 | dnnl_gOwI48o4i = dnnl_aBdC48b4c, |
1302 | dnnl_gOwi64o = dnnl_aBdc64b, |
1303 | dnnl_gOwI64o2i = dnnl_aBdC64b2c, |
1304 | dnnl_gOwI64o4i = dnnl_aBdC64b4c, |
1305 | dnnl_gIwo32i = dnnl_aCdb32c, |
1306 | dnnl_gIwO32i2o = dnnl_aCdB32c2b, |
1307 | dnnl_gIwO32i4o = dnnl_aCdB32c4b, |
1308 | dnnl_gIwo48i = dnnl_aCdb48c, |
1309 | dnnl_gIwO48i2o = dnnl_aCdB48c2b, |
1310 | dnnl_gIwO48i4o = dnnl_aCdB48c4b, |
1311 | dnnl_gIwo64i = dnnl_aCdb64c, |
1312 | dnnl_gIwO64i2o = dnnl_aCdB64c2b, |
1313 | dnnl_gIwO64i4o = dnnl_aCdB64c4b, |
1314 | dnnl_gwio = dnnl_adcb, |
1315 | dnnl_gwIo2i = dnnl_adCb2c, |
1316 | dnnl_gwIo4i = dnnl_adCb4c, |
1317 | // weights, 4D |
1318 | dnnl_OhwI32o = dnnl_Acdb32a, |
1319 | dnnl_OhwI32o2i = dnnl_AcdB32a2b, |
1320 | dnnl_OhwI32o4i = dnnl_AcdB32a4b, |
1321 | dnnl_Ohwi48o = dnnl_Acdb48a, |
1322 | dnnl_OhwI48o2i = dnnl_AcdB48a2b, |
1323 | dnnl_OhwI48o4i = dnnl_AcdB48a4b, |
1324 | dnnl_Ohwi64o = dnnl_Acdb64a, |
1325 | dnnl_OhwI64o2i = dnnl_AcdB64a2b, |
1326 | dnnl_OhwI64o4i = dnnl_AcdB64a4b, |
1327 | dnnl_Ihwo32i = dnnl_Bcda32b, |
1328 | dnnl_IhwO32i2o = dnnl_BcdA32b2a, |
1329 | dnnl_IhwO32i4o = dnnl_BcdA32b4a, |
1330 | dnnl_Ihwo48i = dnnl_Bcda48b, |
1331 | dnnl_IhwO48i2o = dnnl_BcdA48b2a, |
1332 | dnnl_IhwO48i4o = dnnl_BcdA48b4a, |
1333 | dnnl_Ihwo64i = dnnl_Bcda64b, |
1334 | dnnl_IhwO64i2o = dnnl_BcdA64b2a, |
1335 | dnnl_IhwO64i4o = dnnl_BcdA64b4a, |
1336 | dnnl_hwIo2i = dnnl_cdBa2b, |
1337 | dnnl_hwIo4i = dnnl_cdBa4b, |
1338 | dnnl_gOhwI32o = dnnl_aBdec32b, |
1339 | dnnl_gOhwI32o2i = dnnl_aBdeC32b2c, |
1340 | dnnl_gOhwI32o4i = dnnl_aBdeC32b4c, |
1341 | dnnl_gOhwi48o = dnnl_aBdec48b, |
1342 | dnnl_gOhwI48o2i = dnnl_aBdeC48b2c, |
1343 | dnnl_gOhwI48o4i = dnnl_aBdeC48b4c, |
1344 | dnnl_gOhwi64o = dnnl_aBdec64b, |
1345 | dnnl_gOhwI64o2i = dnnl_aBdeC64b2c, |
1346 | dnnl_gOhwI64o4i = dnnl_aBdeC64b4c, |
1347 | dnnl_gIhwo32i = dnnl_aCdeb32c, |
1348 | dnnl_gIhwO32i2o = dnnl_aCdeB32c2b, |
1349 | dnnl_gIhwO32i4o = dnnl_aCdeB32c4b, |
1350 | dnnl_gIhwo48i = dnnl_aCdeb48c, |
1351 | dnnl_gIhwO48i2o = dnnl_aCdeB48c2b, |
1352 | dnnl_gIhwO48i4o = dnnl_aCdeB48c4b, |
1353 | dnnl_gIhwo64i = dnnl_aCdeb64c, |
1354 | dnnl_gIhwO64i2o = dnnl_aCdeB64c2b, |
1355 | dnnl_gIhwO64i4o = dnnl_aCdeB64c4b, |
1356 | dnnl_ghwio = dnnl_adecb, |
1357 | dnnl_ghwIo2i = dnnl_adeCb2c, |
1358 | dnnl_ghwIo4i = dnnl_adeCb4c, |
1359 | // weights, 5D |
1360 | dnnl_Odhwi32o = dnnl_Acdeb32a, |
1361 | dnnl_OdhwI32o2i = dnnl_AcdeB32a2b, |
1362 | dnnl_OdhwI32o4i = dnnl_AcdeB32a4b, |
1363 | dnnl_Odhwi48o = dnnl_Acdeb48a, |
1364 | dnnl_OdhwI48o2i = dnnl_AcdeB48a2b, |
1365 | dnnl_OdhwI48o4i = dnnl_AcdeB48a4b, |
1366 | dnnl_Odhwi64o = dnnl_Acdeb64a, |
1367 | dnnl_OdhwI64o2i = dnnl_AcdeB64a2b, |
1368 | dnnl_OdhwI64o4i = dnnl_AcdeB64a4b, |
1369 | dnnl_Idhwo32i = dnnl_Bcdea32b, |
1370 | dnnl_IdhwO32i2o = dnnl_BcdeA32b2a, |
1371 | dnnl_IdhwO32i4o = dnnl_BcdeA32b4a, |
1372 | dnnl_Idhwo48i = dnnl_Bcdea48b, |
1373 | dnnl_IdhwO48i2o = dnnl_BcdeA48b2a, |
1374 | dnnl_IdhwO48i4o = dnnl_BcdeA48b4a, |
1375 | dnnl_Idhwo64i = dnnl_Bcdea64b, |
1376 | dnnl_IdhwO64i2o = dnnl_BcdeA64b2a, |
1377 | dnnl_IdhwO64i4o = dnnl_BcdeA64b4a, |
1378 | dnnl_dhwIo2i = dnnl_cdeBa2b, |
1379 | dnnl_dhwIo4i = dnnl_cdeBa4b, |
1380 | dnnl_gOdhwi32o = dnnl_aBdefc32b, |
1381 | dnnl_gOdhwI32o2i = dnnl_aBdefC32b2c, |
1382 | dnnl_gOdhwI32o4i = dnnl_aBdefC32b4c, |
1383 | dnnl_gOdhwi48o = dnnl_aBdefc48b, |
1384 | dnnl_gOdhwI48o2i = dnnl_aBdefC48b2c, |
1385 | dnnl_gOdhwI48o4i = dnnl_aBdefC48b4c, |
1386 | dnnl_gOdhwi64o = dnnl_aBdefc64b, |
1387 | dnnl_gOdhwI64o2i = dnnl_aBdefC64b2c, |
1388 | dnnl_gOdhwI64o4i = dnnl_aBdefC64b4c, |
1389 | dnnl_gIdhwo32i = dnnl_aCdefb32c, |
1390 | dnnl_gIdhwO32i2o = dnnl_aCdefB32c2b, |
1391 | dnnl_gIdhwO32i4o = dnnl_aCdefB32c4b, |
1392 | dnnl_gIdhwo48i = dnnl_aCdefb48c, |
1393 | dnnl_gIdhwO48i2o = dnnl_aCdefB48c2b, |
1394 | dnnl_gIdhwO48i4o = dnnl_aCdefB48c4b, |
1395 | dnnl_gIdhwo64i = dnnl_aCdefb64c, |
1396 | dnnl_gIdhwO64i2o = dnnl_aCdefB64c2b, |
1397 | dnnl_gIdhwO64i4o = dnnl_aCdefB64c4b, |
1398 | dnnl_gdhwio = dnnl_adefcb, |
1399 | dnnl_gdhwIo2i = dnnl_adefCb2c, |
1400 | dnnl_gdhwIo4i = dnnl_adefCb4c, |
1401 | dnnl_OI16i32o4i = dnnl_AB16b32a4b, |
1402 | dnnl_OI16i48o4i = dnnl_AB16b48a4b, |
1403 | dnnl_OI16i64o4i = dnnl_AB16b64a4b, |
1404 | dnnl_OI16i16o2i = dnnl_AB16b16a2b, |
1405 | dnnl_OI16i32o2i = dnnl_AB16b32a2b, |
1406 | dnnl_OI16i48o2i = dnnl_AB16b48a2b, |
1407 | dnnl_OI16i64o2i = dnnl_AB16b64a2b, |
1408 | dnnl_OIw16i32o4i = dnnl_ABc16b32a4b, |
1409 | dnnl_OIw16i48o4i = dnnl_ABc16b48a4b, |
1410 | dnnl_OIw16i64o4i = dnnl_ABc16b64a4b, |
1411 | dnnl_OIw16i32o2i = dnnl_ABc16b32a2b, |
1412 | dnnl_OIw16i48o2i = dnnl_ABc16b48a2b, |
1413 | dnnl_OIw16i64o2i = dnnl_ABc16b64a2b, |
1414 | dnnl_OIhw16i32o4i = dnnl_ABcd16b32a4b, |
1415 | dnnl_OIhw16i48o4i = dnnl_ABcd16b48a4b, |
1416 | dnnl_OIhw16i64o4i = dnnl_ABcd16b64a4b, |
1417 | dnnl_OIhw16i32o2i = dnnl_ABcd16b32a2b, |
1418 | dnnl_OIhw16i48o2i = dnnl_ABcd16b48a2b, |
1419 | dnnl_OIhw16i64o2i = dnnl_ABcd16b64a2b, |
1420 | dnnl_OIdhw16i32o4i = dnnl_ABcde16b32a4b, |
1421 | dnnl_OIdhw16i48o4i = dnnl_ABcde16b48a4b, |
1422 | dnnl_OIdhw16i64o4i = dnnl_ABcde16b64a4b, |
1423 | dnnl_OIdhw16i32o2i = dnnl_ABcde16b32a2b, |
1424 | dnnl_OIdhw16i48o2i = dnnl_ABcde16b48a2b, |
1425 | dnnl_OIdhw16i64o2i = dnnl_ABcde16b64a2b, |
1426 | dnnl_OwI16i16o2i = dnnl_AcB16b16a2b, |
1427 | dnnl_OwI16i16o4i = dnnl_AcB16b16a4b, |
1428 | dnnl_OhwI16i16o2i = dnnl_AcdB16b16a2b, |
1429 | dnnl_OhwI16i16o4i = dnnl_AcdB16b16a4b, |
1430 | dnnl_OdhwI16i16o2i = dnnl_AcdeB16b16a2b, |
1431 | dnnl_OdhwI16i16o4i = dnnl_AcdeB16b16a4b, |
1432 | dnnl_IwO16o16i2o = dnnl_BcA16a16b2a, |
1433 | dnnl_IwO16o16i4o = dnnl_BcA16a16b4a, |
1434 | dnnl_IhwO16o16i2o = dnnl_BcdA16a16b2a, |
1435 | dnnl_IhwO16o16i4o = dnnl_BcdA16a16b4a, |
1436 | dnnl_IdhwO16o16i2o = dnnl_BcdeA16a16b2a, |
1437 | dnnl_IdhwO16o16i4o = dnnl_BcdeA16a16b4a, |
1438 | dnnl_gOwI16i16o2i = dnnl_aBdC16c16b2c, |
1439 | dnnl_gOwI16i16o4i = dnnl_aBdC16c16b4c, |
1440 | dnnl_gOhwI16i16o2i = dnnl_aBdeC16c16b2c, |
1441 | dnnl_gOhwI16i16o4i = dnnl_aBdeC16c16b4c, |
1442 | dnnl_gOdhwI16i16o2i = dnnl_aBdefC16c16b2c, |
1443 | dnnl_gOdhwI16i16o4i = dnnl_aBdefC16c16b4c, |
1444 | dnnl_gIwO16o16i2o = dnnl_aCdB16b16c2b, |
1445 | dnnl_gIwO16o16i4o = dnnl_aCdB16b16c4b, |
1446 | dnnl_gIhwO16o16i2o = dnnl_aCdeB16b16c2b, |
1447 | dnnl_gIhwO16o16i4o = dnnl_aCdeB16b16c4b, |
1448 | dnnl_gIdhwO16o16i2o = dnnl_aCdefB16b16c2b, |
1449 | dnnl_gIdhwO16o16i4o = dnnl_aCdefB16b16c4b, |
1450 | dnnl_OwI16i32o2i = dnnl_AcB16b32a2b, |
1451 | dnnl_OwI16i32o4i = dnnl_AcB16b32a4b, |
1452 | dnnl_OwI16i48o2i = dnnl_AcB16b48a2b, |
1453 | dnnl_OwI16i48o4i = dnnl_AcB16b48a4b, |
1454 | dnnl_OwI16i64o2i = dnnl_AcB16b64a2b, |
1455 | dnnl_OwI16i64o4i = dnnl_AcB16b64a4b, |
1456 | dnnl_IwO16o32i2o = dnnl_BcA16a32b2a, |
1457 | dnnl_IwO16o32i4o = dnnl_BcA16a32b4a, |
1458 | dnnl_IwO16o48i2o = dnnl_BcA16a48b2a, |
1459 | dnnl_IwO16o48i4o = dnnl_BcA16a48b4a, |
1460 | dnnl_IwO16o64i2o = dnnl_BcA16a64b2a, |
1461 | dnnl_IwO16o64i4o = dnnl_BcA16a64b4a, |
1462 | dnnl_gOwI16i32o2i = dnnl_aBdC16c32b2c, |
1463 | dnnl_gOwI16i32o4i = dnnl_aBdC16c32b4c, |
1464 | dnnl_gOwI16i48o2i = dnnl_aBdC16c48b2c, |
1465 | dnnl_gOwI16i48o4i = dnnl_aBdC16c48b4c, |
1466 | dnnl_gOwI16i64o2i = dnnl_aBdC16c64b2c, |
1467 | dnnl_gOwI16i64o4i = dnnl_aBdC16c64b4c, |
1468 | dnnl_gIwO16o32i2o = dnnl_aCdB16b32c2b, |
1469 | dnnl_gIwO16o32i4o = dnnl_aCdB16b32c4b, |
1470 | dnnl_gIwO16o48i2o = dnnl_aCdB16b48c2b, |
1471 | dnnl_gIwO16o48i4o = dnnl_aCdB16b48c4b, |
1472 | dnnl_gIwO16o64i2o = dnnl_aCdB16b64c2b, |
1473 | dnnl_gIwO16o64i4o = dnnl_aCdB16b64c4b, |
1474 | dnnl_OhwI16i32o2i = dnnl_AcdB16b32a2b, |
1475 | dnnl_OhwI16i32o4i = dnnl_AcdB16b32a4b, |
1476 | dnnl_OhwI16i48o2i = dnnl_AcdB16b48a2b, |
1477 | dnnl_OhwI16i48o4i = dnnl_AcdB16b48a4b, |
1478 | dnnl_OhwI16i64o2i = dnnl_AcdB16b64a2b, |
1479 | dnnl_OhwI16i64o4i = dnnl_AcdB16b64a4b, |
1480 | dnnl_IhwO16o32i2o = dnnl_BcdA16a32b2a, |
1481 | dnnl_IhwO16o32i4o = dnnl_BcdA16a32b4a, |
1482 | dnnl_IhwO16o48i2o = dnnl_BcdA16a48b2a, |
1483 | dnnl_IhwO16o48i4o = dnnl_BcdA16a48b4a, |
1484 | dnnl_IhwO16o64i2o = dnnl_BcdA16a64b2a, |
1485 | dnnl_IhwO16o64i4o = dnnl_BcdA16a64b4a, |
1486 | dnnl_gOhwI16i32o2i = dnnl_aBdeC16c32b2c, |
1487 | dnnl_gOhwI16i32o4i = dnnl_aBdeC16c32b4c, |
1488 | dnnl_gOhwI16i48o2i = dnnl_aBdeC16c48b2c, |
1489 | dnnl_gOhwI16i48o4i = dnnl_aBdeC16c48b4c, |
1490 | dnnl_gOhwI16i64o2i = dnnl_aBdeC16c64b2c, |
1491 | dnnl_gOhwI16i64o4i = dnnl_aBdeC16c64b4c, |
1492 | dnnl_gIhwO16o32i2o = dnnl_aCdeB16b32c2b, |
1493 | dnnl_gIhwO16o32i4o = dnnl_aCdeB16b32c4b, |
1494 | dnnl_gIhwO16o48i2o = dnnl_aCdeB16b48c2b, |
1495 | dnnl_gIhwO16o48i4o = dnnl_aCdeB16b48c4b, |
1496 | dnnl_gIhwO16o64i2o = dnnl_aCdeB16b64c2b, |
1497 | dnnl_gIhwO16o64i4o = dnnl_aCdeB16b64c4b, |
1498 | dnnl_OdhwI16i32o2i = dnnl_AcdeB16b32a2b, |
1499 | dnnl_OdhwI16i32o4i = dnnl_AcdeB16b32a4b, |
1500 | dnnl_OdhwI16i48o2i = dnnl_AcdeB16b48a2b, |
1501 | dnnl_OdhwI16i48o4i = dnnl_AcdeB16b48a4b, |
1502 | dnnl_OdhwI16i64o2i = dnnl_AcdeB16b64a2b, |
1503 | dnnl_OdhwI16i64o4i = dnnl_AcdeB16b64a4b, |
1504 | dnnl_IdhwO16o32i2o = dnnl_BcdeA16a32b2a, |
1505 | dnnl_IdhwO16o32i4o = dnnl_BcdeA16a32b4a, |
1506 | dnnl_IdhwO16o48i2o = dnnl_BcdeA16a48b2a, |
1507 | dnnl_IdhwO16o48i4o = dnnl_BcdeA16a48b4a, |
1508 | dnnl_IdhwO16o64i2o = dnnl_BcdeA16a64b2a, |
1509 | dnnl_IdhwO16o64i4o = dnnl_BcdeA16a64b4a, |
1510 | dnnl_gOdhwI16i32o2i = dnnl_aBdefC16c32b2c, |
1511 | dnnl_gOdhwI16i32o4i = dnnl_aBdefC16c32b4c, |
1512 | dnnl_gOdhwI16i48o2i = dnnl_aBdefC16c48b2c, |
1513 | dnnl_gOdhwI16i48o4i = dnnl_aBdefC16c48b4c, |
1514 | dnnl_gOdhwI16i64o2i = dnnl_aBdefC16c64b2c, |
1515 | dnnl_gOdhwI16i64o4i = dnnl_aBdefC16c64b4c, |
1516 | dnnl_gIdhwO16o32i2o = dnnl_aCdefB16b32c2b, |
1517 | dnnl_gIdhwO16o32i4o = dnnl_aCdefB16b32c4b, |
1518 | dnnl_gIdhwO16o48i2o = dnnl_aCdefB16b48c2b, |
1519 | dnnl_gIdhwO16o48i4o = dnnl_aCdefB16b48c4b, |
1520 | dnnl_gIdhwO16o64i2o = dnnl_aCdefB16b64c2b, |
1521 | dnnl_gIdhwO16o64i4o = dnnl_aCdefB16b64c4b, |
1522 | dnnl_hwioG16g = dnnl_decbA16a, |
1523 | dnnl_hwioG8g = dnnl_decbA8a, |
1524 | dnnl_NCdhw40n16c = dnnl_ABcde40a16b, |
1525 | dnnl_NCw40n16c = dnnl_ABc40a16b, |
1526 | dnnl_NChw40n16c = dnnl_ABcd40a16b, |
1527 | dnnl_NCw40n32c = dnnl_ABc40a32b, |
1528 | dnnl_NChw40n32c = dnnl_ABcd40a32b, |
1529 | dnnl_NCdhw40n32c = dnnl_ABcde40a32b, |
1530 | dnnl_OIdhw4o8i8o2i = dnnl_ABcde4a8b8a2b, |
1531 | dnnl_OIhw4o8i8o2i = dnnl_ABcd4a8b8a2b, |
1532 | dnnl_OIw4o8i8o2i = dnnl_ABc4a8b8a2b, |
1533 | dnnl_gOIdhw4o8i8o2i = dnnl_aBCdef4b8c8b2c, |
1534 | dnnl_gOIhw4o8i8o2i = dnnl_aBCde4b8c8b2c, |
1535 | dnnl_gOIw4o8i8o2i = dnnl_aBCd4b8c8b2c, |
1536 | dnnl_IOdhw4i8o8i2o = dnnl_BAcde4b8a8b2a, |
1537 | dnnl_IOhw4i8o8i2o = dnnl_BAcd4b8a8b2a, |
1538 | dnnl_IOw4i8o8i2o = dnnl_BAc4b8a8b2a, |
1539 | dnnl_gIOdhw4i8o8i2o = dnnl_aCBdef4c8b8c2b, |
1540 | dnnl_gIOhw4i8o8i2o = dnnl_aCBde4c8b8c2b, |
1541 | dnnl_gIOw4i8o8i2o = dnnl_aCBd4c8b8c2b, |
1542 | dnnl_NCw2c32n8c = dnnl_ABc2b32a8b, |
1543 | dnnl_NChw2c32n8c = dnnl_ABcd2b32a8b, |
1544 | dnnl_NCdhw2c32n8c = dnnl_ABcde2b32a8b, |
1545 | dnnl_OIw2i8o16i4o = dnnl_ABc2b8a16b4a, |
1546 | dnnl_OIhw2i8o16i4o = dnnl_ABcd2b8a16b4a, |
1547 | dnnl_OIdhw2i8o16i4o = dnnl_ABcde2b8a16b4a, |
1548 | dnnl_OIw2o8i16o4i = dnnl_ABc2a8b16a4b, |
1549 | dnnl_OIw2o8i16o2i = dnnl_ABc2a8b16a2b, |
1550 | dnnl_IOw2i8o16i4o = dnnl_BAc2b8a16b4a, |
1551 | dnnl_IOw2i8o16i2o = dnnl_BAc2b8a16b2a, |
1552 | dnnl_OIhw2o8i16o4i = dnnl_ABcd2a8b16a4b, |
1553 | dnnl_OIhw2o8i16o2i = dnnl_ABcd2a8b16a2b, |
1554 | dnnl_IOhw2i8o16i4o = dnnl_BAcd2b8a16b4a, |
1555 | dnnl_IOhw2i8o16i2o = dnnl_BAcd2b8a16b2a, |
1556 | dnnl_OIdhw2o8i16o4i = dnnl_ABcde2a8b16a4b, |
1557 | dnnl_OIdhw2o8i16o2i = dnnl_ABcde2a8b16a2b, |
1558 | dnnl_IOdhw2i8o16i4o = dnnl_BAcde2b8a16b4a, |
1559 | dnnl_IOdhw2i8o16i2o = dnnl_BAcde2b8a16b2a, |
1560 | dnnl_gOIw2o8i16o2i = dnnl_aBCd2b8c16b2c, |
1561 | dnnl_gIOw2i8o16i2o = dnnl_aCBd2c8b16c2b, |
1562 | dnnl_gIOhw2i8o16i2o = dnnl_aBCde2c8b16c2b, |
1563 | dnnl_gIOdhw2i8o16i2o = dnnl_aBCdef2c8b16c2b, |
1564 | dnnl_gOIhw2o8i16o2i = dnnl_aBCde2b8c16b2c, |
1565 | dnnl_gOIdhw2o8i16o2i = dnnl_aBCdef2b8c16b2c, |
1566 | dnnl_gOIw2o8i16o4i = dnnl_aBCd2b8c16b4c, |
1567 | dnnl_gOIhw2o8i16o4i = dnnl_aBCde2b8c16b4c, |
1568 | } dnnl_format_tag_t; |
1569 | |
1570 | /// @} dnnl_api_memory |
1571 | |
1572 | /// @addtogroup dnnl_api_primitives |
1573 | /// @{ |
1574 | /// @addtogroup dnnl_api_primitives_common |
1575 | /// @{ |
1576 | |
1577 | /// Kinds of propagation. |
1578 | typedef enum { |
1579 | // TODO: suggest renames |
1580 | /// Undefined propagation type. |
1581 | dnnl_prop_kind_undef = 0, |
1582 | /// Forward data propagation (training mode). In this mode primitives |
1583 | /// perform computations necessary for subsequent backward propagation. |
1584 | dnnl_forward_training = 64, |
1585 | /// Forward data propagation (inference mode). In this mode primitives |
1586 | /// perform only computations that are necessary for inference and omit |
1587 | /// computations that are necessary only for backward propagation. |
1588 | dnnl_forward_inference = 96, |
1589 | /// Forward data propagation (alias for @c dnnl_forward_training). |
1590 | dnnl_forward = dnnl_forward_training, |
1591 | /// Backward propagation (with respect to all parameters). |
1592 | dnnl_backward = 128, |
1593 | /// Backward data propagation. |
1594 | dnnl_backward_data = 160, |
1595 | /// Backward weights propagation. |
1596 | dnnl_backward_weights = 192, |
1597 | /// Backward bias propagation. |
1598 | dnnl_backward_bias = 193, |
1599 | } dnnl_prop_kind_t; |
1600 | |
1601 | /// Kinds of primitives. Used to implement a way to extend the library with new |
1602 | /// primitives without changing the ABI. |
1603 | typedef enum { |
1604 | /// Undefined primitive |
1605 | dnnl_undefined_primitive, |
1606 | /// A reorder primitive. |
1607 | dnnl_reorder, |
1608 | /// A shuffle primitive. |
1609 | dnnl_shuffle, |
1610 | /// A (out-of-place) concat primitive. |
1611 | dnnl_concat, |
1612 | /// A sum primitive. |
1613 | dnnl_sum, |
1614 | /// A convolution primitive. |
1615 | dnnl_convolution, |
1616 | /// A deconvolution primitive. |
1617 | dnnl_deconvolution, |
1618 | /// An element-wise primitive. |
1619 | dnnl_eltwise, |
1620 | /// An LRN primitive. |
1621 | dnnl_lrn, |
1622 | /// A batch normalization primitive. |
1623 | dnnl_batch_normalization, |
1624 | /// An inner product primitive. |
1625 | dnnl_inner_product, |
1626 | /// A rnn primitive. |
1627 | dnnl_rnn, |
1628 | /// A matrix multiplication primitive (internal). |
1629 | dnnl_gemm, |
1630 | /// A binary primitive. |
1631 | dnnl_binary, |
1632 | /// A matrix multiplication primitive. |
1633 | dnnl_matmul, |
1634 | /// A resampling primitive. |
1635 | dnnl_resampling, |
1636 | /// A pooling primitive. |
1637 | dnnl_pooling, |
1638 | /// A reduction primitive. |
1639 | dnnl_reduction, |
1640 | /// A PReLU primitive. |
1641 | dnnl_prelu, |
1642 | /// A softmax primitive. |
1643 | dnnl_softmax, |
1644 | /// A layer normalization primitive. |
1645 | dnnl_layer_normalization, |
1646 | |
1647 | /// Parameter to allow internal only primitives without undefined behavior. |
1648 | /// This parameter is chosen to be valid for so long as sizeof(int) >= 2. |
1649 | dnnl_primitive_kind_max = 0x7fff, |
1650 | } dnnl_primitive_kind_t; |
1651 | |
1652 | /// Kinds of algorithms. |
1653 | typedef enum { |
1654 | dnnl_alg_kind_undef, |
1655 | /// Direct convolution |
1656 | dnnl_convolution_direct = 0x1, |
1657 | /// Winograd convolution |
1658 | dnnl_convolution_winograd = 0x2, |
1659 | /// Convolution algorithm(either direct or Winograd) is chosen just in time |
1660 | dnnl_convolution_auto = 0x3, |
1661 | /// Direct deconvolution |
1662 | dnnl_deconvolution_direct = 0xa, |
1663 | /// Winograd deconvolution |
1664 | dnnl_deconvolution_winograd = 0xb, |
1665 | /// Eltwise: ReLU |
1666 | dnnl_eltwise_relu = 0x20, |
1667 | /// Eltwise: hyperbolic tangent non-linearity (tanh) |
1668 | dnnl_eltwise_tanh, |
1669 | /// Eltwise: exponential linear unit (elu) |
1670 | dnnl_eltwise_elu, |
1671 | /// Eltwise: square |
1672 | dnnl_eltwise_square, |
1673 | /// Eltwise: abs |
1674 | dnnl_eltwise_abs, |
1675 | /// Eltwise: square root |
1676 | dnnl_eltwise_sqrt, |
1677 | /// Eltwise: linear |
1678 | dnnl_eltwise_linear, |
1679 | /// Eltwise: soft_relu |
1680 | dnnl_eltwise_soft_relu, |
1681 | /// Eltwise: hardsigmoid |
1682 | dnnl_eltwise_hardsigmoid, |
1683 | /// Eltwise: logistic |
1684 | dnnl_eltwise_logistic, |
1685 | /// Eltwise: exponent |
1686 | dnnl_eltwise_exp, |
1687 | /// Eltwise: gelu |
1688 | /// |
1689 | /// @note Tanh approximation formula is used to approximate |
1690 | /// the cumulative distribution function of a Gaussian here |
1691 | dnnl_eltwise_gelu_tanh, |
1692 | /// Eltwise: swish |
1693 | dnnl_eltwise_swish, |
1694 | /// Eltwise: natural logarithm |
1695 | dnnl_eltwise_log, |
1696 | /// Eltwise: clip |
1697 | dnnl_eltwise_clip, |
1698 | /// Eltwise: clip version 2 |
1699 | dnnl_eltwise_clip_v2, |
1700 | /// Eltwise: pow |
1701 | dnnl_eltwise_pow, |
1702 | /// Eltwise: erf-based gelu |
1703 | dnnl_eltwise_gelu_erf, |
1704 | /// Eltwise: round |
1705 | dnnl_eltwise_round, |
1706 | /// Eltwise: mish |
1707 | dnnl_eltwise_mish, |
1708 | /// Eltwise: hardswish |
1709 | dnnl_eltwise_hardswish, |
1710 | /// Eltwise: ReLU (dst for backward) |
1711 | dnnl_eltwise_relu_use_dst_for_bwd = 0x100, |
1712 | /// Eltwise: hyperbolic tangent non-linearity (tanh) (dst for backward) |
1713 | dnnl_eltwise_tanh_use_dst_for_bwd, |
1714 | /// Eltwise: exponential linear unit (elu) (dst for backward) |
1715 | dnnl_eltwise_elu_use_dst_for_bwd, |
1716 | /// Eltwise: square root (dst for backward) |
1717 | dnnl_eltwise_sqrt_use_dst_for_bwd, |
1718 | /// Eltwise: logistic (dst for backward) |
1719 | dnnl_eltwise_logistic_use_dst_for_bwd, |
1720 | /// Eltwise: exp (dst for backward) |
1721 | dnnl_eltwise_exp_use_dst_for_bwd, |
1722 | /// Eltwise: clip version 2 (dst for backward) |
1723 | dnnl_eltwise_clip_v2_use_dst_for_bwd, |
1724 | /// Max pooling |
1725 | dnnl_pooling_max = 0x1ff, |
1726 | /// Average pooling include padding |
1727 | dnnl_pooling_avg_include_padding = 0x2ff, |
1728 | /// Average pooling exclude padding |
1729 | dnnl_pooling_avg_exclude_padding = 0x3ff, |
1730 | /// Local response normalization (LRN) across multiple channels |
1731 | dnnl_lrn_across_channels = 0xaff, |
1732 | /// LRN within a single channel |
1733 | dnnl_lrn_within_channel = 0xbff, |
1734 | /// RNN cell |
1735 | dnnl_vanilla_rnn = 0x1fff, |
1736 | /// LSTM cell |
1737 | dnnl_vanilla_lstm = 0x2fff, |
1738 | /// GRU cell |
1739 | dnnl_vanilla_gru = 0x3fff, |
1740 | /// GRU cell with linear before reset |
1741 | /// |
1742 | /// Modification of original GRU cell. Differs from #dnnl_vanilla_gru |
1743 | /// in how the new memory gate is calculated: |
1744 | /// \f[ c_t = tanh(W_c*x_t + b_{c_x} + r_t*(U_c*h_{t-1}+b_{c_h})) \f] |
1745 | /// Primitive expects 4 biases on input: |
1746 | /// \f$[b_{u}, b_{r}, b_{c_x}, b_{c_h}]\f$ |
1747 | dnnl_lbr_gru = 0x4fff, |
1748 | /// AUGRU cell |
1749 | dnnl_vanilla_augru = 0x5fff, |
1750 | /// AUGRU cell with linear before reset |
1751 | dnnl_lbr_augru = 0x6fff, |
1752 | /// Binary add |
1753 | dnnl_binary_add = 0x1fff0, |
1754 | /// Binary mul |
1755 | dnnl_binary_mul = 0x1fff1, |
1756 | /// Binary max |
1757 | dnnl_binary_max = 0x1fff2, |
1758 | /// Binary min |
1759 | dnnl_binary_min = 0x1fff3, |
1760 | /// Binary div |
1761 | dnnl_binary_div = 0x1fff4, |
1762 | /// Binary sub |
1763 | dnnl_binary_sub = 0x1fff5, |
1764 | /// Binary greater or equal |
1765 | dnnl_binary_ge = 0x1fff6, |
1766 | /// Binary greater than |
1767 | dnnl_binary_gt = 0x1fff7, |
1768 | /// Binary less or equal |
1769 | dnnl_binary_le = 0x1fff8, |
1770 | /// Binary less than |
1771 | dnnl_binary_lt = 0x1fff9, |
1772 | /// Binary equal |
1773 | dnnl_binary_eq = 0x1fffa, |
1774 | /// Binary not equal |
1775 | dnnl_binary_ne = 0x1fffb, |
1776 | /// Nearest Neighbor Resampling Method |
1777 | dnnl_resampling_nearest = 0x2fff0, |
1778 | /// Linear Resampling Method |
1779 | dnnl_resampling_linear = 0x2fff1, |
1780 | /// Reduction using max |
1781 | dnnl_reduction_max, |
1782 | /// Reduction using min |
1783 | dnnl_reduction_min, |
1784 | /// Reduction using sum |
1785 | dnnl_reduction_sum, |
1786 | /// Reduction using mul |
1787 | dnnl_reduction_mul, |
1788 | /// Reduction using mean |
1789 | dnnl_reduction_mean, |
1790 | /// Reduction using lp norm |
1791 | dnnl_reduction_norm_lp_max, |
1792 | /// Reduction using lp norm |
1793 | dnnl_reduction_norm_lp_sum, |
1794 | /// Reduction using lp norm without final pth-root |
1795 | dnnl_reduction_norm_lp_power_p_max, |
1796 | /// Reduction using lp norm without final pth-root |
1797 | dnnl_reduction_norm_lp_power_p_sum, |
1798 | /// Softmax |
1799 | dnnl_softmax_accurate = 0x30000, |
1800 | /// Logsoftmax |
1801 | dnnl_softmax_log, |
1802 | } dnnl_alg_kind_t; |
1803 | |
1804 | /// Flags for normalization primitives. |
1805 | typedef enum { |
1806 | /// Use no normalization flags |
1807 | /// |
1808 | /// If specified |
1809 | /// - on forward training propagation mean and variance are computed and |
1810 | /// stored as output |
1811 | /// - on backward propagation compute full derivative wrt data |
1812 | /// - on backward propagation prop_kind == #dnnl_backward_data has the same |
1813 | /// behavior as prop_kind == #dnnl_backward |
1814 | dnnl_normalization_flags_none = 0x0U, |
1815 | |
1816 | /// Use global statistics |
1817 | /// |
1818 | /// If specified |
1819 | /// - on forward propagation use mean and variance provided by user (input) |
1820 | /// - on backward propagation reduces the amount of computations, since |
1821 | /// mean and variance are considered as constants |
1822 | /// |
1823 | /// If not specified: |
1824 | /// - on forward propagation mean and variance are computed and stored as |
1825 | /// output |
1826 | /// - on backward propagation compute full derivative wrt data |
1827 | dnnl_use_global_stats = 0x1U, |
1828 | |
1829 | /// Use scale parameter |
1830 | /// |
1831 | /// If specified: |
1832 | /// - on forward propagation use scale for the normalization results |
1833 | /// - on backward propagation (for prop_kind == #dnnl_backward) compute |
1834 | /// diff wrt scale (hence one extra output used) |
1835 | dnnl_use_scale = 0x2U, |
1836 | |
1837 | /// Use shift parameter |
1838 | /// |
1839 | /// If specified: |
1840 | /// - on forward propagation use shift (aka bias) for the normalization |
1841 | /// results |
1842 | /// - on backward propagation (for prop_kind == #dnnl_backward) compute |
1843 | /// diff wrt shift (hence one extra output used) |
1844 | dnnl_use_shift = 0x4U, |
1845 | |
1846 | /// Fuse with ReLU |
1847 | /// |
1848 | /// The flag implies negative slope being 0. On training this is the only |
1849 | /// configuration supported. For inference, to use non-zero negative slope |
1850 | /// consider using @ref dev_guide_attributes_post_ops. |
1851 | /// |
1852 | /// If specified: |
1853 | /// - on inference this option behaves the same as if the primitive were |
1854 | /// fused with ReLU using post ops API with zero negative slope. |
1855 | /// - on training primitive requires workspace (required to be able to |
1856 | /// perform backward pass) |
1857 | dnnl_fuse_norm_relu = 0x8U, |
1858 | |
1859 | /// Fuse with Add and then fuse with ReLU |
1860 | /// |
1861 | /// If specified: |
1862 | /// |
1863 | /// - on forward propagation apply element-wise binary Add operation to |
1864 | /// to the normalization results with an additional input tensor and then |
1865 | /// apply ReLU with negative slope being 0. |
1866 | /// - on training primitive requires workspace (required to be able to |
1867 | /// perform backward pass). |
1868 | /// - on backward propagation save the result of backward ReLU operation |
1869 | /// with input tensor and workspace from forward pass to extra output |
1870 | /// tensor and then perform backward normalization. |
1871 | dnnl_fuse_norm_add_relu = 0x10U, |
1872 | |
1873 | } dnnl_normalization_flags_t; |
1874 | |
1875 | /// @} dnnl_api_primitives_common |
1876 | /// @} dnnl_api_primitives |
1877 | |
1878 | /// @addtogroup dnnl_api_memory |
1879 | /// @{ |
1880 | |
1881 | /// A wildcard value for dimensions that are unknown at a primitive creation |
1882 | /// time. |
1883 | #define DNNL_RUNTIME_DIM_VAL INT64_MIN |
1884 | |
1885 | /// A `size_t` counterpart of the DNNL_RUNTIME_DIM_VAL. |
1886 | /// For instance, this value is returned by dnnl_memory_desc_get_size() if |
1887 | /// either of the dimensions or strides equal to #DNNL_RUNTIME_DIM_VAL. |
1888 | #define DNNL_RUNTIME_SIZE_VAL ((size_t)DNNL_RUNTIME_DIM_VAL) |
1889 | |
1890 | /// @cond DO_NOT_DOCUMENT_THIS |
1891 | /// Hex representation for a **special** quiet NAN (!= NAN from math.h) |
1892 | static const union { |
1893 | unsigned u; |
1894 | float f; |
1895 | } DNNL_RUNTIME_F32_VAL_REP = {0x7fc000d0}; |
1896 | /// @endcond |
1897 | |
1898 | /// A wildcard value for floating point values that are unknown at a primitive |
1899 | /// creation time. |
1900 | #define DNNL_RUNTIME_F32_VAL (DNNL_RUNTIME_F32_VAL_REP.f) |
1901 | |
1902 | /// @cond DO_NOT_DOCUMENT_THIS |
1903 | static const int DNNL_RUNTIME_S32_VAL_REP = INT32_MIN; |
1904 | /// @endcond |
1905 | |
1906 | /// A wildcard value for int32_t values that are unknown at a primitive creation |
1907 | /// time. |
1908 | #define DNNL_RUNTIME_S32_VAL DNNL_RUNTIME_S32_VAL_REP |
1909 | |
1910 | /// @struct dnnl_memory_desc |
1911 | /// An opaque structure to describe a memory descriptor. |
1912 | struct dnnl_memory_desc; |
1913 | |
1914 | /// A memory descriptor handle. |
1915 | typedef struct dnnl_memory_desc *dnnl_memory_desc_t; |
1916 | |
1917 | /// A memory descriptor handle. |
1918 | typedef const struct dnnl_memory_desc *const_dnnl_memory_desc_t; |
1919 | |
1920 | /// @struct dnnl_memory |
1921 | /// An opaque structure to describe a memory. |
1922 | struct dnnl_memory; |
1923 | |
1924 | /// A memory handle. |
1925 | typedef struct dnnl_memory *dnnl_memory_t; |
1926 | |
1927 | /// A constant memory handle. |
1928 | typedef const struct dnnl_memory *const_dnnl_memory_t; |
1929 | |
1930 | /// Special pointer value that indicates that a memory object should not have |
1931 | /// an underlying buffer. |
1932 | #define DNNL_MEMORY_NONE (NULL) |
1933 | |
1934 | /// Special pointer value that indicates that the library needs to allocate an |
1935 | /// underlying buffer for a memory object. |
1936 | #define DNNL_MEMORY_ALLOCATE ((void *)(size_t)-1) |
1937 | |
1938 | /// @} dnnl_api_memory |
1939 | |
1940 | /// @addtogroup dnnl_api_primitives |
1941 | /// @{ |
1942 | |
1943 | /// @addtogroup dnnl_api_rnn |
1944 | /// @{ |
1945 | |
1946 | /// Flags for RNN cell. |
1947 | typedef enum { |
1948 | /// Undefined RNN flags |
1949 | dnnl_rnn_flags_undef = 0x0 |
1950 | } dnnl_rnn_flags_t; |
1951 | |
1952 | /// A direction of RNN primitive execution. |
1953 | typedef enum { |
1954 | /// Undefined RNN direction. |
1955 | dnnl_rnn_direction_undef = 0, |
1956 | /// Unidirectional execution of RNN primitive from left to right. |
1957 | dnnl_unidirectional_left2right, |
1958 | /// Unidirectional execution of RNN primitive from right to left. |
1959 | dnnl_unidirectional_right2left, |
1960 | /// Bidirectional execution of RNN primitive with concatenation of the |
1961 | /// results. |
1962 | dnnl_bidirectional_concat, |
1963 | /// Bidirectional execution of RNN primitive with summation of the |
1964 | /// results. |
1965 | dnnl_bidirectional_sum, |
1966 | } dnnl_rnn_direction_t; |
1967 | |
1968 | /// @} dnnl_api_rnn |
1969 | |
1970 | /// @} dnnl_api_primitives |
1971 | |
1972 | /// @addtogroup dnnl_api_primitives |
1973 | /// @{ |
1974 | /// @addtogroup dnnl_api_primitives_common |
1975 | /// @{ |
1976 | |
1977 | /// @struct dnnl_primitive_desc |
1978 | /// @brief An opaque structure to describe a primitive descriptor. |
1979 | struct dnnl_primitive_desc; |
1980 | |
1981 | /// @brief A primitive descriptor handle. |
1982 | typedef struct dnnl_primitive_desc *dnnl_primitive_desc_t; |
1983 | |
1984 | /// @brief A constant primitive descriptor handle. |
1985 | typedef const struct dnnl_primitive_desc *const_dnnl_primitive_desc_t; |
1986 | |
1987 | /// @} dnnl_api_primitives_common |
1988 | |
1989 | /// @addtogroup dnnl_api_attributes |
1990 | /// @{ |
1991 | |
1992 | /// Scratchpad mode |
1993 | typedef enum { |
1994 | /// The library manages the scratchpad allocation according to the policy |
1995 | /// specified by the `DNNL_ENABLE_CONCURRENT_EXEC` |
1996 | /// [build option](@ref dev_guide_build_options) (default). |
1997 | /// |
1998 | /// When `DNNL_ENABLE_CONCURRENT_EXEC=OFF` (default), the library |
1999 | /// scratchpad is common to all primitives to reduce the memory footprint. |
2000 | /// This configuration comes with limited thread-safety properties, namely |
2001 | /// primitives can be created and executed in parallel but cannot migrate |
2002 | /// between threads (in other words, each primitive should be executed in |
2003 | /// the same thread it was created in). |
2004 | /// |
2005 | /// When `DNNL_ENABLE_CONCURRENT_EXEC=ON`, the library scratchpad is |
2006 | /// private to each primitive. The memory footprint is larger than when |
2007 | /// using `DNNL_ENABLE_CONCURRENT_EXEC=OFF` but different primitives can be |
2008 | /// created and run concurrently (the same primitive cannot be run |
2009 | /// concurrently from two different threads though). |
2010 | dnnl_scratchpad_mode_library, |
2011 | /// The user manages the scratchpad allocation by querying and providing |
2012 | /// the scratchpad memory to primitives. This mode is thread-safe as long |
2013 | /// as the scratchpad buffers are not used concurrently by two primitive |
2014 | /// executions. |
2015 | dnnl_scratchpad_mode_user, |
2016 | } dnnl_scratchpad_mode_t; |
2017 | |
2018 | /// @struct dnnl_primitive_attr |
2019 | /// @brief An opaque structure for primitive descriptor attributes. |
2020 | /// |
2021 | /// Attributes may contain: |
2022 | /// - output scales (to scale the result prior to storing it to the memory) |
2023 | struct dnnl_primitive_attr; |
2024 | |
2025 | /// @brief A primitive descriptor attributes handle that controls primitive |
2026 | /// behavior. |
2027 | typedef struct dnnl_primitive_attr *dnnl_primitive_attr_t; |
2028 | |
2029 | /// @brief A constant primitive descriptor attributes handle. |
2030 | typedef const struct dnnl_primitive_attr *const_dnnl_primitive_attr_t; |
2031 | |
2032 | /// @struct dnnl_post_ops |
2033 | /// @brief An opaque structure for a chain of post operations. |
2034 | /// |
2035 | /// dnnl_post_ops can be used to perform some (trivial) operations like |
2036 | /// accumulation or eltwise after certain primitives like convolution. |
2037 | /// |
2038 | /// Post operations might be combined together, making a chain of post |
2039 | /// operations. For instance one can configure convolution followed by |
2040 | /// accumulation followed by eltwise. This might be especially beneficial |
2041 | /// for residual learning blocks. |
2042 | /// |
2043 | /// @warning |
2044 | /// Of course not all combinations are supported, so the user should handle |
2045 | /// errors accordingly. |
2046 | /// |
2047 | /// Supported post operations: |
2048 | /// - accumulation (base primitive: convolution) |
2049 | /// - eltwise (base primitive: convolution) |
2050 | struct dnnl_post_ops; |
2051 | |
2052 | /// @brief A post operation chain handle. |
2053 | typedef struct dnnl_post_ops *dnnl_post_ops_t; |
2054 | |
2055 | /// @brief A constant post operation chain handle. |
2056 | typedef const struct dnnl_post_ops *const_dnnl_post_ops_t; |
2057 | |
2058 | /// @} dnnl_api_attributes |
2059 | |
2060 | /// @addtogroup dnnl_api_primitives_common |
2061 | /// @{ |
2062 | |
2063 | /// @struct dnnl_primitive |
2064 | /// An opaque structure to describe a primitive. |
2065 | struct dnnl_primitive; |
2066 | /// A primitive handle. |
2067 | typedef struct dnnl_primitive *dnnl_primitive_t; |
2068 | /// A constant primitive handle. |
2069 | typedef const struct dnnl_primitive *const_dnnl_primitive_t; |
2070 | |
2071 | /// Source argument #0. |
2072 | #define DNNL_ARG_SRC_0 1 |
2073 | /// A special mnemonic for source argument for primitives that have a |
2074 | /// single source. An alias for #DNNL_ARG_SRC_0. |
2075 | #define DNNL_ARG_SRC DNNL_ARG_SRC_0 |
2076 | /// A special mnemonic for RNN input vector. An alias for |
2077 | /// #DNNL_ARG_SRC_0. |
2078 | #define DNNL_ARG_SRC_LAYER DNNL_ARG_SRC_0 |
2079 | /// A special mnemonic for reorder source argument. An alias for |
2080 | /// #DNNL_ARG_SRC_0. |
2081 | #define DNNL_ARG_FROM DNNL_ARG_SRC_0 |
2082 | |
2083 | /// Source argument #1. |
2084 | #define DNNL_ARG_SRC_1 2 |
2085 | /// A special mnemonic for RNN input recurrent hidden state vector. An alias |
2086 | /// for #DNNL_ARG_SRC_1. |
2087 | #define DNNL_ARG_SRC_ITER DNNL_ARG_SRC_1 |
2088 | |
2089 | /// Source argument #2. |
2090 | #define DNNL_ARG_SRC_2 3 |
2091 | /// A special mnemonic for RNN input recurrent cell state vector. An alias for |
2092 | /// #DNNL_ARG_SRC_2. |
2093 | #define DNNL_ARG_SRC_ITER_C DNNL_ARG_SRC_2 |
2094 | |
2095 | /// Source argument #3. |
2096 | #define DNNL_ARG_SRC_3 4 |
2097 | /// A special mnemonic for RNN input recurrent cell attention vector. An alias for |
2098 | /// #DNNL_ARG_SRC_3. |
2099 | #define DNNL_ARG_AUGRU_ATTENTION DNNL_ARG_SRC_3 |
2100 | |
2101 | /// Destination argument #0. |
2102 | #define DNNL_ARG_DST_0 17 |
2103 | /// A special mnemonic for destination argument for primitives that have a |
2104 | /// single destination. An alias for #DNNL_ARG_DST_0. |
2105 | #define DNNL_ARG_DST DNNL_ARG_DST_0 |
2106 | /// A special mnemonic for reorder destination argument. An alias for |
2107 | /// #DNNL_ARG_DST_0. |
2108 | #define DNNL_ARG_TO DNNL_ARG_DST_0 |
2109 | /// A special mnemonic for RNN output vector. An alias for #DNNL_ARG_DST_0. |
2110 | #define DNNL_ARG_DST_LAYER DNNL_ARG_DST_0 |
2111 | |
2112 | /// Destination argument #1. |
2113 | #define DNNL_ARG_DST_1 18 |
2114 | /// A special mnemonic for RNN input recurrent hidden state vector. An |
2115 | /// alias for #DNNL_ARG_DST_1. |
2116 | #define DNNL_ARG_DST_ITER DNNL_ARG_DST_1 |
2117 | |
2118 | /// Destination argument #2. |
2119 | #define DNNL_ARG_DST_2 19 |
2120 | /// A special mnemonic for LSTM output recurrent cell state vector. An |
2121 | /// alias for #DNNL_ARG_DST_2. |
2122 | #define DNNL_ARG_DST_ITER_C DNNL_ARG_DST_2 |
2123 | |
2124 | /// Weights argument #0. |
2125 | #define DNNL_ARG_WEIGHTS_0 33 |
2126 | /// A special mnemonic for primitives that have a single weights |
2127 | /// argument. Alias for #DNNL_ARG_WEIGHTS_0. |
2128 | #define DNNL_ARG_WEIGHTS DNNL_ARG_WEIGHTS_0 |
2129 | /// A special mnemonic for RNN weights applied to the layer input. An |
2130 | /// alias for #DNNL_ARG_WEIGHTS_0. |
2131 | #define DNNL_ARG_WEIGHTS_LAYER DNNL_ARG_WEIGHTS_0 |
2132 | |
2133 | /// Weights argument #1. |
2134 | #define DNNL_ARG_WEIGHTS_1 34 |
2135 | /// A special mnemonic for RNN weights applied to the recurrent input. |
2136 | /// An alias for #DNNL_ARG_WEIGHTS_1. |
2137 | #define DNNL_ARG_WEIGHTS_ITER DNNL_ARG_WEIGHTS_1 |
2138 | |
2139 | /// Weights argument #2. |
2140 | #define DNNL_ARG_WEIGHTS_2 35 |
2141 | /// A special mnemonic for RNN weights applied to the peephole weights. |
2142 | /// An alias for #DNNL_ARG_WEIGHTS_2. |
2143 | #define DNNL_ARG_WEIGHTS_PEEPHOLE DNNL_ARG_WEIGHTS_2 |
2144 | |
2145 | /// Weights argument #3. |
2146 | #define DNNL_ARG_WEIGHTS_3 36 |
2147 | /// A special mnemonic for RNN weights applied to the projection weights. |
2148 | /// An alias for #DNNL_ARG_WEIGHTS_3. |
2149 | #define DNNL_ARG_WEIGHTS_PROJECTION DNNL_ARG_WEIGHTS_3 |
2150 | |
2151 | /// Bias tensor argument. |
2152 | #define DNNL_ARG_BIAS 41 |
2153 | |
2154 | /// Mean values tensor argument. |
2155 | #define DNNL_ARG_MEAN 49 |
2156 | /// Variance values tensor argument. |
2157 | #define DNNL_ARG_VARIANCE 50 |
2158 | |
2159 | /// A special mnemonic for scale argument of normalization primitives. |
2160 | #define DNNL_ARG_SCALE 51 |
2161 | /// A special mnemonic for shift argument of normalization primitives. |
2162 | #define DNNL_ARG_SHIFT 52 |
2163 | |
2164 | /// Workspace tensor argument. Workspace is used to pass information |
2165 | /// from forward propagation to backward propagation computations. |
2166 | #define DNNL_ARG_WORKSPACE 64 |
2167 | /// Scratchpad (temporary storage) tensor argument. |
2168 | #define DNNL_ARG_SCRATCHPAD 80 |
2169 | |
2170 | /// Gradient (diff) of the source argument #0. |
2171 | #define DNNL_ARG_DIFF_SRC_0 129 |
2172 | /// A special mnemonic for primitives that have a single diff source argument. |
2173 | /// An alias for #DNNL_ARG_DIFF_SRC_0. |
2174 | #define DNNL_ARG_DIFF_SRC DNNL_ARG_DIFF_SRC_0 |
2175 | /// A special mnemonic for gradient (diff) of RNN input vector. An alias for |
2176 | /// #DNNL_ARG_DIFF_SRC_0. |
2177 | #define DNNL_ARG_DIFF_SRC_LAYER DNNL_ARG_DIFF_SRC_0 |
2178 | |
2179 | /// Gradient (diff) of the source argument #1. |
2180 | #define DNNL_ARG_DIFF_SRC_1 130 |
2181 | /// A special mnemonic for gradient (diff) of RNN input recurrent hidden state |
2182 | /// vector. An alias for #DNNL_ARG_DIFF_SRC_1. |
2183 | #define DNNL_ARG_DIFF_SRC_ITER DNNL_ARG_DIFF_SRC_1 |
2184 | |
2185 | /// Gradient (diff) of the source argument #2. |
2186 | #define DNNL_ARG_DIFF_SRC_2 131 |
2187 | /// A special mnemonic for gradient (diff) of RNN input recurrent cell state |
2188 | /// vector. An alias for #DNNL_ARG_DIFF_SRC_1. |
2189 | #define DNNL_ARG_DIFF_SRC_ITER_C DNNL_ARG_DIFF_SRC_2 |
2190 | |
2191 | /// Gradient (diff) of the source argument #3. |
2192 | #define DNNL_ARG_DIFF_SRC_3 132 |
2193 | /// A special mnemonic for gradient (diff) of RNN input recurrent cell attention |
2194 | /// vector. An alias for #DNNL_ARG_DIFF_SRC_3. |
2195 | #define DNNL_ARG_DIFF_AUGRU_ATTENTION DNNL_ARG_DIFF_SRC_3 |
2196 | |
2197 | /// Gradient (diff) of the destination argument #0. |
2198 | #define DNNL_ARG_DIFF_DST_0 145 |
2199 | /// A special mnemonic for primitives that have a single diff destination |
2200 | /// argument. An alias for #DNNL_ARG_DIFF_DST_0. |
2201 | #define DNNL_ARG_DIFF_DST DNNL_ARG_DIFF_DST_0 |
2202 | /// A special mnemonic for gradient (diff) of RNN output vector. An alias for |
2203 | /// #DNNL_ARG_DIFF_DST_0. |
2204 | #define DNNL_ARG_DIFF_DST_LAYER DNNL_ARG_DIFF_DST_0 |
2205 | |
2206 | /// Gradient (diff) of the destination argument #1. |
2207 | #define DNNL_ARG_DIFF_DST_1 146 |
2208 | /// A special mnemonic for gradient (diff) of RNN input recurrent hidden state |
2209 | /// vector. An alias for #DNNL_ARG_DIFF_DST_1. |
2210 | #define DNNL_ARG_DIFF_DST_ITER DNNL_ARG_DIFF_DST_1 |
2211 | |
2212 | /// Gradient (diff) of the destination argument #2. |
2213 | #define DNNL_ARG_DIFF_DST_2 147 |
2214 | /// A special mnemonic for gradient (diff) of RNN input recurrent cell state |
2215 | /// vector. An alias for #DNNL_ARG_DIFF_DST_2. |
2216 | #define DNNL_ARG_DIFF_DST_ITER_C DNNL_ARG_DIFF_DST_2 |
2217 | |
2218 | /// Gradient (diff) of the weights argument #0. |
2219 | #define DNNL_ARG_DIFF_WEIGHTS_0 161 |
2220 | /// A special mnemonic for primitives that have a single diff weights |
2221 | /// argument. Alias for #DNNL_ARG_DIFF_WEIGHTS_0. |
2222 | #define DNNL_ARG_DIFF_WEIGHTS DNNL_ARG_DIFF_WEIGHTS_0 |
2223 | /// A special mnemonic for diff of RNN weights applied to the layer input. An |
2224 | /// alias for #DNNL_ARG_DIFF_WEIGHTS_0. |
2225 | #define DNNL_ARG_DIFF_WEIGHTS_LAYER DNNL_ARG_DIFF_WEIGHTS_0 |
2226 | |
2227 | /// Gradient (diff) of the weights argument #1. |
2228 | #define DNNL_ARG_DIFF_WEIGHTS_1 162 |
2229 | /// A special mnemonic for diff of RNN weights applied to the recurrent input. |
2230 | /// An alias for #DNNL_ARG_DIFF_WEIGHTS_1. |
2231 | #define DNNL_ARG_DIFF_WEIGHTS_ITER DNNL_ARG_DIFF_WEIGHTS_1 |
2232 | |
2233 | /// Gradient (diff) of the weights argument #2. |
2234 | #define DNNL_ARG_DIFF_WEIGHTS_2 163 |
2235 | /// A special mnemonic for diff of RNN weights applied to the peephole weights. |
2236 | /// An alias for #DNNL_ARG_DIFF_WEIGHTS_2. |
2237 | #define DNNL_ARG_DIFF_WEIGHTS_PEEPHOLE DNNL_ARG_DIFF_WEIGHTS_2 |
2238 | |
2239 | /// Gradient (diff) of the weights argument #3. |
2240 | #define DNNL_ARG_DIFF_WEIGHTS_3 164 |
2241 | /// A special mnemonic for diff of RNN weights applied to the projection |
2242 | /// weights. An alias for #DNNL_ARG_DIFF_WEIGHTS_3. |
2243 | #define DNNL_ARG_DIFF_WEIGHTS_PROJECTION DNNL_ARG_DIFF_WEIGHTS_3 |
2244 | |
2245 | /// Gradient (diff) of the bias tensor argument. |
2246 | #define DNNL_ARG_DIFF_BIAS 169 |
2247 | |
2248 | /// A special mnemonic for scale argument of normalization primitives. |
2249 | #define DNNL_ARG_DIFF_SCALE 255 |
2250 | /// A special mnemonic for shift argument of normalization primitives. |
2251 | #define DNNL_ARG_DIFF_SHIFT 256 |
2252 | |
2253 | /// Output scaling factors provided at execution time. |
2254 | #define DNNL_ARG_ATTR_OUTPUT_SCALES 513 |
2255 | |
2256 | /// Starting index for source arguments for primitives that take a variable |
2257 | /// number of source arguments. |
2258 | #define DNNL_ARG_MULTIPLE_SRC 1024 |
2259 | /// Starting index for destination arguments for primitives that produce a |
2260 | /// variable number of destination arguments. |
2261 | #define DNNL_ARG_MULTIPLE_DST 2048 |
2262 | |
2263 | /// Scaling factors provided at execution time. |
2264 | #define DNNL_ARG_ATTR_SCALES 4096 |
2265 | |
2266 | /// Zero points provided at execution time. |
2267 | #define DNNL_ARG_ATTR_ZERO_POINTS 8192 |
2268 | |
2269 | /// Arguments for fused depthwise convolution. |
2270 | /// See @ref dev_guide_attributes_post_ops_depthwise_fusion |
2271 | #define DNNL_ARG_ATTR_POST_OP_DW 16384 |
2272 | |
2273 | /// Starting point for a binary post operation. |
2274 | #define DNNL_ARG_ATTR_MULTIPLE_POST_OP_BASE 32768 |
2275 | |
2276 | /// Arguments for a binary post operation. Up to 32 arguments are supported. |
2277 | /// See @ref dev_guide_attributes_post_ops_binary_fusion |
2278 | #define DNNL_ARG_ATTR_MULTIPLE_POST_OP(idx) \ |
2279 | (DNNL_ARG_ATTR_MULTIPLE_POST_OP_BASE * ((idx) + 1)) |
2280 | |
2281 | /// A structure that contains an index and a memory object, and is used to pass |
2282 | /// arguments to dnnl_primitive_execute(). |
2283 | typedef struct { |
2284 | int arg; ///< An argument index, e.g. DNNL_ARG_SRC |
2285 | dnnl_memory_t memory; ///< Input/output memory |
2286 | } dnnl_exec_arg_t; |
2287 | |
2288 | /// @} dnnl_api_primitives_common |
2289 | |
2290 | /// @addtogroup dnnl_api_primitives_common |
2291 | /// @{ |
2292 | |
2293 | /// Primitive descriptor query specification |
2294 | /// |
2295 | /// For generic function dnnl_primitive_desc_query(), the type of result must |
2296 | /// agree with the queried argument. The correspondence table: |
2297 | /// |
2298 | /// Query kind | Type of query result |
2299 | /// --------------------------------|----------------------------- |
2300 | /// dnnl_query_*_engine | #dnnl_engine_t * |
2301 | /// #dnnl_query_primitive_kind | #dnnl_primitive_kind_t * |
2302 | /// dnnl_query_*_s32 | int * |
2303 | /// dnnl_query_*_s64 | #dnnl_dim_t * (same as int64_t *) |
2304 | /// dnnl_query_*_f32 | float * |
2305 | /// dnnl_query_*_f64 | double * |
2306 | /// dnnl_query_*_str | const char ** |
2307 | /// dnnl_query_*_md | #const_dnnl_memory_desc_t * |
2308 | /// dnnl_query_*_pd | #const_dnnl_primitive_desc_t * |
2309 | /// dnnl_query_cache_blob_id | const uint8_t ** |
2310 | /// dnnl_query_strides | const #dnnl_dims_t ** |
2311 | /// dnnl_query_dilations | const #dnnl_dims_t ** |
2312 | /// dnnl_query_padding_l | const #dnnl_dims_t ** |
2313 | /// dnnl_query_padding_r | const #dnnl_dims_t ** |
2314 | /// dnnl_query_flags | unsigned * |
2315 | /// dnnl_query_alg_kind | #dnnl_alg_kind_t * |
2316 | /// dnnl_query_factors | const float ** |
2317 | /// dnnl_query_cell_kind | #dnnl_alg_kind_t * |
2318 | /// dnnl_query_direction | #dnnl_rnn_direction_t * |
2319 | /// dnnl_query_activation_kind | #dnnl_alg_kind_t * |
2320 | /// dnnl_query_kernel | const #dnnl_dims_t ** |
2321 | /// dnnl_query_dims | const #dnnl_dims_t ** |
2322 | /// dnnl_query_data_type | #dnnl_data_type_t * |
2323 | /// dnnl_query_padded_dims | const #dnnl_dims_t ** |
2324 | /// dnnl_query_padded_offsets | const #dnnl_dims_t ** |
2325 | /// dnnl_query_format_kind | #dnnl_format_kind_t * |
2326 | /// dnnl_query_inner_blks | const #dnnl_dims_t ** |
2327 | /// dnnl_query_inner_idxs | const #dnnl_dims_t ** |
2328 | /// |
2329 | /// @note |
2330 | /// Rule of thumb: all opaque types and structures are returned by |
2331 | /// reference. All numbers are returned by value. |
2332 | /// |
2333 | /// @warning |
2334 | /// All returned references point to constant objects and are valid only |
2335 | /// during the lifetime of the queried primitive descriptor. Returned objects |
2336 | /// must not be destroyed by the user. If you need to keep the object longer |
2337 | /// than the lifetime of the queried primitive descriptor, use |
2338 | /// dnnl_primitive_desc_clone() to make a copy. |
2339 | typedef enum { |
2340 | dnnl_query_undef = 0, ///< no query |
2341 | |
2342 | dnnl_query_engine, ///< execution engine |
2343 | dnnl_query_primitive_kind, ///< primitive kind |
2344 | |
2345 | dnnl_query_num_of_inputs_s32, ///< number of inputs expected |
2346 | dnnl_query_num_of_outputs_s32, ///< number of outputs expected |
2347 | |
2348 | dnnl_query_time_estimate_f64, ///< runtime estimation (seconds) |
2349 | dnnl_query_memory_consumption_s64, ///< memory consumption -- extra |
2350 | /// (scratch) memory, additional to |
2351 | /// all inputs and outputs memory |
2352 | /// (bytes) |
2353 | |
2354 | dnnl_query_scratchpad_engine, ///< scratchpad engine -- engine to be used |
2355 | /// for creating scratchpad memory |
2356 | |
2357 | dnnl_query_impl_info_str, ///< implementation name |
2358 | |
2359 | dnnl_query_reorder_src_engine, ///< source engine |
2360 | dnnl_query_reorder_dst_engine, ///< destination engine |
2361 | |
2362 | dnnl_query_prop_kind, ///< propagation kind |
2363 | |
2364 | dnnl_query_cache_blob_id_size_s64, ///< size of cache blob ID in bytes |
2365 | dnnl_query_cache_blob_id, ///< cache blob ID (pointer to array) |
2366 | |
2367 | dnnl_query_strides, ///< strides |
2368 | dnnl_query_dilations, ///< dilations |
2369 | dnnl_query_padding_l, ///< left padding |
2370 | dnnl_query_padding_r, ///< right padding |
2371 | dnnl_query_epsilon_f32, ///< epsilon |
2372 | dnnl_query_flags, ///< flags |
2373 | dnnl_query_alg_kind, ///< algorithm kind |
2374 | dnnl_query_alpha_f32, ///< alpha |
2375 | dnnl_query_beta_f32, ///< beta |
2376 | dnnl_query_axis_s32, ///< axis |
2377 | dnnl_query_local_size_s64, ///< LRN parameter local size |
2378 | dnnl_query_k_f32, ///< LRN parameter K |
2379 | dnnl_query_p_f32, ///< Reduction parameter P |
2380 | dnnl_query_factors, ///< Resampling parameter factors |
2381 | dnnl_query_cell_kind, ///< RNN parameter cell kind |
2382 | dnnl_query_direction, ///< RNN parameter direction |
2383 | dnnl_query_activation_kind, ///< RNN parameter activation kind |
2384 | dnnl_query_kernel, ///< Pooling parameter kernel |
2385 | dnnl_query_group_size_s64, ///< Shuffle parameter group size |
2386 | |
2387 | // memory descriptor section |
2388 | dnnl_query_some_md = 128, ///< stub |
2389 | dnnl_query_src_md, ///< source memory desc |
2390 | dnnl_query_diff_src_md, ///< source gradient memory desc |
2391 | dnnl_query_weights_md, ///< weights memory descriptor desc |
2392 | dnnl_query_diff_weights_md, ///< weights grad. memory desc |
2393 | dnnl_query_dst_md, ///< destination memory desc |
2394 | dnnl_query_diff_dst_md, ///< destination grad. memory desc |
2395 | dnnl_query_workspace_md, ///< workspace memory desc |
2396 | dnnl_query_scratchpad_md, ///< scratchpad memory desc |
2397 | dnnl_query_exec_arg_md = 255, ///< memory desc of an execute argument |
2398 | |
2399 | dnnl_query_ndims_s32, ///< number of dimensions |
2400 | dnnl_query_dims, ///< vector of dimensions |
2401 | dnnl_query_data_type, ///< data type |
2402 | dnnl_query_submemory_offset_s64, ///< submemory offset |
2403 | dnnl_query_padded_dims, ///< vector of padded dimensions |
2404 | dnnl_query_padded_offsets, ///< vector of padded offsets |
2405 | dnnl_query_format_kind, ///< format kind |
2406 | dnnl_query_inner_nblks_s32, ///< number of innermost blocks |
2407 | dnnl_query_inner_blks, ///< vector of sizes of the innermost blocks |
2408 | dnnl_query_inner_idxs, ///< vector of logical indices of the blocks |
2409 | |
2410 | // Max value to prevent UB for internal use only dnnl_query_t |
2411 | dnnl_query_max = 0x7fff, |
2412 | } dnnl_query_t; |
2413 | |
2414 | /// @} dnnl_api_primitives_common |
2415 | |
2416 | /// @} dnnl_api_primitives |
2417 | |
2418 | /// @addtogroup dnnl_api_service |
2419 | /// @{ |
2420 | |
2421 | /// Disable profiling completely |
2422 | #define DNNL_JIT_PROFILE_NONE 0u |
2423 | |
2424 | /// Enable VTune Amplifier integration |
2425 | #define DNNL_JIT_PROFILE_VTUNE 1u |
2426 | |
2427 | /// Enable Linux perf integration via perfmap files |
2428 | #define DNNL_JIT_PROFILE_LINUX_PERFMAP 2u |
2429 | |
2430 | /// Enable Linux perf integration via jitdump files |
2431 | #define DNNL_JIT_PROFILE_LINUX_JITDUMP 4u |
2432 | |
2433 | /// Instruct Linux perf integration via jitdump files to use TSC. @ref |
2434 | /// DNNL_JIT_PROFILE_LINUX_JITDUMP must be set too for this to take effect. |
2435 | #define DNNL_JIT_PROFILE_LINUX_JITDUMP_USE_TSC 8u |
2436 | |
2437 | /// Enable Linux perf integration (both jitdump and perfmap) |
2438 | #define DNNL_JIT_PROFILE_LINUX_PERF \ |
2439 | (DNNL_JIT_PROFILE_LINUX_JITDUMP | DNNL_JIT_PROFILE_LINUX_PERFMAP) |
2440 | |
2441 | /// CPU instruction set flags |
2442 | typedef enum { |
2443 | /// Library choice of ISA (excepting those listed as initial support) |
2444 | dnnl_cpu_isa_default = 0x0, |
2445 | |
2446 | /// Intel Streaming SIMD Extensions 4.1 (Intel SSE4.1) |
2447 | dnnl_cpu_isa_sse41 = 0x1, |
2448 | |
2449 | /// Intel Advanced Vector Extensions (Intel AVX) |
2450 | dnnl_cpu_isa_avx = 0x3, |
2451 | |
2452 | /// Intel Advanced Vector Extensions 2 (Intel AVX2) |
2453 | dnnl_cpu_isa_avx2 = 0x7, |
2454 | |
2455 | /// Intel AVX2 and Intel Deep Learning Boost (Intel DL Boost) support |
2456 | dnnl_cpu_isa_avx2_vnni = 0xf, |
2457 | |
2458 | /// Intel AVX2 and Intel Deep Learning Boost (Intel DL Boost) |
2459 | /// with 8-bit integer, float16 and bfloat16 support |
2460 | dnnl_cpu_isa_avx2_vnni_2 = 0x1f, |
2461 | |
2462 | /// Intel AVX-512 subset for Intel Xeon Scalable processor family |
2463 | /// and Intel Core processor family. |
2464 | dnnl_cpu_isa_avx512_core = 0x27, |
2465 | |
2466 | /// Intel AVX-512 and Intel Deep Learning Boost (Intel DL Boost) support |
2467 | /// for Intel Xeon Scalable processor family |
2468 | /// and Intel Core processor family. |
2469 | dnnl_cpu_isa_avx512_core_vnni = 0x67, |
2470 | |
2471 | /// Intel AVX-512, Intel DL Boost and bfloat16 support |
2472 | /// for Intel Xeon Scalable processor family |
2473 | /// and Intel Core processor family. |
2474 | dnnl_cpu_isa_avx512_core_bf16 = 0xe7, |
2475 | |
2476 | /// Intel AVX-512 with float16, Intel DL Boost and bfloat16 support |
2477 | /// for Intel Xeon Scalable processor family |
2478 | /// and Intel Core processor family. |
2479 | dnnl_cpu_isa_avx512_core_fp16 = 0x1ef, |
2480 | |
2481 | /// Intel AVX-512 with float16, Intel DL Boost and bfloat16 support and |
2482 | /// Intel AMX with 8-bit integer and bfloat16 support |
2483 | dnnl_cpu_isa_avx512_core_amx = 0xfef, |
2484 | |
2485 | /// Intel AVX-512 with float16, Intel DL Boost and bfloat16 support and |
2486 | /// Intel AMX with 8-bit integer, bfloat16 and float16 support |
2487 | dnnl_cpu_isa_avx512_core_amx_fp16 = 0x1fef, |
2488 | } dnnl_cpu_isa_t; |
2489 | |
2490 | /// CPU ISA hints flags |
2491 | typedef enum { |
2492 | /// No hints (use default features) |
2493 | dnnl_cpu_isa_no_hints = 0x0, |
2494 | |
2495 | /// Prefer to exclusively use Ymm registers for computations |
2496 | dnnl_cpu_isa_prefer_ymm = 0x1, |
2497 | } dnnl_cpu_isa_hints_t; |
2498 | |
2499 | /// @} dnnl_api_service |
2500 | |
2501 | /// @} dnnl_api |
2502 | |
2503 | #ifdef __cplusplus |
2504 | } |
2505 | #endif |
2506 | |
2507 | #endif /* ONEAPI_DNNL_TYPES_H */ |
2508 | |