oneAPI Deep Neural Network Library (oneDNN)
Performance library for Deep Learning
1.96.0
dnnl_types.h
Go to the documentation of this file.
1 /*******************************************************************************
2 * Copyright 2016-2020 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 
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 
28 #include <stddef.h>
29 #include <stdint.h>
31 
34 
37 
39 typedef enum {
55 
57 
60 
62 typedef enum {
66  dnnl_f16 = 1,
68  dnnl_bf16 = 2,
70  dnnl_f32 = 3,
72  dnnl_s32 = 4,
74  dnnl_s8 = 5,
76  dnnl_u8 = 6,
78 
80 typedef enum {
95 
164 typedef enum {
170 
171  // Semantic agnostic section
172  // The physical order of dimensions is defined by the permutation of the
173  // characters, assuming that ab..z defines the natural order.
174 
175  // Plain formats
176 
190 
191  // Permuted plain formats
192 
223 
224  // Opaque blocked formats
225 
226  dnnl_Abc16a,
227  dnnl_ABc16a16b,
228  dnnl_ABc32a32b,
229  dnnl_ABc4a4b,
232  dnnl_ABc16b16a,
233  dnnl_ABc16b32a,
234  dnnl_ABc16b64a,
235  dnnl_Abc4a,
240  dnnl_ABc4b16a4b,
241  dnnl_ABc4b32a4b,
242  dnnl_ABc4b64a4b,
243  dnnl_ABc2b8a4b,
244  dnnl_ABc16b16a4b,
245  dnnl_ABc16b16a2b,
246  dnnl_ABc4b4a,
247  dnnl_ABc8a16b2a,
248  dnnl_ABc8b32a2b,
249  dnnl_ABc8b64a2b,
250  dnnl_ABc8a8b,
251  dnnl_ABc8a4b,
252  dnnl_AB16b16a,
253  dnnl_AB16b32a,
254  dnnl_AB16b64a,
255  dnnl_AB8b16a2b,
256  dnnl_AB8b32a2b,
257  dnnl_AB8b64a2b,
258  dnnl_AB4b16a4b,
259  dnnl_AB4b32a4b,
260  dnnl_AB4b64a4b,
263  dnnl_ABc8b16a2b,
264  dnnl_BAc8a16b2a,
265  dnnl_ABc8b8a,
266  dnnl_Abcd16a,
267  dnnl_Abcd8a,
268  dnnl_ABcd16a16b,
269  dnnl_Abcd32a,
270  dnnl_ABcd32a32b,
273  dnnl_ABcd16b16a,
274  dnnl_ABcd16b32a,
275  dnnl_ABcd16b64a,
276  dnnl_aBCd16b16c,
277  dnnl_aBCd16c16b,
278  dnnl_Abcd4a,
283  dnnl_ABcd4b16a4b,
284  dnnl_ABcd4b32a4b,
285  dnnl_ABcd4b64a4b,
286  dnnl_ABcd16b16a4b,
287  dnnl_ABcd16b16a2b,
288  dnnl_ABcd4b4a,
289  dnnl_ABcd4a4b,
290  dnnl_aBCd2c4b2c,
291  dnnl_aBCd4b8c2b,
292  dnnl_aBCd4c16b4c,
293  dnnl_aBCd2c8b4c,
294  dnnl_aBCd16c16b4c,
295  dnnl_aBCd16c16b2c,
296  dnnl_aBCd4c4b,
297  dnnl_aBCd4b4c,
298  dnnl_ABcd8a16b2a,
299  dnnl_ABcd2b8a4b,
300  dnnl_ABcd8a8b,
301  dnnl_ABcd8a4b,
304  dnnl_aBCd4c8b2c,
305  dnnl_ABcd8b16a2b,
306  dnnl_ABcd8b32a2b,
307  dnnl_ABcd8b64a2b,
308  dnnl_aBCd8b16c2b,
309  dnnl_BAcd8a16b2a,
312  dnnl_aBCd8b8c,
313  dnnl_aBCd8b4c,
314  dnnl_aBCd8c16b2c,
315  dnnl_ABcde8a16b2a,
316  dnnl_aCBd8b16c2b,
317  dnnl_aBCd8c8b,
318  dnnl_Abcde16a,
319  dnnl_Abcde32a,
320  dnnl_ABcde16a16b,
321  dnnl_BAcde8a16b2a,
326  dnnl_ABcde4b32a4b,
327  dnnl_ABcde4b64a4b,
332  dnnl_ABcde16b16a,
333  dnnl_ABcde16b32a,
334  dnnl_ABcde16b64a,
335  dnnl_aBCde16b16c,
336  dnnl_aBCde16c16b,
337  dnnl_aBCde2c8b4c,
338  dnnl_Abcde4a,
343  dnnl_ABcde4b4a,
344  dnnl_ABcde4a4b,
345  dnnl_aBCde4b4c,
346  dnnl_aBCde2c4b2c,
347  dnnl_aBCde4b8c2b,
348  dnnl_aBCde4c16b4c,
349  dnnl_aBCde16c16b4c,
350  dnnl_aBCde16c16b2c,
351  dnnl_aBCde4c4b,
352  dnnl_Abcde8a,
353  dnnl_ABcde8a8b,
354  dnnl_ABcde8a4b,
355  dnnl_BAcde16b16a,
358  dnnl_ABcde8b16a2b,
359  dnnl_ABcde8b32a2b,
360  dnnl_ABcde8b64a2b,
361  dnnl_aBCde8b16c2b,
362  dnnl_aBCde4c8b2c,
363  dnnl_aCBde8b16c2b,
364  dnnl_ABcde8b8a,
365  dnnl_ABcde32a32b,
366  dnnl_aBCde8b8c,
367  dnnl_aBCde8b4c,
368  dnnl_ABc4a8b8a4b,
369  dnnl_ABcd4a8b8a4b,
370  dnnl_ABcde4a8b8a4b,
371  dnnl_BAc4b8a8b4a,
372  dnnl_BAcd4b8a8b4a,
373  dnnl_BAcde4b8a8b4a,
374  dnnl_ABcd2a8b8a2b,
375  dnnl_aBCd4b8c8b4c,
376  dnnl_aBCde4b8c8b4c,
377  dnnl_aBCde2b8c8b2c,
378  dnnl_aBCde8c16b2c,
379  dnnl_aBCde8c8b,
384  dnnl_aBCdef16b16c,
385  dnnl_aBCdef16c16b,
386  dnnl_aBCdef4c16b4c,
389  dnnl_aBCdef4c8b2c,
394  dnnl_aBCdef4c4b,
395  dnnl_aBCdef4b4c,
396  dnnl_aBCdef2c4b2c,
397  dnnl_aBCdef4b8c2b,
398  dnnl_aBCdef8b8c,
399  dnnl_aBCdef8b4c,
400  dnnl_aBCdef8c16b2c,
401  dnnl_aBCdef4b8c8b4c,
402  dnnl_aBCdef8b16c2b,
403  dnnl_aCBdef8b16c2b,
404  dnnl_aBCdef8c8b,
405  dnnl_aBdc16b,
406  dnnl_aBdC16b2c,
407  dnnl_aBdC16b4c,
408  dnnl_aBdc4b,
409  dnnl_aBdc8b,
410  dnnl_aBdec16b,
411  dnnl_aBdeC16b2c,
412  dnnl_aBdeC16b4c,
413  dnnl_aBdec32b,
414  dnnl_aBdec4b,
415  dnnl_aBdec8b,
416  dnnl_aBdefc16b,
417  dnnl_aBdefC16b2c,
418  dnnl_aCBdef16c16b,
419  dnnl_aBdefc4b,
420  dnnl_aBdefc8b,
421  dnnl_Abcdef16a,
422  dnnl_Abcdef32a,
423  dnnl_aBedc16b,
424  dnnl_Acb16a,
425  dnnl_AcB16a2b,
426  dnnl_AcB16a4b,
427  dnnl_Acb4a,
428  dnnl_Acb8a,
429  dnnl_aCBd16b16c,
430  dnnl_aCBd16c16b,
431  dnnl_aCBde16b16c,
432  dnnl_aCBde16c16b,
433  dnnl_Acdb16a,
434  dnnl_AcdB16a2b,
435  dnnl_AcdB16a4b,
436  dnnl_Acdb32a,
437  dnnl_Acdb4a,
438  dnnl_Acdb8a,
439  dnnl_Acdeb16a,
440  dnnl_AcdeB16a2b,
441  dnnl_Acdeb4a,
442  dnnl_Acdeb8a,
443  dnnl_Adcb16a,
444  dnnl_BAc16a16b,
445  dnnl_BAc16b16a,
446  dnnl_BAcd16a16b,
447  dnnl_BAcd16b16a,
448  dnnl_aCBd4c8b8c4b,
449  dnnl_aCBde4c8b8c4b,
450  dnnl_aCBdef4c8b8c4b,
451  dnnl_BAcde16a16b,
452  dnnl_aCBdef16b16c,
453  dnnl_AB32a32b8a4b,
454  dnnl_AB8a4b,
455  dnnl_AB32a32b8a2b,
456  dnnl_AB8a2b,
457  dnnl_abDc32d,
458  dnnl_abDC32d4c,
459  dnnl_abdEc32e,
460  dnnl_abdEC32e2c,
461  dnnl_abdEC32e4c,
462 
466 
467  // Aliases
468 
493 
526 
549 
585  dnnl_ldOi32o = dnnl_abDc32d,
586  dnnl_ldOI32o4i = dnnl_abDC32d4c,
588  dnnl_ldgOi32o = dnnl_abdEc32e,
589  dnnl_ldgOI32o2i = dnnl_abdEC32e2c,
590  dnnl_ldgOI32o4i = dnnl_abdEC32e4c,
591 
592  // Opaque data types, are not to be used explicitly
593 
594  // data
631  dnnl_NCw16n16c = dnnl_ABc16a16b,
632  dnnl_NCdhw16n16c = dnnl_ABcde16a16b,
633  dnnl_NChw16n16c = dnnl_ABcd16a16b,
634  dnnl_NCw32n32c = dnnl_ABc32a32b,
635  dnnl_NChw32n32c = dnnl_ABcd32a32b,
636  dnnl_NCdhw32n32c = dnnl_ABcde32a32b,
637 
638  // weights, 2D
639  dnnl_OI16i16o = dnnl_AB16b16a,
640  dnnl_OI16i32o = dnnl_AB16b32a,
641  dnnl_OI16i64o = dnnl_AB16b64a,
642  dnnl_OI8i16o2i = dnnl_AB8b16a2b,
643  dnnl_OI8i32o2i = dnnl_AB8b32a2b,
644  dnnl_OI8i64o2i = dnnl_AB8b64a2b,
645  dnnl_OI4i16o4i = dnnl_AB4b16a4b,
646  dnnl_OI4i32o4i = dnnl_AB4b32a4b,
647  dnnl_OI4i64o4i = dnnl_AB4b64a4b,
648  // weights, 3D
649  dnnl_IOw16o16i = dnnl_BAc16a16b,
650  dnnl_IOw16i16o = dnnl_BAc16b16a,
651  dnnl_OIw16i16o = dnnl_ABc16b16a,
652  dnnl_OIw16i32o = dnnl_ABc16b32a,
653  dnnl_OIw16i64o = dnnl_ABc16b64a,
654  dnnl_OIw16o16i = dnnl_ABc16a16b,
655  dnnl_Oiw16o = dnnl_Abc16a,
656  dnnl_OIw4i16o4i = dnnl_ABc4b16a4b,
657  dnnl_OIw4i32o4i = dnnl_ABc4b32a4b,
658  dnnl_OIw4i64o4i = dnnl_ABc4b64a4b,
659  dnnl_OIw2i8o4i = dnnl_ABc2b8a4b,
660  dnnl_OIw16i16o4i = dnnl_ABc16b16a4b,
661  dnnl_OIw16i16o2i = dnnl_ABc16b16a2b,
662  dnnl_OIw4i4o = dnnl_ABc4b4a,
663  dnnl_OIw4o4i = dnnl_ABc4a4b,
664  dnnl_Oiw4o = dnnl_Abc4a,
665  dnnl_OIw8i16o2i = dnnl_ABc8b16a2b,
666  dnnl_OIw8i32o2i = dnnl_ABc8b32a2b,
667  dnnl_OIw8i64o2i = dnnl_ABc8b64a2b,
668  dnnl_OIw8i8o = dnnl_ABc8b8a,
669  dnnl_OIw8o16i2o = dnnl_ABc8a16b2a,
670  dnnl_IOw8o16i2o = dnnl_BAc8a16b2a,
671  dnnl_OIw8o8i = dnnl_ABc8a8b,
672  dnnl_OIw8o4i = dnnl_ABc8a4b,
673  dnnl_Owi16o = dnnl_Acb16a,
674  dnnl_OwI16o2i = dnnl_AcB16a2b,
675  dnnl_OwI16o4i = dnnl_AcB16a4b,
676  dnnl_Owi4o = dnnl_Acb4a,
677  dnnl_Owi8o = dnnl_Acb8a,
678 
679  // weights, 4D
680  dnnl_IOhw16i16o = dnnl_BAcd16b16a,
681  dnnl_IOhw16o16i = dnnl_BAcd16a16b,
682  dnnl_Ohwi16o = dnnl_Acdb16a,
683  dnnl_OhwI16o2i = dnnl_AcdB16a2b,
684  dnnl_OhwI16o4i = dnnl_AcdB16a4b,
685  dnnl_Ohwi32o = dnnl_Acdb32a,
686  dnnl_Ohwi4o = dnnl_Acdb4a,
687  dnnl_Ohwi8o = dnnl_Acdb8a,
688  dnnl_OIhw16i16o = dnnl_ABcd16b16a,
689  dnnl_OIhw16i32o = dnnl_ABcd16b32a,
690  dnnl_OIhw16i64o = dnnl_ABcd16b64a,
691  dnnl_OIhw16o16i = dnnl_ABcd16a16b,
692  dnnl_Oihw16o = dnnl_Abcd16a,
693  dnnl_OIhw4i16o4i = dnnl_ABcd4b16a4b,
694  dnnl_OIhw4i32o4i = dnnl_ABcd4b32a4b,
695  dnnl_OIhw4i64o4i = dnnl_ABcd4b64a4b,
696  dnnl_OIhw16i16o4i = dnnl_ABcd16b16a4b,
697  dnnl_OIhw16i16o2i = dnnl_ABcd16b16a2b,
698  dnnl_OIhw4i4o = dnnl_ABcd4b4a,
699  dnnl_OIhw4o4i = dnnl_ABcd4a4b,
700  dnnl_Oihw4o = dnnl_Abcd4a,
701  dnnl_OIhw8i16o2i = dnnl_ABcd8b16a2b,
702  dnnl_OIhw8i32o2i = dnnl_ABcd8b32a2b,
703  dnnl_OIhw8i64o2i = dnnl_ABcd8b64a2b,
704  dnnl_OIhw8i8o = dnnl_ABcd8b8a,
705  dnnl_OIhw8o16i2o = dnnl_ABcd8a16b2a,
706  dnnl_OIhw2i8o4i = dnnl_ABcd2b8a4b,
707  dnnl_IOhw8o16i2o = dnnl_BAcd8a16b2a,
708  dnnl_OIhw8o8i = dnnl_ABcd8a8b,
709  dnnl_OIhw8o4i = dnnl_ABcd8a4b,
710  dnnl_Owhi16o = dnnl_Adcb16a,
711 
712  // weights, 5D
713  dnnl_Odhwi16o = dnnl_Acdeb16a,
714  dnnl_OdhwI16o2i = dnnl_AcdeB16a2b,
715  dnnl_Odhwi4o = dnnl_Acdeb4a,
716  dnnl_Odhwi8o = dnnl_Acdeb8a,
717  dnnl_OIdhw16i16o = dnnl_ABcde16b16a,
718  dnnl_OIdhw16i32o = dnnl_ABcde16b32a,
719  dnnl_OIdhw16i64o = dnnl_ABcde16b64a,
720  dnnl_OIdhw16o16i = dnnl_ABcde16a16b,
721  dnnl_Oidhw16o = dnnl_Abcde16a,
722  dnnl_OIdhw4i4o = dnnl_ABcde4b4a,
723  dnnl_OIdhw4o4i = dnnl_ABcde4a4b,
724  dnnl_Oidhw4o = dnnl_Abcde4a,
725  dnnl_OIdhw8i16o2i = dnnl_ABcde8b16a2b,
726  dnnl_OIdhw8i32o2i = dnnl_ABcde8b32a2b,
727  dnnl_OIdhw8i64o2i = dnnl_ABcde8b64a2b,
728  dnnl_OIdhw8i8o = dnnl_ABcde8b8a,
729  dnnl_OIdhw8o16i2o = dnnl_ABcde8a16b2a,
730  dnnl_IOdhw8o16i2o = dnnl_BAcde8a16b2a,
731  dnnl_OIdhw4i16o4i = dnnl_ABcde4b16a4b,
732  dnnl_OIdhw4i32o4i = dnnl_ABcde4b32a4b,
733  dnnl_OIdhw4i64o4i = dnnl_ABcde4b64a4b,
734  dnnl_OIdhw2i8o4i = dnnl_ABcde2b8a4b,
735  dnnl_OIdhw8o8i = dnnl_ABcde8a8b,
736  dnnl_OIdhw8o4i = dnnl_ABcde8a4b,
737  dnnl_IOdhw16i16o = dnnl_BAcde16b16a,
738  dnnl_OIdhw4o8i8o4i = dnnl_ABcde4a8b8a4b,
739  dnnl_IOdhw16o16i = dnnl_BAcde16a16b,
740 
741  // weights w/ groups, 3D
742  dnnl_Goiw16g = dnnl_Abcd16a,
743  dnnl_Goiw8g = dnnl_Abcd8a,
744  dnnl_Goiw4g = dnnl_Abcd4a,
745  dnnl_gIOw16o16i = dnnl_aCBd16b16c,
746  dnnl_gIOw16i16o = dnnl_aCBd16c16b,
747  dnnl_gOIw16i16o = dnnl_aBCd16c16b,
748  dnnl_gOIw16o16i = dnnl_aBCd16b16c,
749  dnnl_gOiw16o = dnnl_aBcd16b,
750  dnnl_gOIw4i16o4i = dnnl_aBCd4c16b4c,
751  dnnl_gOIw2i8o4i = dnnl_aBCd2c8b4c,
752  dnnl_gOIw16i16o4i = dnnl_aBCd16c16b4c,
753  dnnl_gOIw16i16o2i = dnnl_aBCd16c16b2c,
754  dnnl_gOIw4i4o = dnnl_aBCd4c4b,
755  dnnl_gOIw4o4i = dnnl_aBCd4b4c,
756  dnnl_gOiw4o = dnnl_aBcd4b,
757  dnnl_gOIw8i16o2i = dnnl_aBCd8c16b2c,
758  dnnl_gOIw8i8o = dnnl_aBCd8c8b,
759  dnnl_gOIw8o16i2o = dnnl_aBCd8b16c2b,
760  dnnl_gIOw8o16i2o = dnnl_aCBd8b16c2b,
761  dnnl_gOIw8o8i = dnnl_aBCd8b8c,
762  dnnl_gOIw8o4i = dnnl_aBCd8b4c,
763  dnnl_gOwi16o = dnnl_aBdc16b,
764  dnnl_gOwI16o2i = dnnl_aBdC16b2c,
765  dnnl_gOwI16o4i = dnnl_aBdC16b4c,
766  dnnl_gOwi4o = dnnl_aBdc4b,
767  dnnl_gOwi8o = dnnl_aBdc8b,
768  dnnl_Goiw32g = dnnl_Abcd32a,
769  dnnl_gOIw2i4o2i = dnnl_aBCd2c4b2c,
770  dnnl_gOIw2o4i2o = dnnl_aBCd2b4c2b,
771  dnnl_gOIw4i8o2i = dnnl_aBCd4c8b2c,
772  dnnl_gOIw4o8i2o = dnnl_aBCd4b8c2b,
773 
774  // weights w/ groups, 4D
775  dnnl_gIOhw16i16o = dnnl_aCBde16c16b,
776  dnnl_gIOhw16o16i = dnnl_aCBde16b16c,
777  dnnl_gOhwi16o = dnnl_aBdec16b,
778  dnnl_gOhwI16o2i = dnnl_aBdeC16b2c,
779  dnnl_gOhwI16o4i = dnnl_aBdeC16b4c,
780  dnnl_gOhwi32o = dnnl_aBdec32b,
781  dnnl_gOhwi4o = dnnl_aBdec4b,
782  dnnl_gOhwi8o = dnnl_aBdec8b,
783  dnnl_Goihw16g = dnnl_Abcde16a,
784  dnnl_gOIhw16i16o = dnnl_aBCde16c16b,
785  dnnl_gOIhw16o16i = dnnl_aBCde16b16c,
786  dnnl_gOihw16o = dnnl_aBcde16b,
787  dnnl_gOIhw2i8o4i = dnnl_aBCde2c8b4c,
788  dnnl_gOIhw4i16o4i = dnnl_aBCde4c16b4c,
789  dnnl_gOIhw16i16o4i = dnnl_aBCde16c16b4c,
790  dnnl_gOIhw16i16o2i = dnnl_aBCde16c16b2c,
791  dnnl_gOIhw4i4o = dnnl_aBCde4c4b,
792  dnnl_gOIhw4o4i = dnnl_aBCde4b4c,
793  dnnl_gOihw4o = dnnl_aBcde4b,
794  dnnl_Goihw8g = dnnl_Abcde8a,
795  dnnl_Goihw4g = dnnl_Abcde4a,
796  dnnl_gOIhw8i16o2i = dnnl_aBCde8c16b2c,
797  dnnl_gOIhw8i8o = dnnl_aBCde8c8b,
798  dnnl_gOIhw8o16i2o = dnnl_aBCde8b16c2b,
799  dnnl_gIOhw8o16i2o = dnnl_aCBde8b16c2b,
800  dnnl_gOIhw8o8i = dnnl_aBCde8b8c,
801  dnnl_gOIhw8o4i = dnnl_aBCde8b4c,
802  dnnl_Goihw32g = dnnl_Abcde32a,
803  dnnl_gOwhi16o = dnnl_aBedc16b,
804 
805  dnnl_OIw4o8i8o4i = dnnl_ABc4a8b8a4b,
806  dnnl_OIhw4o8i8o4i = dnnl_ABcd4a8b8a4b,
807  dnnl_IOw4i8o8i4o = dnnl_BAc4b8a8b4a,
808  dnnl_IOhw4i8o8i4o = dnnl_BAcd4b8a8b4a,
809  dnnl_IOdhw4i8o8i4o = dnnl_BAcde4b8a8b4a,
810 
811  dnnl_OIhw2o8i8o2i = dnnl_ABcd2a8b8a2b,
812  dnnl_gOIw4o8i8o4i = dnnl_aBCd4b8c8b4c,
813  dnnl_gOIhw4o8i8o4i = dnnl_aBCde4b8c8b4c,
814  dnnl_gOIdhw4o8i8o4i = dnnl_aBCdef4b8c8b4c,
815  dnnl_gIOw4i8o8i4o = dnnl_aCBd4c8b8c4b,
816  dnnl_gIOhw4i8o8i4o = dnnl_aCBde4c8b8c4b,
817  dnnl_gIOdhw4i8o8i4o = dnnl_aCBdef4c8b8c4b,
818  dnnl_gOIhw2o8i8o2i = dnnl_aBCde2b8c8b2c,
819  dnnl_gOIhw2i4o2i = dnnl_aBCde2c4b2c,
820  dnnl_gOIhw2o4i2o = dnnl_aBCde2b4c2b,
821  dnnl_gOIhw4i8o2i = dnnl_aBCde4c8b2c,
822  dnnl_gOIhw4o8i2o = dnnl_aBCde4b8c2b,
823 
824  // weights w/ groups, 6D
825  dnnl_gIOdhw16i16o = dnnl_aCBdef16c16b,
826  dnnl_gIOdhw16o16i = dnnl_aCBdef16b16c,
827  dnnl_gOdhwi16o = dnnl_aBdefc16b,
828  dnnl_gOdhwI16o2i = dnnl_aBdefC16b2c,
829  dnnl_gOdhwi4o = dnnl_aBdefc4b,
830  dnnl_gOdhwi8o = dnnl_aBdefc8b,
831  dnnl_gOIdhw16i16o = dnnl_aBCdef16c16b,
832  dnnl_gOIdhw4i16o4i = dnnl_aBCdef4c16b4c,
833  dnnl_gOIdhw2i8o4i = dnnl_aBCdef2c8b4c,
834  dnnl_gOIdhw16o16i = dnnl_aBCdef16b16c,
835  dnnl_gOidhw16o = dnnl_aBcdef16b,
836  dnnl_gOIdhw4i4o = dnnl_aBCdef4c4b,
837  dnnl_gOIdhw4o4i = dnnl_aBCdef4b4c,
838  dnnl_gOidhw4o = dnnl_aBcdef4b,
839  dnnl_gOIdhw8i16o2i = dnnl_aBCdef8c16b2c,
840  dnnl_gOIdhw8i8o = dnnl_aBCdef8c8b,
841  dnnl_gOIdhw8o16i2o = dnnl_aBCdef8b16c2b,
842  dnnl_gIOdhw8o16i2o = dnnl_aCBdef8b16c2b,
843  dnnl_gOIdhw8o8i = dnnl_aBCdef8b8c,
844  dnnl_gOIdhw8o4i = dnnl_aBCdef8b4c,
845  dnnl_Goidhw16g = dnnl_Abcdef16a,
846  dnnl_Goidhw32g = dnnl_Abcdef32a,
847  dnnl_gOIdhw2i4o2i = dnnl_aBCdef2c4b2c,
848  dnnl_gOIdhw4i8o2i = dnnl_aBCdef4c8b2c,
849  dnnl_gOIdhw2o4i2o = dnnl_aBCdef2b4c2b,
850  dnnl_gOIdhw4o8i2o = dnnl_aBCdef4b8c2b,
852 
854 
859 
861 typedef enum {
862  // TODO: suggest renames
885 
888 typedef enum {
935 
940 
942 typedef enum {
943  dnnl_alg_kind_undef,
1032  dnnl_lbr_gru = 0x4fff,
1034  dnnl_binary_add = 0x1fff0,
1036  dnnl_binary_mul = 0x1fff1,
1038  dnnl_binary_max = 0x1fff2,
1040  dnnl_binary_min = 0x1fff3,
1042  dnnl_binary_div = 0x1fff4,
1044  dnnl_binary_sub = 0x1fff5,
1067 } dnnl_alg_kind_t;
1068 
1070 typedef enum {
1080 
1093 
1106 
1120 
1123 
1126 
1130 #define DNNL_MAX_NDIMS 12
1131 
1134 #define DNNL_RUNTIME_DIM_VAL INT64_MIN
1135 
1139 #define DNNL_RUNTIME_SIZE_VAL ((size_t)DNNL_RUNTIME_DIM_VAL)
1140 
1143 static const union {
1144  unsigned u;
1145  float f;
1146 } DNNL_RUNTIME_F32_VAL_REP = {0x7fc000d0};
1148 
1151 #define DNNL_RUNTIME_F32_VAL (DNNL_RUNTIME_F32_VAL_REP.f)
1152 
1154 static const int DNNL_RUNTIME_S32_VAL_REP = INT32_MIN;
1156 
1159 #define DNNL_RUNTIME_S32_VAL DNNL_RUNTIME_S32_VAL_REP
1160 
1162 typedef int64_t dnnl_dim_t;
1163 
1166 
1170 typedef struct {
1174  // Innermost section
1175  // ASSUMPTION: the innermost blocks are always dense
1184 
1186 typedef enum {
1189  // Tensors of weights for 2x3 winograd convolutions.
1193  // Tensor of weights for 4x3 convolution.
1196 
1198 typedef struct {
1199  dnnl_wino_memory_format_t wino_format;
1200  int r;
1201  int alpha;
1202  int ic;
1203  int oc;
1204  int ic_block;
1205  int oc_block;
1206  int ic2_block;
1207  int oc2_block;
1208  float adj_scale;
1209  size_t size;
1211 
1212 typedef enum {
1213  dnnl_packed_format_undef = 0,
1214  dnnl_ldigo_p,
1215  dnnl_ldgoi_p,
1216  dnnl_ldio_p
1217 } dnnl_rnn_packed_memory_format_t;
1218 
1221 #define DNNL_RNN_MAX_N_PARTS 4
1222 
1224 typedef struct {
1225  dnnl_rnn_packed_memory_format_t format;
1226  int n_parts;
1227  int n;
1228  int ldb;
1229  int parts[DNNL_RNN_MAX_N_PARTS];
1230  size_t part_pack_size[DNNL_RNN_MAX_N_PARTS];
1231  unsigned pack_part[DNNL_RNN_MAX_N_PARTS];
1232  size_t offset_compensation;
1233  size_t size;
1234  char reserved[200];
1236 
1238 typedef enum {
1239  dnnl_memory_extra_flag_none = 0x0U,
1248  dnnl_memory_extra_flag_scale_adjust = 0x2U,
1249  dnnl_memory_extra_flag_rnn_u8s8_compensation = 0x4U,
1250  dnnl_memory_extra_flag_gpu_rnn_u8s8_compensation
1251  = dnnl_memory_extra_flag_rnn_u8s8_compensation,
1252  dnnl_memory_extra_flag_compensation_conv_asymmetric_src = 0x8U,
1254 
1256 typedef struct {
1259  uint64_t flags;
1267  char reserved[60];
1269 
1274 typedef struct {
1276  int ndims;
1292 
1295 
1298 
1302 
1306 
1309  union {
1317  // ... other descriptions possible
1318  } format_desc;
1319 
1322 
1325 struct dnnl_memory;
1326 
1328 typedef struct dnnl_memory *dnnl_memory_t;
1329 
1331 typedef const struct dnnl_memory *const_dnnl_memory_t;
1332 
1335 #define DNNL_MEMORY_NONE (NULL)
1336 
1339 #define DNNL_MEMORY_ALLOCATE ((void *)(size_t)-1)
1340 
1342 
1347 
1349 typedef void *dnnl_op_desc_t;
1351 typedef const void *const_dnnl_op_desc_t;
1352 
1355 
1358 
1361 
1363 typedef struct {
1397  dnnl_dims_t padding[2];
1401 
1403 
1406 
1409 
1411 
1414 
1416 typedef struct {
1427  int axis;
1431 
1433 
1436 
1438 typedef struct {
1482  float alpha, beta;
1484 
1486 
1489 
1491 typedef struct {
1505 
1507 
1510 
1514 
1516 
1519 
1521 typedef struct {
1548  dnnl_dims_t padding[2];
1552 
1554 
1557 
1559 typedef struct {
1586  dnnl_dims_t padding[2];
1592 
1594 
1597 typedef struct {
1600  dnnl_primitive_kind_t primitive_kind;
1605  dnnl_memory_desc_t data_desc;
1608  dnnl_memory_desc_t weights_desc;
1610  dnnl_memory_desc_t diff_data_desc;
1612  dnnl_memory_desc_t diff_weights_desc;
1613 } dnnl_prelu_desc_t;
1614 
1616 
1619 
1621 typedef struct {
1639  float lrn_alpha;
1641  float lrn_beta;
1643  float lrn_k;
1644 } dnnl_lrn_desc_t;
1645 
1647 
1650 
1652 typedef struct {
1669  dnnl_memory_desc_t diff_data_scaleshift_desc;
1676  unsigned flags;
1678 
1680 
1683 
1685 typedef struct {
1704  dnnl_memory_desc_t diff_data_scaleshift_desc;
1713  unsigned flags;
1715 
1717 
1720 
1722 typedef struct {
1749 
1751 
1754 
1756 typedef enum {
1760 
1762 typedef enum {
1776 
1778 typedef struct {
1816 
1843 
1845  unsigned int flags;
1849  float alpha;
1850  float beta;
1851 
1852 } dnnl_rnn_desc_t;
1853 
1855 
1858 
1860 typedef struct {
1869  dnnl_memory_desc_t src_desc[2];
1873 
1875 
1878 
1886 typedef struct {
1901 
1903 
1906 
1908 typedef struct {
1927  float factors[DNNL_MAX_NDIMS];
1929 
1931 
1934 
1936 typedef struct {
1961  float p, eps;
1963 
1965 
1967 
1970 
1972 typedef enum {
1980 
1983 struct dnnl_engine;
1985 typedef struct dnnl_engine *dnnl_engine_t;
1986 #if 0
1987 // FIXME: looks like this never happens
1989 typedef const struct dnnl_engine *const_dnnl_engine_t;
1990 #endif
1991 
1993 
1998 
2002 
2005 
2007 typedef const struct dnnl_primitive_desc_iterator
2009 
2012 struct dnnl_primitive_desc;
2013 
2016 
2019 
2021 
2024 
2026 typedef enum {
2050 
2056 struct dnnl_primitive_attr;
2057 
2061 
2064 
2083 struct dnnl_post_ops;
2084 
2087 
2089 typedef const struct dnnl_post_ops *const_dnnl_post_ops_t;
2090 
2092 
2095 
2098 struct dnnl_primitive;
2103 
2105 #define DNNL_ARG_SRC_0 1
2106 #define DNNL_ARG_SRC DNNL_ARG_SRC_0
2109 #define DNNL_ARG_SRC_LAYER DNNL_ARG_SRC_0
2112 #define DNNL_ARG_FROM DNNL_ARG_SRC_0
2115 
2117 #define DNNL_ARG_SRC_1 2
2118 #define DNNL_ARG_SRC_ITER DNNL_ARG_SRC_1
2121 
2123 #define DNNL_ARG_SRC_2 3
2124 #define DNNL_ARG_SRC_ITER_C DNNL_ARG_SRC_2
2127 
2129 #define DNNL_ARG_DST_0 17
2130 #define DNNL_ARG_DST DNNL_ARG_DST_0
2133 #define DNNL_ARG_TO DNNL_ARG_DST_0
2136 #define DNNL_ARG_DST_LAYER DNNL_ARG_DST_0
2138 
2140 #define DNNL_ARG_DST_1 18
2141 #define DNNL_ARG_DST_ITER DNNL_ARG_DST_1
2144 
2146 #define DNNL_ARG_DST_2 19
2147 #define DNNL_ARG_DST_ITER_C DNNL_ARG_DST_2
2150 
2152 #define DNNL_ARG_WEIGHTS_0 33
2153 #define DNNL_ARG_WEIGHTS DNNL_ARG_WEIGHTS_0
2156 #define DNNL_ARG_SCALE_SHIFT DNNL_ARG_WEIGHTS_0
2159 #define DNNL_ARG_WEIGHTS_LAYER DNNL_ARG_WEIGHTS_0
2162 
2164 #define DNNL_ARG_WEIGHTS_1 34
2165 #define DNNL_ARG_WEIGHTS_ITER DNNL_ARG_WEIGHTS_1
2168 
2170 #define DNNL_ARG_WEIGHTS_2 35
2171 #define DNNL_ARG_WEIGHTS_PEEPHOLE DNNL_ARG_WEIGHTS_2
2174 
2176 #define DNNL_ARG_WEIGHTS_3 36
2177 #define DNNL_ARG_WEIGHTS_PROJECTION DNNL_ARG_WEIGHTS_3
2180 
2182 #define DNNL_ARG_BIAS 41
2183 
2185 #define DNNL_ARG_MEAN 49
2186 #define DNNL_ARG_VARIANCE 50
2188 
2191 #define DNNL_ARG_WORKSPACE 64
2192 #define DNNL_ARG_SCRATCHPAD 80
2194 
2196 #define DNNL_ARG_DIFF_SRC_0 129
2197 #define DNNL_ARG_DIFF_SRC DNNL_ARG_DIFF_SRC_0
2200 #define DNNL_ARG_DIFF_SRC_LAYER DNNL_ARG_DIFF_SRC_0
2203 
2205 #define DNNL_ARG_DIFF_SRC_1 130
2206 #define DNNL_ARG_DIFF_SRC_ITER DNNL_ARG_DIFF_SRC_1
2209 
2211 #define DNNL_ARG_DIFF_SRC_2 131
2212 #define DNNL_ARG_DIFF_SRC_ITER_C DNNL_ARG_DIFF_SRC_2
2215 
2217 #define DNNL_ARG_DIFF_DST_0 145
2218 #define DNNL_ARG_DIFF_DST DNNL_ARG_DIFF_DST_0
2221 #define DNNL_ARG_DIFF_DST_LAYER DNNL_ARG_DIFF_DST_0
2224 
2226 #define DNNL_ARG_DIFF_DST_1 146
2227 #define DNNL_ARG_DIFF_DST_ITER DNNL_ARG_DIFF_DST_1
2230 
2232 #define DNNL_ARG_DIFF_DST_2 147
2233 #define DNNL_ARG_DIFF_DST_ITER_C DNNL_ARG_DIFF_DST_2
2236 
2238 #define DNNL_ARG_DIFF_WEIGHTS_0 161
2239 #define DNNL_ARG_DIFF_WEIGHTS DNNL_ARG_DIFF_WEIGHTS_0
2242 #define DNNL_ARG_DIFF_SCALE_SHIFT DNNL_ARG_DIFF_WEIGHTS_0
2245 #define DNNL_ARG_DIFF_WEIGHTS_LAYER DNNL_ARG_DIFF_WEIGHTS_0
2248 
2250 #define DNNL_ARG_DIFF_WEIGHTS_1 162
2251 #define DNNL_ARG_DIFF_WEIGHTS_ITER DNNL_ARG_DIFF_WEIGHTS_1
2254 
2256 #define DNNL_ARG_DIFF_WEIGHTS_2 163
2257 #define DNNL_ARG_DIFF_WEIGHTS_PEEPHOLE DNNL_ARG_DIFF_WEIGHTS_2
2260 
2262 #define DNNL_ARG_DIFF_WEIGHTS_3 164
2263 #define DNNL_ARG_DIFF_WEIGHTS_PROJECTION DNNL_ARG_DIFF_WEIGHTS_3
2266 
2268 #define DNNL_ARG_DIFF_BIAS 169
2269 
2271 #define DNNL_ARG_ATTR_OUTPUT_SCALES 513
2272 
2275 #define DNNL_ARG_MULTIPLE_SRC 1024
2276 #define DNNL_ARG_MULTIPLE_DST 2048
2279 
2281 #define DNNL_ARG_ATTR_ZERO_POINTS 4096
2282 
2285 #define DNNL_ARG_ATTR_POST_OP_DW 8192
2286 
2288 #define DNNL_ARG_ATTR_MULTIPLE_POST_OP_BASE 16384
2289 
2292 #define DNNL_ARG_ATTR_MULTIPLE_POST_OP(idx) \
2293  (DNNL_ARG_ATTR_MULTIPLE_POST_OP_BASE * ((idx) + 1))
2294 
2295 // XXX: next define should have a (1 << 20) = 1048576 value to preserve 5 bits
2296 // for DNNL_ARG_ATTR_MULTIPLE_POST_OP argument.
2297 
2300 typedef struct {
2301  int arg;
2303 } dnnl_exec_arg_t;
2304 
2306 
2309 
2339 typedef enum {
2341 
2344 
2347 
2350 
2355 
2358 
2361 
2363 
2364  // memory and op descriptor section
2386 
2387  // memory descriptor section
2398 
2399  // Max value to prevent UB for internal use only dnnl_query_t
2400  dnnl_query_max = 0x7fff,
2401 } dnnl_query_t;
2402 
2404 
2406 
2409 
2411 typedef enum {
2412  // In-order execution.
2413  dnnl_stream_in_order = 0x1U,
2417  dnnl_stream_default_flags = dnnl_stream_in_order,
2419 
2422 struct dnnl_stream;
2424 typedef struct dnnl_stream *dnnl_stream_t;
2426 typedef const struct dnnl_stream *const_dnnl_stream_t;
2427 
2429 struct dnnl_stream_attr;
2431 typedef struct dnnl_stream_attr *dnnl_stream_attr_t;
2433 typedef const struct dnnl_stream_attr *const_dnnl_stream_attr_t;
2434 
2436 
2439 
2441 #define DNNL_RUNTIME_NONE 0u
2442 
2444 #define DNNL_RUNTIME_SEQ 1u
2445 
2447 #define DNNL_RUNTIME_OMP 2u
2448 
2450 #define DNNL_RUNTIME_TBB 4u
2451 
2453 #define DNNL_RUNTIME_THREADPOOL 8u
2454 
2456 #define DNNL_RUNTIME_OCL 256u
2457 
2459 #define DNNL_RUNTIME_SYCL 512u
2460 
2462 #define DNNL_RUNTIME_DPCPP DNNL_RUNTIME_SYCL
2463 
2466 typedef struct {
2467  int major;
2468  int minor;
2469  int patch;
2470  const char *hash;
2471  unsigned cpu_runtime;
2472  unsigned gpu_runtime;
2473 } dnnl_version_t;
2474 
2476 #define DNNL_JIT_PROFILE_NONE 0u
2477 
2479 #define DNNL_JIT_PROFILE_VTUNE 1u
2480 
2482 #define DNNL_JIT_PROFILE_LINUX_PERFMAP 2u
2483 
2485 #define DNNL_JIT_PROFILE_LINUX_JITDUMP 4u
2486 
2489 #define DNNL_JIT_PROFILE_LINUX_JITDUMP_USE_TSC 8u
2490 
2492 #define DNNL_JIT_PROFILE_LINUX_PERF \
2493  (DNNL_JIT_PROFILE_LINUX_JITDUMP | DNNL_JIT_PROFILE_LINUX_PERFMAP)
2494 
2496 typedef enum {
2499 
2502 
2505 
2508 
2512 
2516 
2520 
2525 
2530 
2535 
2538 
2539 } dnnl_cpu_isa_t;
2540 
2542 
2544 
2545 #ifdef __cplusplus
2546 }
2547 #endif
2548 
2549 #endif /* ONEAPI_DNNL_TYPES_H */
Reduction using sum.
Definition: dnnl_types.h:1054
dnnl_memory_desc_t diff_dst_layer_desc
Destination gradient layer memory descriptor.
Definition: dnnl_types.h:1830
dnnl_dims_t dilation
Pooling dilations for spatial dimensions.
Definition: dnnl_types.h:1590
A layer normalization primitive.
Definition: dnnl_types.h:914
plain 7D tensor
Definition: dnnl_types.h:184
destination grad. memory desc
Definition: dnnl_types.h:2394
An element-wise primitive.
Definition: dnnl_types.h:904
dnnl_alg_kind_t activation_kind
Activation function used for vanilla_rnn cell kind.
Definition: dnnl_types.h:1848
Reduction using lp norm without final pth-root.
Definition: dnnl_types.h:1064
dnnl_memory_desc_t weights_layer_desc
Weights layer memory descriptor.
Definition: dnnl_types.h:1797
prop_kind
Propagation kind.
Definition: dnnl.hpp:435
dnnl_alg_kind_t alg_kind
The kind of pooling algorithm.
Definition: dnnl_types.h:1532
6D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:391
execution engine
Definition: dnnl_types.h:2342
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition: dnnl_types.h:1735
permuted 6D tensor
Definition: dnnl_types.h:195
dnnl_memory_desc_t diff_dst_iter_c_desc
Destination gradient iteration memory descriptor for cell state.
Definition: dnnl_types.h:1834
A batch normalization primitive.
Definition: dnnl_types.h:912
Eltwise: bounded_relu.
Definition: dnnl_types.h:969
Undefined memory format tag.
Definition: dnnl_types.h:169
3D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:231
A tensor in a generic format described by the stride and blocking values in each dimension.
Definition: dnnl_types.h:89
4D LSTM projection tensor in the format (num_layers, num_directions, num_channels_in_hidden_state, num_channels_in_recurrent_projection).
Definition: dnnl_types.h:573
CPU engine.
Definition: dnnl_types.h:1976
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1655
Eltwise: ReLU (dst for backward)
Definition: dnnl_types.h:996
destination memory desc
Definition: dnnl_types.h:2393
Direct deconvolution.
Definition: dnnl_types.h:951
struct dnnl_memory * dnnl_memory_t
A memory handle.
Definition: dnnl_types.h:1328
A descriptor for an RNN operation.
Definition: dnnl_types.h:1778
The user manages the scratchpad allocation by querying and providing the scratchpad memory to primiti...
Definition: dnnl_types.h:2048
layer normalization descriptor
Definition: dnnl_types.h:2376
memory consumption – extra
Definition: dnnl_types.h:2349
dnnl_primitive_kind_t
Kinds of primitives.
Definition: dnnl_types.h:888
permuted 3D tensor
Definition: dnnl_types.h:203
Eltwise: linear.
Definition: dnnl_types.h:967
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:1739
A PReLU primitive.
Definition: dnnl_types.h:934
dnnl_dim_t local_size
The number of channels to sum over (for cross-channel LRN) or the side length of the square region to...
Definition: dnnl_types.h:1637
Internal weights format for 2x3 Winograd.
Definition: dnnl_types.h:1191
dnnl_memory_desc_t data_scaleshift_desc
Scale and shift data and gradient memory descriptors.
Definition: dnnl_types.h:1703
permuted 6D tensor
Definition: dnnl_types.h:199
permuted 12D tensor
Definition: dnnl_types.h:222
void * dnnl_op_desc_t
A pointer to any of the operation descriptors.
Definition: dnnl_types.h:1349
dnnl_alg_kind_t alg_kind
LRN algorithm.
Definition: dnnl_types.h:1630
A resampling primitive.
Definition: dnnl_types.h:928
dnnl_format_kind_t format_kind
Memory format kind.
Definition: dnnl_types.h:1308
An opaque structure to describe a primitive.
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1658
GRU cell with linear before reset.
Definition: dnnl_types.h:1032
Any ISA (excepting those listed as initial support)
Definition: dnnl_types.h:2498
dnnl_dims_t strides
Pooling kernel strides for spatial dimensions.
Definition: dnnl_types.h:1542
4D CNN weights tensor, an alias to dnnl_acdb
Definition: dnnl_types.h:511
Undefined data type, used for empty memory descriptors.
Definition: dnnl_types.h:64
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1897
dnnl_dim_t group_size
Number of groups.
Definition: dnnl_types.h:1429
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:1383
5D CNN weights tensor, an alias to dnnl_acdeb
Definition: dnnl_types.h:523
float scale_adjust
Scale applied to the data.
Definition: dnnl_types.h:1263
5D LSTM projection tensor
Definition: dnnl_types.h:585
dnnl_convolution_desc_t dnnl_deconvolution_desc_t
A descriptor of a deconvolution operation.
Definition: dnnl_types.h:1408
4D CNN weights tensor (incl. groups), an alias to dnnl_abcd
Definition: dnnl_types.h:528
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1494
dnnl_alg_kind_t alg_kind
The kind of the convolution algorithm.
Definition: dnnl_types.h:1373
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1576
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1399
4D CNN weights tensor (incl. groups), an alias to dnnl_abdc
Definition: dnnl_types.h:530
Use no normalization flags.
Definition: dnnl_types.h:1079
scratchpad memory desc
Definition: dnnl_types.h:2396
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1919
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1527
dnnl_memory_t memory
Input/output memory.
Definition: dnnl_types.h:2302
const void * const_dnnl_op_desc_t
A pointer to any of the operation descriptors (constant variant).
Definition: dnnl_types.h:1351
Intel Streaming SIMD Extensions 4.1 (Intel SSE4.1)
Definition: dnnl_types.h:2501
Eltwise: clip.
Definition: dnnl_types.h:988
Intel AVX-512, Intel DL Boost and bfloat16 support and Intel AMX with 8-bit integer and bfloat16 supp...
Definition: dnnl_types.h:2534
prelu descriptor
Definition: dnnl_types.h:2373
An opaque structure for primitive descriptor attributes.
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1387
logsoftmax descriptor
Definition: dnnl_types.h:2381
permuted 4D tensor
Definition: dnnl_types.h:200
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1534
float lrn_alpha
LRN alpha parameter.
Definition: dnnl_types.h:1639
dnnl_memory_desc_t diff_weights_desc
Weights gradient memory descriptor.
Definition: dnnl_types.h:1737
dnnl_memory_desc_t dst_iter_c_desc
Destination iter memory descriptor for cell state.
Definition: dnnl_types.h:1807
Primitive iterator passed over last primitive descriptor.
Definition: dnnl_types.h:49
plain 8D tensor
Definition: dnnl_types.h:185
int minor
Minor version.
Definition: dnnl_types.h:2468
2D CNN weights tensor, an alias to dnnl_ab
Definition: dnnl_types.h:495
An opaque structure to describe a memory.
dnnl_memory_desc_t dst_layer_desc
Destination layer memory descriptor.
Definition: dnnl_types.h:1803
plain 11D tensor
Definition: dnnl_types.h:188
permuted 5D tensor
Definition: dnnl_types.h:201
dnnl_engine_kind_t
Kinds of engines.
Definition: dnnl_types.h:1972
struct dnnl_primitive_desc * dnnl_primitive_desc_t
A primitive descriptor handle.
Definition: dnnl_types.h:2015
Eltwise: square root (dst for backward)
Definition: dnnl_types.h:1002
non-standard 16-bit (bfloat16 w/ 7 bit mantissa) floating point.
Definition: dnnl_types.h:68
Parameter to allow internal only primitives without undefined behavior.
Definition: dnnl_types.h:938
Undefined primitive.
Definition: dnnl_types.h:890
dnnl_dims_t strides
Convolution strides in each spatial dimension.
Definition: dnnl_types.h:1391
int softmax_axis
The axis along which to perform the softmax.
Definition: dnnl_types.h:1503
Unidirectional execution of RNN primitive from left to right.
Definition: dnnl_types.h:1764
The library manages the scratchpad allocation according to the policy specified by the DNNL_ENABLE_CO...
Definition: dnnl_types.h:2043
5D CNN weights tensor (incl. groups), an alias to dnnl_acbde
Definition: dnnl_types.h:540
3D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:239
3D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBc8b ...
Definition: dnnl_types.h:630
Intel AVX2 and Intel Deep Learning Boost (Intel DL Boost) support.
Definition: dnnl_types.h:2537
dnnl_dims_t dims
Dimensions in the following order:
Definition: dnnl_types.h:1291
const struct dnnl_memory * const_dnnl_memory_t
A constant memory handle.
Definition: dnnl_types.h:1331
4D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcd16b ...
Definition: dnnl_types.h:612
binary descriptor
Definition: dnnl_types.h:2380
dnnl_alg_kind_t alg_kind
The kind of pooling algorithm.
Definition: dnnl_types.h:1570
dnnl_memory_desc_t diff_weights_iter_desc
Weights gradient iter memory descriptor.
Definition: dnnl_types.h:1826
permuted 4D tensor
Definition: dnnl_types.h:193
Description of tensor of packed weights for rnn.
Definition: dnnl_types.h:1224
A descriptor of a pooling operation.
Definition: dnnl_types.h:1521
2D CNN activations tensor, an alias to dnnl_ab
Definition: dnnl_types.h:472
plain 2D tensor
Definition: dnnl_types.h:178
4D CNN activations tensor, an alias to dnnl_bcda
Definition: dnnl_types.h:488
4D RNN bias tensor in the format (num_layers, num_directions, num_gates, output_channels).
Definition: dnnl_types.h:583
permuted 5D tensor
Definition: dnnl_types.h:208
pooling version 2 descriptor
Definition: dnnl_types.h:2384
Undefined memory format kind, used for empty memory descriptors.
Definition: dnnl_types.h:82
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:1895
Reduction using lp norm without final pth-root.
Definition: dnnl_types.h:1066
Bidirectional execution of RNN primitive with summation of the results.
Definition: dnnl_types.h:1772
32-bit signed integer.
Definition: dnnl_types.h:72
dnnl_memory_desc_t diff_src_iter_c_desc
Source gradient iter memory descriptor for cell state.
Definition: dnnl_types.h:1822
int inner_nblks
The number of innermost blocks, e.g. 3 in case of OIhw_4i16o4i_
Definition: dnnl_types.h:1177
Direct convolution.
Definition: dnnl_types.h:945
int major
Major version.
Definition: dnnl_types.h:2467
Just a sentinel, not real memory format tag.
Definition: dnnl_types.h:465
5D tensor blocked by 1st dimension with block size 8
Definition: dnnl_types.h:329
An opaque structure to describe a primitive descriptor iterator.
pooling descriptor
Definition: dnnl_types.h:2372
Convolution algorithm(either direct or Winograd) is chosen just in time.
Definition: dnnl_types.h:949
Reduction using mean.
Definition: dnnl_types.h:1058
float lrn_beta
LRN beta parameter.
Definition: dnnl_types.h:1641
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1731
Unidirectional execution of RNN primitive from right to left.
Definition: dnnl_types.h:1766
A deconvolution primitive.
Definition: dnnl_types.h:902
dnnl_memory_desc_t src_iter_desc
Source iteration memory descriptor for hidden state.
Definition: dnnl_types.h:1793
5D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:357
8-bit unsigned integer.
Definition: dnnl_types.h:76
dnnl_alg_kind_t alg_kind
The kind of the binary algorithm.
Definition: dnnl_types.h:1867
A descriptor of a matrix multiplication operation.
Definition: dnnl_types.h:1886
permuted 6D tensor
Definition: dnnl_types.h:214
3D RNN data tensor in the format (batch, seq_length, input channels).
Definition: dnnl_types.h:553
dnnl_alg_kind_t cell_kind
RNN cell kind.
Definition: dnnl_types.h:1787
const char * hash
Git hash of the sources (may be absent)
Definition: dnnl_types.h:2470
5D CNN weights tensor, an alias to dnnl_cdeba
Definition: dnnl_types.h:521
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1562
4D CNN activations tensor, an alias to dnnl_acdb
Definition: dnnl_types.h:486
dnnl_query_t
Primitive descriptor query specification.
Definition: dnnl_types.h:2339
Intel Advanced Vector Extensions (Intel AVX)
Definition: dnnl_types.h:2504
Intel AVX-512 subset for Intel Xeon Phi processors 7235, 7285, 7295 Series.
Definition: dnnl_types.h:2515
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition: dnnl_types.h:1893
Backward data propagation.
Definition: dnnl_types.h:879
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1947
dnnl_memory_desc_t stat_desc
Statistics memory descriptor.
Definition: dnnl_types.h:1673
A descriptor of a binary operation.
Definition: dnnl_types.h:1860
source gradient memory desc
Definition: dnnl_types.h:2390
plain 10D tensor
Definition: dnnl_types.h:187
A binary primitive.
Definition: dnnl_types.h:922
Structure containing version information as per Semantic Versioning
Definition: dnnl_types.h:2466
reduction descriptor
Definition: dnnl_types.h:2385
4D tensor blocked by 2nd dimension with block size 32
Definition: dnnl_types.h:280
int arg
An argument index, e.g. DNNL_ARG_SRC.
Definition: dnnl_types.h:2301
5D CNN weights tensor (incl. groups), an alias to dnnl_abdec
Definition: dnnl_types.h:536
permuted 11D tensor
Definition: dnnl_types.h:221
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: dnnl_types.h:1741
LSTM cell.
Definition: dnnl_types.h:1022
Packed weights format used in RNN.
Definition: dnnl_types.h:93
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1565
4D CNN weights tensor, an alias to dnnl_bcda
Definition: dnnl_types.h:513
4D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:272
permuted 7D tensor
Definition: dnnl_types.h:217
A reorder primitive.
Definition: dnnl_types.h:892
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition: dnnl_types.h:1379
A descriptor of a convolution operation.
Definition: dnnl_types.h:1363
2D CNN activations tensor, an alias to dnnl_ba
Definition: dnnl_types.h:474
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1747
softmax descriptor
Definition: dnnl_types.h:2371
permuted 5D tensor
Definition: dnnl_types.h:215
dnnl_dims_t kernel
Pooling kernel spatial dimensions.
Definition: dnnl_types.h:1582
Intel AVX-512 subset for Intel Xeon Scalable processor family and Intel Core processor family...
Definition: dnnl_types.h:2519
no query
Definition: dnnl_types.h:2340
dnnl_scratchpad_mode_t
Scratchpad mode.
Definition: dnnl_types.h:2026
Fuse with ReLU.
Definition: dnnl_types.h:1118
batch normalization descriptor
Definition: dnnl_types.h:2375
int asymm_compensation_mask
Compensation mask for asymmetric quantization.
Definition: dnnl_types.h:1265
dnnl_dims_t padded_dims
Size of the data including padding in each dimension.
Definition: dnnl_types.h:1297
A reduction primitive.
Definition: dnnl_types.h:932
dnnl_dim_t offset0
Offset from memory origin to the current block, non-zero only in a description of a memory sub-block...
Definition: dnnl_types.h:1305
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1911
5D CNN weights tensor, an alias to dnnl_abcde
Definition: dnnl_types.h:517
dnnl_dims_t padded_offsets
Per-dimension offset from the padding to actual data, the top-level tensor with offsets applied must ...
Definition: dnnl_types.h:1301
Undefined memory format, used for empty memory descriptors.
Definition: dnnl_types.h:1188
runtime estimation (seconds)
Definition: dnnl_types.h:2348
Backward propagation (with respect to all parameters).
Definition: dnnl_types.h:877
An unspecified engine.
Definition: dnnl_types.h:1974
5D tensor blocked by 1st dimension with block size 16
Definition: dnnl_types.h:325
Eltwise: ReLU.
Definition: dnnl_types.h:955
GPU engine.
Definition: dnnl_types.h:1978
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1871
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1863
4D RNN states tensor in the format (num_layers, num_directions, batch, state channels).
Definition: dnnl_types.h:556
5D RNN weights tensor in the format (num_layers, num_directions, input_channels, num_gates, output_channels).
Definition: dnnl_types.h:563
6D CNN weights tensor (incl. groups), an alias to dnnl_acbdef
Definition: dnnl_types.h:546
3D tensor blocked by 2nd dimension with block size 32
Definition: dnnl_types.h:237
(scratch) memory, additional to all inputs and outputs memory (bytes)
Definition: dnnl_types.h:2354
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1784
Eltwise: pow.
Definition: dnnl_types.h:990
5D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:342
dnnl_memory_extra_flags_t
Flags for memory special features.
Definition: dnnl_types.h:1238
5D RNN weights tensor in the format (num_layers, num_directions, num_gates, output_channels, input_channels).
Definition: dnnl_types.h:570
permuted 4D tensor
Definition: dnnl_types.h:210
An opaque structure to describe an engine.
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1632
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1891
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1375
6D CNN weights tensor (incl. groups), an alias to dnnl_abcdef
Definition: dnnl_types.h:542
Forward data propagation (inference mode).
Definition: dnnl_types.h:871
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1693
Undefined RNN flags.
Definition: dnnl_types.h:1758
A sum primitive.
Definition: dnnl_types.h:898
unsigned cpu_runtime
CPU runtime.
Definition: dnnl_types.h:2471
5D CNN weights tensor (incl. groups), an alias to dnnl_decab
Definition: dnnl_types.h:538
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1444
Intel Advanced Vector Extensions 512 (Intel AVX-512) subset for Intel Xeon Phi processors x200 Series...
Definition: dnnl_types.h:2511
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1499
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1695
A descriptor of a element-wise operation.
Definition: dnnl_types.h:1438
dnnl_dims_t inner_blks
The size of the blocks, e.g. {4, 16, 4} in case of OIhw_4i16o4i
Definition: dnnl_types.h:1179
A descriptor of a Softmax operation.
Definition: dnnl_types.h:1491
An opaque structure for a chain of post operations.
A descriptor of an inner product operation.
Definition: dnnl_types.h:1722
Eltwise: round.
Definition: dnnl_types.h:994
The operation failed because of incorrect function arguments.
Definition: dnnl_types.h:45
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1588
3D RNN data tensor in the format (seq_length, batch, input channels).
Definition: dnnl_types.h:551
dnnl_memory_desc_t diff_weights_projection_desc
Weights gradient projection memory descriptor.
Definition: dnnl_types.h:1842
dnnl_rnn_direction_t
A direction of RNN primitive execution.
Definition: dnnl_types.h:1762
Internal weights format for 2x3 Winograd.
Definition: dnnl_types.h:1190
inner product descriptor
Definition: dnnl_types.h:2377
5D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:331
A descriptor of reduction operation.
Definition: dnnl_types.h:1936
6D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:393
dnnl_status_t
Status values returned by the library functions.
Definition: dnnl_types.h:39
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1538
Reduction using lp norm.
Definition: dnnl_types.h:1062
Binary mul.
Definition: dnnl_types.h:1036
dnnl_memory_desc_t dst_iter_desc
Destination iter memory descriptor for hidden state.
Definition: dnnl_types.h:1805
A softmax primitive.
Definition: dnnl_types.h:906
const struct dnnl_primitive_desc * const_dnnl_primitive_desc_t
A constant primitive descriptor handle.
Definition: dnnl_types.h:2018
int64_t dnnl_dim_t
A type to describe tensor dimension.
Definition: dnnl_types.h:1162
Forward data propagation (alias for dnnl_forward_training).
Definition: dnnl_types.h:875
primitive kind
Definition: dnnl_types.h:2343
matrix multiplication (matmul) descriptor
Definition: dnnl_types.h:2382
Default stream configuration.
Definition: dnnl_types.h:2417
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1743
dnnl_memory_desc_t stat_desc
Mean and variance data memory descriptors.
Definition: dnnl_types.h:1710
const struct dnnl_primitive * const_dnnl_primitive_t
A constant primitive handle.
Definition: dnnl_types.h:2102
LRN within a single channel.
Definition: dnnl_types.h:1018
dnnl_data_type_t
Data type specification.
Definition: dnnl_types.h:62
plain 4D tensor
Definition: dnnl_types.h:180
Generic description of blocked data layout for most memory formats.
Definition: dnnl_types.h:1170
plain 6D tensor
Definition: dnnl_types.h:183
Eltwise: exp (dst for backward)
Definition: dnnl_types.h:1006
Winograd convolution.
Definition: dnnl_types.h:947
5D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:381
dnnl_wino_desc_t wino_desc
Tensor of weights for integer 8bit winograd convolution.
Definition: dnnl_types.h:1314
dnnl_alg_kind_t alg_kind
The kind of eltwise algorithm.
Definition: dnnl_types.h:1457
dnnl_format_tag_t
Memory format tag specification.
Definition: dnnl_types.h:164
4D LSTM projection tensor in the format (num_layers, num_directions, num_channels_in_recurrent_projec...
Definition: dnnl_types.h:576
Max pooling.
Definition: dnnl_types.h:1008
Eltwise: natural logarithm.
Definition: dnnl_types.h:986
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1923
float batch_norm_epsilon
Batch normalization epsilon parameter.
Definition: dnnl_types.h:1675
float p
Algorithm specific parameters.
Definition: dnnl_types.h:1961
dnnl_memory_desc_t weights_projection_desc
Weights projection memory descriptor.
Definition: dnnl_types.h:1815
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1691
plain 12D tensor
Definition: dnnl_types.h:189
Description of tensor of weights for winograd 2x3 convolution.
Definition: dnnl_types.h:1198
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1497
4D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcd4b ...
Definition: dnnl_types.h:615
Reduction using lp norm.
Definition: dnnl_types.h:1060
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:1801
3D CNN weights tensor, an alias to dnnl_cba
Definition: dnnl_types.h:503
Binary div.
Definition: dnnl_types.h:1042
4D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:303
Out-of-order execution.
Definition: dnnl_types.h:2415
Binary min.
Definition: dnnl_types.h:1040
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1949
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1624
dnnl_format_kind_t
Memory format kind.
Definition: dnnl_types.h:80
permuted 3D tensor
Definition: dnnl_types.h:196
4D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:323
5D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcde4b ...
Definition: dnnl_types.h:603
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1781
Average pooling (alias for dnnl_pooling_avg_exclude_padding)
Definition: dnnl_types.h:1014
dnnl_memory_desc_t diff_src_layer_desc
Source gradient layer memory descriptor.
Definition: dnnl_types.h:1818
int axis
Axis for shuffling.
Definition: dnnl_types.h:1427
dnnl_rnn_packed_desc_t rnn_packed_desc
Tensor of packed weights for RNN.
Definition: dnnl_types.h:1316
3D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:262
Binary add.
Definition: dnnl_types.h:1034
3D CNN activations tensor, an alias to dnnl_abc
Definition: dnnl_types.h:480
deconvolution descriptor
Definition: dnnl_types.h:2368
A pooling primitive.
Definition: dnnl_types.h:908
dnnl_dims_t strides
The strides between the outermost blocks.
Definition: dnnl_types.h:1173
rnn descriptor
Definition: dnnl_types.h:2378
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1366
Eltwise: logistic.
Definition: dnnl_types.h:973
A descriptor of a shuffle operation.
Definition: dnnl_types.h:1416
const struct dnnl_primitive_desc_iterator * const_dnnl_primitive_desc_iterator_t
A constant primitive descriptor iterator handle.
Definition: dnnl_types.h:2007
dnnl_dims_t kernel
Pooling kernel spatial dimensions.
Definition: dnnl_types.h:1544
Eltwise: hyperbolic tangent non-linearity (tanh) (dst for backward)
Definition: dnnl_types.h:998
Winograd deconvolution.
Definition: dnnl_types.h:953
permuted 4D tensor
Definition: dnnl_types.h:211
number of outputs expected
Definition: dnnl_types.h:2346
#define DNNL_MAX_NDIMS
Maximum number of dimensions a tensor can have.
Definition: dnnl_types.h:1130
5D CNN weights tensor (incl. groups), an alias to dnnl_abcde
Definition: dnnl_types.h:534
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1733
float lrn_k
LRN k parameter.
Definition: dnnl_types.h:1643
dnnl_rnn_direction_t direction
The direction of RNN primitive execution.
Definition: dnnl_types.h:1789
6D CNN weights tensor (incl. groups), an alias to dnnl_defcab
Definition: dnnl_types.h:548
GEMM descriptor (internal)
Definition: dnnl_types.h:2379
plain 1D tensor
Definition: dnnl_types.h:177
Bidirectional execution of RNN primitive with concatenation of the results.
Definition: dnnl_types.h:1769
Reduction using min.
Definition: dnnl_types.h:1052
permuted 2D tensor
Definition: dnnl_types.h:202
permuted 5D tensor
Definition: dnnl_types.h:213
permuted 6D tensor
Definition: dnnl_types.h:198
dnnl_memory_desc_t src_iter_c_desc
Source iteration memory descriptor for cell state.
Definition: dnnl_types.h:1795
stub
Definition: dnnl_types.h:2365
dnnl_memory_desc_t diff_desc
Source and Destination of gradient memory descriptor.
Definition: dnnl_types.h:1501
3D CNN weights tensor, an alias to dnnl_bca
Definition: dnnl_types.h:505
5D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcde8b ...
Definition: dnnl_types.h:606
propagation kind
Definition: dnnl_types.h:2362
plain 9D tensor
Definition: dnnl_types.h:186
An inner product primitive.
Definition: dnnl_types.h:916
Use global statistics.
Definition: dnnl_types.h:1092
6D RNN weights tensor
Definition: dnnl_types.h:588
5D CNN activations tensor blocked by channels with block size 32, an alias to dnnl_aBcde32b ...
Definition: dnnl_types.h:597
GRU cell.
Definition: dnnl_types.h:1024
3D CNN activations tensor, an alias to dnnl_acb
Definition: dnnl_types.h:482
The operation was successful.
Definition: dnnl_types.h:41
A descriptor of a Layer Normalization operation.
Definition: dnnl_types.h:1685
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1419
8-bit signed integer.
Definition: dnnl_types.h:74
convolution descriptor
Definition: dnnl_types.h:2367
dnnl_memory_desc_t weights_peephole_desc
Weights peephole memory descriptor.
Definition: dnnl_types.h:1811
RNN cell.
Definition: dnnl_types.h:1020
Alias for dnnl_unidirectional_left2right.
Definition: dnnl_types.h:1774
A (out-of-place) concat primitive.
Definition: dnnl_types.h:896
Internal weights format for 2x3 Winograd.
Definition: dnnl_types.h:1192
dnnl_dims_t dilates
Convolution dilates in each spatial dimension.
Definition: dnnl_types.h:1393
const struct dnnl_stream * const_dnnl_stream_t
A constant execution stream handle.
Definition: dnnl_types.h:2426
2D RNN statistics tensor, an alias to dnnl_ba
Definition: dnnl_types.h:478
5D CNN activations tensor, an alias to dnnl_acdeb
Definition: dnnl_types.h:492
Intel AVX-512 and Intel Deep Learning Boost (Intel DL Boost) support for Intel Xeon Scalable processo...
Definition: dnnl_types.h:2524
Undefined memory format tag.
Definition: dnnl_types.h:166
Reduction using mul.
Definition: dnnl_types.h:1056
permuted 5D tensor
Definition: dnnl_types.h:197
Eltwise: square root.
Definition: dnnl_types.h:965
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1660
int patch
Patch version.
Definition: dnnl_types.h:2469
dnnl_alg_kind_t alg_kind
The kind of reduction algorithm.
Definition: dnnl_types.h:1945
4D CNN activations tensor blocked by channels with block size 32, an alias to dnnl_aBcd32b ...
Definition: dnnl_types.h:609
permuted 3D tensor
Definition: dnnl_types.h:206
permuted 8D tensor
Definition: dnnl_types.h:218
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1634
source memory desc
Definition: dnnl_types.h:2389
Eltwise: swish.
Definition: dnnl_types.h:984
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1627
#define DNNL_RNN_MAX_N_PARTS
Maximum number of parts of RNN weights tensor that require separate computation.
Definition: dnnl_types.h:1221
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1939
struct dnnl_stream_attr * dnnl_stream_attr_t
An execution stream attributes handle.
Definition: dnnl_types.h:2431
Memory descriptor.
Definition: dnnl_types.h:1274
dnnl_wino_memory_format_t
Winograd-specific formats.
Definition: dnnl_types.h:1186
2D RNN statistics tensor, an alias to dnnl_ab
Definition: dnnl_types.h:476
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1688
A descriptor of a pooling operation.
Definition: dnnl_types.h:1559
dnnl_data_type_t data_type
Data type of the tensor elements.
Definition: dnnl_types.h:1294
A matrix multiplication primitive.
Definition: dnnl_types.h:926
Queried element is not required for given primitive.
Definition: dnnl_types.h:53
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1550
Eltwise: erf-based gelu.
Definition: dnnl_types.h:992
permuted 9D tensor
Definition: dnnl_types.h:219
Indicates the weights have an additional buffer, that depends on the compensation_mask.
Definition: dnnl_types.h:1247
dnnl_blocking_desc_t blocking
Description of the data layout for memory formats that use blocking.
Definition: dnnl_types.h:1312
dnnl_dims_t inner_idxs
The logical indices of the blocks, e.g.
Definition: dnnl_types.h:1182
The operation failed due to an out-of-memory condition.
Definition: dnnl_types.h:43
Backward weights propagation.
Definition: dnnl_types.h:881
5D tensor blocked by 2nd dimension with block size 32
Definition: dnnl_types.h:340
3D CNN weights tensor, an alias to dnnl_acb
Definition: dnnl_types.h:501
dnnl_memory_desc_t diff_weights_desc
Weights gradient memory descriptor.
Definition: dnnl_types.h:1381
dnnl_memory_desc_t data_scaleshift_desc
Scale and shift data and gradient memory descriptors.
Definition: dnnl_types.h:1668
workspace memory desc
Definition: dnnl_types.h:2395
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1889
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1389
eltwise descriptor
Definition: dnnl_types.h:2370
number of inputs expected
Definition: dnnl_types.h:2345
const struct dnnl_stream_attr * const_dnnl_stream_attr_t
A constant execution stream attributes handle.
Definition: dnnl_types.h:2433
shuffle descriptor
Definition: dnnl_types.h:2369
Average pooling include padding.
Definition: dnnl_types.h:1010
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1662
Weights format used in 8bit Winograd convolution.
Definition: dnnl_types.h:91
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1921
32-bit/single-precision floating point.
Definition: dnnl_types.h:70
permuted 5D tensor
Definition: dnnl_types.h:212
A structure that contains an index and a memory object, and is used to pass arguments to dnnl_primiti...
Definition: dnnl_types.h:2300
Intel AVX-512, Intel DL Boost and bfloat16 support for Intel Xeon Scalable processor family and Intel...
Definition: dnnl_types.h:2529
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1914
4D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcd8b ...
Definition: dnnl_types.h:618
struct dnnl_primitive_attr * dnnl_primitive_attr_t
A primitive descriptor attributes handle that controls primitive behavior.
Definition: dnnl_types.h:2060
lrn descriptor
Definition: dnnl_types.h:2374
dnnl_memory_desc_t src_layer_desc
Source layer memory descriptor.
Definition: dnnl_types.h:1791
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1925
4D tensor blocked by 1st and 2nd dimension with block size 8
Definition: dnnl_types.h:311
A shuffle primitive.
Definition: dnnl_types.h:894
for creating scratchpad memory
Definition: dnnl_types.h:2357
float layer_norm_epsilon
Layer normalization epsilon parameter.
Definition: dnnl_types.h:1712
dnnl_memory_desc_t diff_weights_peephole_desc
Weights gradient peephole memory descriptor.
Definition: dnnl_types.h:1838
struct dnnl_engine * dnnl_engine_t
An engine handle.
Definition: dnnl_types.h:1985
unsigned int flags
RNN cell flags.
Definition: dnnl_types.h:1845
permuted 4D tensor
Definition: dnnl_types.h:207
4D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:282
Binary max.
Definition: dnnl_types.h:1038
Unspecified format kind.
Definition: dnnl_types.h:85
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1422
2D CNN weights tensor, an alias to dnnl_ba
Definition: dnnl_types.h:497
Average pooling exclude padding.
Definition: dnnl_types.h:1012
3D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBc16b ...
Definition: dnnl_types.h:624
dnnl_alg_kind_t
Kinds of algorithms.
Definition: dnnl_types.h:942
4D CNN weights tensor, an alias to dnnl_cdba
Definition: dnnl_types.h:509
6D CNN weights tensor (incl. groups), an alias to dnnl_abdefc
Definition: dnnl_types.h:544
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1578
Reduction using max.
Definition: dnnl_types.h:1050
5D CNN weights tensor, an alias to dnnl_bacde
Definition: dnnl_types.h:519
permuted 3D tensor
Definition: dnnl_types.h:209
dnnl_rnn_flags_t
Flags for RNN cell.
Definition: dnnl_types.h:1756
uint64_t flags
The flags contain arbitrary extra information, such as compensation.
Definition: dnnl_types.h:1259
dnnl_memory_desc_t diff_dst_iter_desc
Destination gradient iteration memory descriptor for hidden state.
Definition: dnnl_types.h:1832
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1572
Description of extra information stored in memory.
Definition: dnnl_types.h:1256
A pooling version 2 primitive (pooling with dilation support).
Definition: dnnl_types.h:930
4D CNN weights tensor (incl. groups), an alias to dnnl_dcab
Definition: dnnl_types.h:532
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1729
An LRN primitive.
Definition: dnnl_types.h:910
A descriptor of a Local Response Normalization (LRN) operation.
Definition: dnnl_types.h:1621
dnnl_softmax_desc_t dnnl_logsoftmax_desc_t
A descriptor of a LogSoftmax operation.
Definition: dnnl_types.h:1513
int ndims
Number of dimensions.
Definition: dnnl_types.h:1276
dnnl_stream_flags_t
Stream flags.
Definition: dnnl_types.h:2411
dnnl_dim_t dnnl_dims_t[DNNL_MAX_NDIMS]
A type to describe tensor dimensions.
Definition: dnnl_types.h:1165
Undefined propagation type.
Definition: dnnl_types.h:864
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1461
Primitive or engine failed on execution.
Definition: dnnl_types.h:51
op descriptor
Definition: dnnl_types.h:2366
6D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:388
dnnl_memory_desc_t weights_iter_desc
Weights iteration memory descriptor.
Definition: dnnl_types.h:1799
const struct dnnl_post_ops * const_dnnl_post_ops_t
A constant post operation chain handle.
Definition: dnnl_types.h:2089
Eltwise: exponent.
Definition: dnnl_types.h:975
1D tensor, an alias to dnnl_a
Definition: dnnl_types.h:470
Local response normalization (LRN) across multiple channels.
Definition: dnnl_types.h:1016
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1524
resampling descriptor
Definition: dnnl_types.h:2383
const struct dnnl_primitive_attr * const_dnnl_primitive_attr_t
A constant primitive descriptor attributes handle.
Definition: dnnl_types.h:2063
A matrix multiplication primitive (internal).
Definition: dnnl_types.h:920
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: dnnl_types.h:1828
plain 3D tensor
Definition: dnnl_types.h:179
Use scale and shift parameters.
Definition: dnnl_types.h:1105
3D CNN activations tensor blocked by channels with block size 32, an alias to dnnl_aBc32b ...
Definition: dnnl_types.h:621
A descriptor of a Batch Normalization operation.
Definition: dnnl_types.h:1652
5D CNN weights tensor, an alias to dnnl_bcdea
Definition: dnnl_types.h:525
struct dnnl_primitive * dnnl_primitive_t
A primitive handle.
Definition: dnnl_types.h:2100
Intel Advanced Vector Extensions 2 (Intel AVX2)
Definition: dnnl_types.h:2507
3D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBc4b ...
Definition: dnnl_types.h:627
struct dnnl_stream * dnnl_stream_t
An execution stream handle.
Definition: dnnl_types.h:2424
4D CNN weights tensor, an alias to dnnl_bacd
Definition: dnnl_types.h:515
Eltwise: exponential linear unit (elu) (dst for backward)
Definition: dnnl_types.h:1000
Eltwise: exponential linear unit (elu)
Definition: dnnl_types.h:959
Forward data propagation (alias for dnnl_forward_inference).
Definition: dnnl_types.h:873
6D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:383
Binary sub.
Definition: dnnl_types.h:1044
5D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcde16b ...
Definition: dnnl_types.h:600
An opaque structure to describe a primitive descriptor.
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1370
struct dnnl_primitive_desc_iterator * dnnl_primitive_desc_iterator_t
A primitive descriptor iterator handle.
Definition: dnnl_types.h:2004
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1574
Eltwise: abs.
Definition: dnnl_types.h:963
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1459
Internal weights format for 4x3 Winograd.
Definition: dnnl_types.h:1194
Forward data propagation (training mode).
Definition: dnnl_types.h:867
permuted 5D tensor
Definition: dnnl_types.h:194
dnnl_memory_desc_t data_desc
Source and destination memory descriptor, and source and destination gradient memory descriptor...
Definition: dnnl_types.h:1425
Eltwise: tanh-based gelu (alias for dnnl_eltwise_gelu_tanh)
Definition: dnnl_types.h:982
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1377
A rnn primitive.
Definition: dnnl_types.h:918
An opaque structure to describe an execution stream.
4D CNN activations tensor, an alias to dnnl_abcd
Definition: dnnl_types.h:484
A logsoftmax primitive.
Definition: dnnl_types.h:924
permuted 5D tensor
Definition: dnnl_types.h:205
The operation failed because requested functionality is not implemented.
Definition: dnnl_types.h:47
Eltwise: gelu.
Definition: dnnl_types.h:980
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1899
dnnl_memory_desc_t diff_src_iter_desc
Source gradient iter memory descriptor for hidden state.
Definition: dnnl_types.h:1820
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1536
Eltwise: hyperbolic tangent non-linearity (tanh)
Definition: dnnl_types.h:957
struct dnnl_post_ops * dnnl_post_ops_t
A post operation chain handle.
Definition: dnnl_types.h:2086
permuted 10D tensor
Definition: dnnl_types.h:220
A descriptor of resampling operation.
Definition: dnnl_types.h:1908
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1540
dnnl_prop_kind_t
Kinds of propagation.
Definition: dnnl_types.h:861
permuted 6D tensor
Definition: dnnl_types.h:216
stub
Definition: dnnl_types.h:2388
Nearest Neighbor Resampling Method.
Definition: dnnl_types.h:1046
permuted 4D tensor
Definition: dnnl_types.h:204
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1745
plain 4D tensor
Definition: dnnl_types.h:181
16-bit/half-precision floating point.
Definition: dnnl_types.h:66
source engine
Definition: dnnl_types.h:2359
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: dnnl_types.h:1385
dnnl_alg_kind_t alg_kind
The kind of the resampling algorithm.
Definition: dnnl_types.h:1917
dnnl_normalization_flags_t
Flags for normalization primitives.
Definition: dnnl_types.h:1070
weights grad. memory desc
Definition: dnnl_types.h:2392
A convolution primitive.
Definition: dnnl_types.h:900
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1441
memory desc of an execute argument
Definition: dnnl_types.h:2397
Backward bias propagation.
Definition: dnnl_types.h:883
5D CNN activations tensor, an alias to dnnl_abcde
Definition: dnnl_types.h:490
4D CNN weights tensor, an alias to dnnl_abcd
Definition: dnnl_types.h:507
Eltwise: logistic (dst for backward)
Definition: dnnl_types.h:1004
dnnl_memory_desc_t diff_weights_layer_desc
Weights gradient layer memory descriptor.
Definition: dnnl_types.h:1824
weights memory descriptor desc
Definition: dnnl_types.h:2391
unsigned gpu_runtime
GPU runtime.
Definition: dnnl_types.h:2472
Linear Resampling Method.
Definition: dnnl_types.h:1048
3D CNN weights tensor, an alias to dnnl_abc
Definition: dnnl_types.h:499
dnnl_cpu_isa_t
CPU instruction set flags.
Definition: dnnl_types.h:2496
int compensation_mask
Compensation mask.
Definition: dnnl_types.h:1261
Eltwise: soft_relu.
Definition: dnnl_types.h:971
plain 5D tensor
Definition: dnnl_types.h:182
dnnl_dims_t strides
Pooling kernel strides for spatial dimensions.
Definition: dnnl_types.h:1580
destination engine
Definition: dnnl_types.h:2360
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1725
Eltwise: square.
Definition: dnnl_types.h:961
float alpha
Algorithm specific parameter.
Definition: dnnl_types.h:1482