oneAPI Deep Neural Network Library (oneDNN)
Performance library for Deep Learning
2.2.4
dnnl_types.h
Go to the documentation of this file.
1 /*******************************************************************************
2 * Copyright 2016-2021 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 
221 
222  // Opaque blocked formats
223 
224  dnnl_Abc16a,
225  dnnl_ABc16a16b,
226  dnnl_ABc32a32b,
227  dnnl_ABc4a4b,
230  dnnl_ABc16b16a,
231  dnnl_Abc4a,
236  dnnl_ABc4b16a4b,
237  dnnl_ABc2b8a4b,
238  dnnl_ABc16b16a4b,
239  dnnl_ABc16b16a2b,
240  dnnl_ABc4b4a,
241  dnnl_ABc8a16b2a,
242  dnnl_ABc8a8b,
243  dnnl_ABc8a4b,
246  dnnl_ABc8b16a2b,
247  dnnl_BAc8a16b2a,
248  dnnl_ABc8b8a,
249  dnnl_Abcd16a,
250  dnnl_Abcd8a,
251  dnnl_ABcd16a16b,
252  dnnl_Abcd32a,
253  dnnl_ABcd32a32b,
256  dnnl_ABcd16b16a,
257  dnnl_aBCd16b16c,
258  dnnl_aBCd16c16b,
259  dnnl_Abcd4a,
264  dnnl_ABcd4b16a4b,
265  dnnl_ABcd16b16a4b,
266  dnnl_ABcd16b16a2b,
267  dnnl_ABcd4b4a,
268  dnnl_ABcd4a4b,
269  dnnl_aBCd2c4b2c,
270  dnnl_aBCd4b8c2b,
271  dnnl_aBCd4c16b4c,
272  dnnl_aBCd2c8b4c,
273  dnnl_aBCd16c16b4c,
274  dnnl_aBCd16c16b2c,
275  dnnl_aBCd4c4b,
276  dnnl_aBCd4b4c,
277  dnnl_ABcd8a16b2a,
278  dnnl_ABcd2b8a4b,
279  dnnl_ABcd8a8b,
280  dnnl_ABcd8a4b,
283  dnnl_aBCd4c8b2c,
284  dnnl_ABcd8b16a2b,
285  dnnl_aBCd8b16c2b,
286  dnnl_BAcd8a16b2a,
289  dnnl_aBCd8b8c,
290  dnnl_aBCd8b4c,
291  dnnl_aBCd8c16b2c,
292  dnnl_ABcde8a16b2a,
293  dnnl_aCBd8b16c2b,
294  dnnl_aBCd8c8b,
295  dnnl_Abcde16a,
296  dnnl_Abcde32a,
297  dnnl_ABcde16a16b,
298  dnnl_BAcde8a16b2a,
307  dnnl_ABcde16b16a,
308  dnnl_aBCde16b16c,
309  dnnl_aBCde16c16b,
310  dnnl_aBCde2c8b4c,
311  dnnl_Abcde4a,
316  dnnl_ABcde4b4a,
317  dnnl_ABcde4a4b,
318  dnnl_aBCde4b4c,
319  dnnl_aBCde2c4b2c,
320  dnnl_aBCde4b8c2b,
321  dnnl_aBCde4c16b4c,
322  dnnl_aBCde16c16b4c,
323  dnnl_aBCde16c16b2c,
324  dnnl_aBCde4c4b,
325  dnnl_Abcde8a,
326  dnnl_ABcde8a8b,
327  dnnl_ABcde8a4b,
328  dnnl_BAcde16b16a,
331  dnnl_ABcde8b16a2b,
332  dnnl_aBCde8b16c2b,
333  dnnl_aBCde4c8b2c,
334  dnnl_aCBde8b16c2b,
335  dnnl_ABcde8b8a,
336  dnnl_ABcde32a32b,
337  dnnl_aBCde8b8c,
338  dnnl_aBCde8b4c,
339  dnnl_ABc4a8b8a4b,
340  dnnl_ABcd4a8b8a4b,
341  dnnl_ABcde4a8b8a4b,
342  dnnl_BAc4b8a8b4a,
343  dnnl_BAcd4b8a8b4a,
344  dnnl_BAcde4b8a8b4a,
345  dnnl_ABcd2a8b8a2b,
346  dnnl_aBCd4b8c8b4c,
347  dnnl_aBCde4b8c8b4c,
348  dnnl_aBCde2b8c8b2c,
349  dnnl_aBCde8c16b2c,
350  dnnl_aBCde8c8b,
355  dnnl_aBCdef16b16c,
356  dnnl_aBCdef16c16b,
357  dnnl_aBCdef4c16b4c,
360  dnnl_aBCdef4c8b2c,
365  dnnl_aBCdef4c4b,
366  dnnl_aBCdef4b4c,
367  dnnl_aBCdef2c4b2c,
368  dnnl_aBCdef4b8c2b,
369  dnnl_aBCdef8b8c,
370  dnnl_aBCdef8b4c,
371  dnnl_aBCdef8c16b2c,
372  dnnl_aBCdef4b8c8b4c,
373  dnnl_aBCdef8b16c2b,
374  dnnl_aCBdef8b16c2b,
375  dnnl_aBCdef8c8b,
376  dnnl_aBdc16b,
377  dnnl_aBdC16b2c,
378  dnnl_aBdC16b4c,
379  dnnl_aBdc4b,
380  dnnl_aBdc8b,
381  dnnl_aBdec16b,
382  dnnl_aBdeC16b2c,
383  dnnl_aBdeC16b4c,
384  dnnl_aBdec32b,
385  dnnl_aBdec4b,
386  dnnl_aBdec8b,
387  dnnl_aBdefc16b,
388  dnnl_aBdefC16b2c,
389  dnnl_aCBdef16c16b,
390  dnnl_aBdefc4b,
391  dnnl_aBdefc8b,
392  dnnl_Abcdef16a,
393  dnnl_Abcdef32a,
394  dnnl_aBedc16b,
395  dnnl_Acb16a,
396  dnnl_AcB16a2b,
397  dnnl_AcB16a4b,
398  dnnl_Acb4a,
399  dnnl_Acb8a,
400  dnnl_aCBd16b16c,
401  dnnl_aCBd16c16b,
402  dnnl_aCBde16b16c,
403  dnnl_aCBde16c16b,
404  dnnl_Acdb16a,
405  dnnl_AcdB16a2b,
406  dnnl_AcdB16a4b,
407  dnnl_Acdb32a,
408  dnnl_Acdb4a,
409  dnnl_Acdb8a,
410  dnnl_Acdeb16a,
411  dnnl_AcdeB16a2b,
412  dnnl_Acdeb4a,
413  dnnl_Acdeb8a,
414  dnnl_Adcb16a,
415  dnnl_BAc16a16b,
416  dnnl_BAc16b16a,
417  dnnl_BAcd16a16b,
418  dnnl_BAcd16b16a,
419  dnnl_aCBd4c8b8c4b,
420  dnnl_aCBde4c8b8c4b,
421  dnnl_aCBdef4c8b8c4b,
422  dnnl_BAcde16a16b,
423  dnnl_aCBdef16b16c,
426  dnnl_ABc16b32a,
427  dnnl_ABc16b64a,
428  dnnl_ABc4b32a4b,
429  dnnl_ABc4b64a4b,
430  dnnl_ABc8b32a2b,
431  dnnl_ABc8b64a2b,
432  dnnl_AB16b16a,
433  dnnl_AB16b32a,
434  dnnl_AB16b64a,
435  dnnl_AB8b16a2b,
436  dnnl_AB8b32a2b,
437  dnnl_AB8b64a2b,
438  dnnl_AB4b16a4b,
439  dnnl_AB4b32a4b,
440  dnnl_AB4b64a4b,
441  dnnl_AB16b16a4b,
442  dnnl_ABcd16b32a,
443  dnnl_ABcd16b64a,
444  dnnl_ABcd4b32a4b,
445  dnnl_ABcd4b64a4b,
446  dnnl_ABcd8b32a2b,
447  dnnl_ABcd8b64a2b,
448  dnnl_ABcde4b32a4b,
449  dnnl_ABcde4b64a4b,
450  dnnl_ABcde16b16a4b,
451  dnnl_ABcde16b16a2b,
452  dnnl_ABcde16b32a,
453  dnnl_ABcde16b64a,
454  dnnl_ABcde8b32a2b,
455  dnnl_ABcde8b64a2b,
456  dnnl_aBCdef16c16b4c,
457  dnnl_aBCdef16c16b2c,
458  dnnl_AB32a32b8a4b,
459  dnnl_AB8a4b,
460  dnnl_AB32a32b8a2b,
461  dnnl_AB8a2b,
462  dnnl_abDc32d,
463  dnnl_abDC32d4c,
464  dnnl_abdEc32e,
465  dnnl_abdEC32e2c,
466  dnnl_abdEC32e4c,
467  dnnl_aBdefC16b4c,
468  dnnl_AcdeB16a4b,
469  dnnl_ABcd16a16b2a,
470  dnnl_ABc16a16b2a,
471  dnnl_aBCd16b16c2b,
472  dnnl_aBCde16b16c2b,
473  dnnl_Acb32a,
474  dnnl_AcB32a2b,
475  dnnl_AcB32a4b,
476  dnnl_Acb48a,
477  dnnl_AcB48a2b,
478  dnnl_AcB48a4b,
479  dnnl_Acb64a,
480  dnnl_AcB64a2b,
481  dnnl_AcB64a4b,
482  dnnl_cBa2b,
483  dnnl_cBa4b,
484  dnnl_aBdc32b,
485  dnnl_aBdC32b2c,
486  dnnl_aBdC32b4c,
487  dnnl_aBdc48b,
488  dnnl_aBdC48b2c,
489  dnnl_aBdC48b4c,
490  dnnl_aBdc64b,
491  dnnl_aBdC64b2c,
492  dnnl_aBdC64b4c,
493  dnnl_adcb,
494  dnnl_adCb2c,
495  dnnl_adCb4c,
496  dnnl_AcdB32a2b,
497  dnnl_AcdB32a4b,
498  dnnl_Acdb48a,
499  dnnl_AcdB48a2b,
500  dnnl_AcdB48a4b,
501  dnnl_Acdb64a,
502  dnnl_AcdB64a2b,
503  dnnl_AcdB64a4b,
504  dnnl_cdBa2b,
505  dnnl_cdBa4b,
506  dnnl_aBdeC32b2c,
507  dnnl_aBdeC32b4c,
508  dnnl_aBdec48b,
509  dnnl_aBdeC48b2c,
510  dnnl_aBdeC48b4c,
511  dnnl_aBdec64b,
512  dnnl_aBdeC64b2c,
513  dnnl_aBdeC64b4c,
514  dnnl_adecb,
515  dnnl_adeCb2c,
516  dnnl_adeCb4c,
517  dnnl_Acdeb32a,
518  dnnl_AcdeB32a2b,
519  dnnl_AcdeB32a4b,
520  dnnl_Acdeb48a,
521  dnnl_AcdeB48a2b,
522  dnnl_AcdeB48a4b,
523  dnnl_Acdeb64a,
524  dnnl_AcdeB64a2b,
525  dnnl_AcdeB64a4b,
526  dnnl_cdeBa2b,
527  dnnl_cdeBa4b,
528  dnnl_aBdefc32b,
529  dnnl_aBdefC32b2c,
530  dnnl_aBdefC32b4c,
531  dnnl_aBdefc48b,
532  dnnl_aBdefC48b2c,
533  dnnl_aBdefC48b4c,
534  dnnl_aBdefc64b,
535  dnnl_aBdefC64b2c,
536  dnnl_aBdefC64b4c,
537  dnnl_adefcb,
538  dnnl_adefCb2c,
539  dnnl_adefCb4c,
540  dnnl_AB16b32a4b,
541  dnnl_AB16b48a4b,
542  dnnl_AB16b64a4b,
543  dnnl_AB16b16a2b,
544  dnnl_AB16b32a2b,
545  dnnl_AB16b48a2b,
546  dnnl_AB16b64a2b,
547  dnnl_ABc16b32a4b,
548  dnnl_ABc16b48a4b,
549  dnnl_ABc16b64a4b,
550  dnnl_ABc16b32a2b,
551  dnnl_ABc16b48a2b,
552  dnnl_ABc16b64a2b,
553  dnnl_ABcd16b32a4b,
554  dnnl_ABcd16b48a4b,
555  dnnl_ABcd16b64a4b,
556  dnnl_ABcd16b32a2b,
557  dnnl_ABcd16b48a2b,
558  dnnl_ABcd16b64a2b,
559  dnnl_ABcde16b32a4b,
560  dnnl_ABcde16b48a4b,
561  dnnl_ABcde16b64a4b,
562  dnnl_ABcde16b32a2b,
563  dnnl_ABcde16b48a2b,
564  dnnl_ABcde16b64a2b,
565 
569 
570  // Aliases
571 
596 
629 
652 
692  dnnl_ldOi32o = dnnl_abDc32d,
693  dnnl_ldOI32o4i = dnnl_abDC32d4c,
695  dnnl_ldgOi32o = dnnl_abdEc32e,
696  dnnl_ldgOI32o2i = dnnl_abdEC32e2c,
697  dnnl_ldgOI32o4i = dnnl_abdEC32e4c,
698 
699  // Opaque data types, are not to be used explicitly
700 
701  // data
738  dnnl_NCw16n16c = dnnl_ABc16a16b,
739  dnnl_NCdhw16n16c = dnnl_ABcde16a16b,
740  dnnl_NChw16n16c = dnnl_ABcd16a16b,
741  dnnl_NCw32n32c = dnnl_ABc32a32b,
742  dnnl_NChw32n32c = dnnl_ABcd32a32b,
743  dnnl_NCdhw32n32c = dnnl_ABcde32a32b,
744 
745  // weights, 2D
746  dnnl_OI16i16o = dnnl_AB16b16a,
747  dnnl_OI16i32o = dnnl_AB16b32a,
748  dnnl_OI16i64o = dnnl_AB16b64a,
749  dnnl_OI8i16o2i = dnnl_AB8b16a2b,
750  dnnl_OI8i32o2i = dnnl_AB8b32a2b,
751  dnnl_OI8i64o2i = dnnl_AB8b64a2b,
752  dnnl_OI4i16o4i = dnnl_AB4b16a4b,
753  dnnl_OI4i32o4i = dnnl_AB4b32a4b,
754  dnnl_OI4i64o4i = dnnl_AB4b64a4b,
755  dnnl_OI16i16o4i = dnnl_AB16b16a4b,
756  // weights, 3D
757  dnnl_IOw16o16i = dnnl_BAc16a16b,
758  dnnl_IOw16i16o = dnnl_BAc16b16a,
759  dnnl_OIw16i16o = dnnl_ABc16b16a,
760  dnnl_OIw16i32o = dnnl_ABc16b32a,
761  dnnl_OIw16i64o = dnnl_ABc16b64a,
762  dnnl_OIw16o16i = dnnl_ABc16a16b,
763  dnnl_Oiw16o = dnnl_Abc16a,
764  dnnl_OIw4i16o4i = dnnl_ABc4b16a4b,
765  dnnl_OIw4i32o4i = dnnl_ABc4b32a4b,
766  dnnl_OIw4i64o4i = dnnl_ABc4b64a4b,
767  dnnl_OIw2i8o4i = dnnl_ABc2b8a4b,
768  dnnl_OIw16i16o4i = dnnl_ABc16b16a4b,
769  dnnl_OIw16i16o2i = dnnl_ABc16b16a2b,
770  dnnl_OIw16o16i2o = dnnl_ABc16a16b2a,
771  dnnl_OIw4i4o = dnnl_ABc4b4a,
772  dnnl_OIw4o4i = dnnl_ABc4a4b,
773  dnnl_Oiw4o = dnnl_Abc4a,
774  dnnl_OIw8i16o2i = dnnl_ABc8b16a2b,
775  dnnl_OIw8i32o2i = dnnl_ABc8b32a2b,
776  dnnl_OIw8i64o2i = dnnl_ABc8b64a2b,
777  dnnl_OIw8i8o = dnnl_ABc8b8a,
778  dnnl_OIw8o16i2o = dnnl_ABc8a16b2a,
779  dnnl_IOw8o16i2o = dnnl_BAc8a16b2a,
780  dnnl_OIw8o8i = dnnl_ABc8a8b,
781  dnnl_OIw8o4i = dnnl_ABc8a4b,
782  dnnl_Owi16o = dnnl_Acb16a,
783  dnnl_OwI16o2i = dnnl_AcB16a2b,
784  dnnl_OwI16o4i = dnnl_AcB16a4b,
785  dnnl_Owi4o = dnnl_Acb4a,
786  dnnl_Owi8o = dnnl_Acb8a,
787 
788  // weights, 4D
789  dnnl_IOhw16i16o = dnnl_BAcd16b16a,
790  dnnl_IOhw16o16i = dnnl_BAcd16a16b,
791  dnnl_Ohwi16o = dnnl_Acdb16a,
792  dnnl_OhwI16o2i = dnnl_AcdB16a2b,
793  dnnl_OhwI16o4i = dnnl_AcdB16a4b,
794  dnnl_Ohwi32o = dnnl_Acdb32a,
795  dnnl_Ohwi4o = dnnl_Acdb4a,
796  dnnl_Ohwi8o = dnnl_Acdb8a,
797  dnnl_OIhw16i16o = dnnl_ABcd16b16a,
798  dnnl_OIhw16i32o = dnnl_ABcd16b32a,
799  dnnl_OIhw16i64o = dnnl_ABcd16b64a,
800  dnnl_OIhw16o16i = dnnl_ABcd16a16b,
801  dnnl_Oihw16o = dnnl_Abcd16a,
802  dnnl_OIhw4i16o4i = dnnl_ABcd4b16a4b,
803  dnnl_OIhw4i32o4i = dnnl_ABcd4b32a4b,
804  dnnl_OIhw4i64o4i = dnnl_ABcd4b64a4b,
805  dnnl_OIhw16i16o4i = dnnl_ABcd16b16a4b,
806  dnnl_OIhw16i16o2i = dnnl_ABcd16b16a2b,
807  dnnl_OIhw16o16i2o = dnnl_ABcd16a16b2a,
808  dnnl_OIhw4i4o = dnnl_ABcd4b4a,
809  dnnl_OIhw4o4i = dnnl_ABcd4a4b,
810  dnnl_Oihw4o = dnnl_Abcd4a,
811  dnnl_OIhw8i16o2i = dnnl_ABcd8b16a2b,
812  dnnl_OIhw8i32o2i = dnnl_ABcd8b32a2b,
813  dnnl_OIhw8i64o2i = dnnl_ABcd8b64a2b,
814  dnnl_OIhw8i8o = dnnl_ABcd8b8a,
815  dnnl_OIhw8o16i2o = dnnl_ABcd8a16b2a,
816  dnnl_OIhw2i8o4i = dnnl_ABcd2b8a4b,
817  dnnl_IOhw8o16i2o = dnnl_BAcd8a16b2a,
818  dnnl_OIhw8o8i = dnnl_ABcd8a8b,
819  dnnl_OIhw8o4i = dnnl_ABcd8a4b,
820  dnnl_Owhi16o = dnnl_Adcb16a,
821 
822  // weights, 5D
823  dnnl_Odhwi16o = dnnl_Acdeb16a,
824  dnnl_OdhwI16o2i = dnnl_AcdeB16a2b,
825  dnnl_OdhwI16o4i = dnnl_AcdeB16a4b,
826  dnnl_Odhwi4o = dnnl_Acdeb4a,
827  dnnl_Odhwi8o = dnnl_Acdeb8a,
828  dnnl_OIdhw16i16o = dnnl_ABcde16b16a,
829  dnnl_OIdhw16i32o = dnnl_ABcde16b32a,
830  dnnl_OIdhw16i64o = dnnl_ABcde16b64a,
831  dnnl_OIdhw16o16i = dnnl_ABcde16a16b,
832  dnnl_Oidhw16o = dnnl_Abcde16a,
833  dnnl_OIdhw4i4o = dnnl_ABcde4b4a,
834  dnnl_OIdhw4o4i = dnnl_ABcde4a4b,
835  dnnl_Oidhw4o = dnnl_Abcde4a,
836  dnnl_OIdhw8i16o2i = dnnl_ABcde8b16a2b,
837  dnnl_OIdhw8i32o2i = dnnl_ABcde8b32a2b,
838  dnnl_OIdhw8i64o2i = dnnl_ABcde8b64a2b,
839  dnnl_OIdhw8i8o = dnnl_ABcde8b8a,
840  dnnl_OIdhw8o16i2o = dnnl_ABcde8a16b2a,
841  dnnl_IOdhw8o16i2o = dnnl_BAcde8a16b2a,
842  dnnl_OIdhw4i16o4i = dnnl_ABcde4b16a4b,
843  dnnl_OIdhw4i32o4i = dnnl_ABcde4b32a4b,
844  dnnl_OIdhw4i64o4i = dnnl_ABcde4b64a4b,
845  dnnl_OIdhw16i16o4i = dnnl_ABcde16b16a4b,
846  dnnl_OIdhw16i16o2i = dnnl_ABcde16b16a2b,
847  dnnl_OIdhw2i8o4i = dnnl_ABcde2b8a4b,
848  dnnl_OIdhw8o8i = dnnl_ABcde8a8b,
849  dnnl_OIdhw8o4i = dnnl_ABcde8a4b,
850  dnnl_IOdhw16i16o = dnnl_BAcde16b16a,
851  dnnl_OIdhw4o8i8o4i = dnnl_ABcde4a8b8a4b,
852  dnnl_IOdhw16o16i = dnnl_BAcde16a16b,
853 
854  // weights w/ groups, 3D
855  dnnl_Goiw16g = dnnl_Abcd16a,
856  dnnl_Goiw8g = dnnl_Abcd8a,
857  dnnl_Goiw4g = dnnl_Abcd4a,
858  dnnl_gIOw16o16i = dnnl_aCBd16b16c,
859  dnnl_gIOw16i16o = dnnl_aCBd16c16b,
860  dnnl_gOIw16i16o = dnnl_aBCd16c16b,
861  dnnl_gOIw16o16i = dnnl_aBCd16b16c,
862  dnnl_gOiw16o = dnnl_aBcd16b,
863  dnnl_gOIw4i16o4i = dnnl_aBCd4c16b4c,
864  dnnl_gOIw2i8o4i = dnnl_aBCd2c8b4c,
865  dnnl_gOIw16i16o4i = dnnl_aBCd16c16b4c,
866  dnnl_gOIw16i16o2i = dnnl_aBCd16c16b2c,
867  dnnl_gOIw16o16i2o = dnnl_aBCd16b16c2b,
868  dnnl_gOIw4i4o = dnnl_aBCd4c4b,
869  dnnl_gOIw4o4i = dnnl_aBCd4b4c,
870  dnnl_gOiw4o = dnnl_aBcd4b,
871  dnnl_gOIw8i16o2i = dnnl_aBCd8c16b2c,
872  dnnl_gOIw8i8o = dnnl_aBCd8c8b,
873  dnnl_gOIw8o16i2o = dnnl_aBCd8b16c2b,
874  dnnl_gIOw8o16i2o = dnnl_aCBd8b16c2b,
875  dnnl_gOIw8o8i = dnnl_aBCd8b8c,
876  dnnl_gOIw8o4i = dnnl_aBCd8b4c,
877  dnnl_gOwi16o = dnnl_aBdc16b,
878  dnnl_gOwI16o2i = dnnl_aBdC16b2c,
879  dnnl_gOwI16o4i = dnnl_aBdC16b4c,
880  dnnl_gOwi4o = dnnl_aBdc4b,
881  dnnl_gOwi8o = dnnl_aBdc8b,
882  dnnl_Goiw32g = dnnl_Abcd32a,
883  dnnl_gOIw2i4o2i = dnnl_aBCd2c4b2c,
884  dnnl_gOIw2o4i2o = dnnl_aBCd2b4c2b,
885  dnnl_gOIw4i8o2i = dnnl_aBCd4c8b2c,
886  dnnl_gOIw4o8i2o = dnnl_aBCd4b8c2b,
887 
888  // weights w/ groups, 4D
889  dnnl_gIOhw16i16o = dnnl_aCBde16c16b,
890  dnnl_gIOhw16o16i = dnnl_aCBde16b16c,
891  dnnl_gOhwi16o = dnnl_aBdec16b,
892  dnnl_gOhwI16o2i = dnnl_aBdeC16b2c,
893  dnnl_gOhwI16o4i = dnnl_aBdeC16b4c,
894  dnnl_gOhwi32o = dnnl_aBdec32b,
895  dnnl_gOhwi4o = dnnl_aBdec4b,
896  dnnl_gOhwi8o = dnnl_aBdec8b,
897  dnnl_Goihw16g = dnnl_Abcde16a,
898  dnnl_gOIhw16i16o = dnnl_aBCde16c16b,
899  dnnl_gOIhw16o16i = dnnl_aBCde16b16c,
900  dnnl_gOihw16o = dnnl_aBcde16b,
901  dnnl_gOIhw2i8o4i = dnnl_aBCde2c8b4c,
902  dnnl_gOIhw4i16o4i = dnnl_aBCde4c16b4c,
903  dnnl_gOIhw16i16o4i = dnnl_aBCde16c16b4c,
904  dnnl_gOIhw16i16o2i = dnnl_aBCde16c16b2c,
905  dnnl_gOIhw16o16i2o = dnnl_aBCde16b16c2b,
906  dnnl_gOIhw4i4o = dnnl_aBCde4c4b,
907  dnnl_gOIhw4o4i = dnnl_aBCde4b4c,
908  dnnl_gOihw4o = dnnl_aBcde4b,
909  dnnl_Goihw8g = dnnl_Abcde8a,
910  dnnl_Goihw4g = dnnl_Abcde4a,
911  dnnl_gOIhw8i16o2i = dnnl_aBCde8c16b2c,
912  dnnl_gOIhw8i8o = dnnl_aBCde8c8b,
913  dnnl_gOIhw8o16i2o = dnnl_aBCde8b16c2b,
914  dnnl_gIOhw8o16i2o = dnnl_aCBde8b16c2b,
915  dnnl_gOIhw8o8i = dnnl_aBCde8b8c,
916  dnnl_gOIhw8o4i = dnnl_aBCde8b4c,
917  dnnl_Goihw32g = dnnl_Abcde32a,
918  dnnl_gOwhi16o = dnnl_aBedc16b,
919 
920  dnnl_OIw4o8i8o4i = dnnl_ABc4a8b8a4b,
921  dnnl_OIhw4o8i8o4i = dnnl_ABcd4a8b8a4b,
922  dnnl_IOw4i8o8i4o = dnnl_BAc4b8a8b4a,
923  dnnl_IOhw4i8o8i4o = dnnl_BAcd4b8a8b4a,
924  dnnl_IOdhw4i8o8i4o = dnnl_BAcde4b8a8b4a,
925 
926  dnnl_OIhw2o8i8o2i = dnnl_ABcd2a8b8a2b,
927  dnnl_gOIw4o8i8o4i = dnnl_aBCd4b8c8b4c,
928  dnnl_gOIhw4o8i8o4i = dnnl_aBCde4b8c8b4c,
929  dnnl_gOIdhw4o8i8o4i = dnnl_aBCdef4b8c8b4c,
930  dnnl_gIOw4i8o8i4o = dnnl_aCBd4c8b8c4b,
931  dnnl_gIOhw4i8o8i4o = dnnl_aCBde4c8b8c4b,
932  dnnl_gIOdhw4i8o8i4o = dnnl_aCBdef4c8b8c4b,
933  dnnl_gOIhw2o8i8o2i = dnnl_aBCde2b8c8b2c,
934  dnnl_gOIhw2i4o2i = dnnl_aBCde2c4b2c,
935  dnnl_gOIhw2o4i2o = dnnl_aBCde2b4c2b,
936  dnnl_gOIhw4i8o2i = dnnl_aBCde4c8b2c,
937  dnnl_gOIhw4o8i2o = dnnl_aBCde4b8c2b,
938 
939  // weights w/ groups, 6D
940  dnnl_gIOdhw16i16o = dnnl_aCBdef16c16b,
941  dnnl_gIOdhw16o16i = dnnl_aCBdef16b16c,
942  dnnl_gOdhwi16o = dnnl_aBdefc16b,
943  dnnl_gOdhwI16o2i = dnnl_aBdefC16b2c,
944  dnnl_gOdhwI16o4i = dnnl_aBdefC16b4c,
945  dnnl_gOdhwi4o = dnnl_aBdefc4b,
946  dnnl_gOdhwi8o = dnnl_aBdefc8b,
947  dnnl_gOIdhw16i16o = dnnl_aBCdef16c16b,
948  dnnl_gOIdhw4i16o4i = dnnl_aBCdef4c16b4c,
949  dnnl_gOIdhw16i16o4i = dnnl_aBCdef16c16b4c,
950  dnnl_gOIdhw2i8o4i = dnnl_aBCdef2c8b4c,
951  dnnl_gOIdhw16i16o2i = dnnl_aBCdef16c16b2c,
952  dnnl_gOIdhw16o16i = dnnl_aBCdef16b16c,
953  dnnl_gOidhw16o = dnnl_aBcdef16b,
954  dnnl_gOIdhw4i4o = dnnl_aBCdef4c4b,
955  dnnl_gOIdhw4o4i = dnnl_aBCdef4b4c,
956  dnnl_gOidhw4o = dnnl_aBcdef4b,
957  dnnl_gOIdhw8i16o2i = dnnl_aBCdef8c16b2c,
958  dnnl_gOIdhw8i8o = dnnl_aBCdef8c8b,
959  dnnl_gOIdhw8o16i2o = dnnl_aBCdef8b16c2b,
960  dnnl_gIOdhw8o16i2o = dnnl_aCBdef8b16c2b,
961  dnnl_gOIdhw8o8i = dnnl_aBCdef8b8c,
962  dnnl_gOIdhw8o4i = dnnl_aBCdef8b4c,
963  dnnl_Goidhw16g = dnnl_Abcdef16a,
964  dnnl_Goidhw32g = dnnl_Abcdef32a,
965  dnnl_gOIdhw2i4o2i = dnnl_aBCdef2c4b2c,
966  dnnl_gOIdhw4i8o2i = dnnl_aBCdef4c8b2c,
967  dnnl_gOIdhw2o4i2o = dnnl_aBCdef2b4c2b,
968  dnnl_gOIdhw4o8i2o = dnnl_aBCdef4b8c2b,
969  // weights, 3D
970  dnnl_Owi32o = dnnl_Acb32a,
971  dnnl_OwI32o2i = dnnl_AcB32a2b,
972  dnnl_OwI32o4i = dnnl_AcB32a4b,
973  dnnl_Owi48o = dnnl_Acb48a,
974  dnnl_OwI48o2i = dnnl_AcB48a2b,
975  dnnl_OwI48o4i = dnnl_AcB48a4b,
976  dnnl_Owi64o = dnnl_Acb64a,
977  dnnl_OwI64o2i = dnnl_AcB64a2b,
978  dnnl_OwI64o4i = dnnl_AcB64a4b,
979  dnnl_wIo2i = dnnl_cBa2b,
980  dnnl_wIo4i = dnnl_cBa4b,
981  dnnl_gOwi32o = dnnl_aBdc32b,
982  dnnl_gOwI32o2i = dnnl_aBdC32b2c,
983  dnnl_gOwI32o4i = dnnl_aBdC32b4c,
984  dnnl_gOwi48o = dnnl_aBdc48b,
985  dnnl_gOwI48o2i = dnnl_aBdC48b2c,
986  dnnl_gOwI48o4i = dnnl_aBdC48b4c,
987  dnnl_gOwi64o = dnnl_aBdc64b,
988  dnnl_gOwI64o2i = dnnl_aBdC64b2c,
989  dnnl_gOwI64o4i = dnnl_aBdC64b4c,
990  dnnl_gwio = dnnl_adcb,
991  dnnl_gwIo2i = dnnl_adCb2c,
992  dnnl_gwIo4i = dnnl_adCb4c,
993  // weights, 4D
994  dnnl_OhwI32o = dnnl_Acdb32a,
995  dnnl_OhwI32o2i = dnnl_AcdB32a2b,
996  dnnl_OhwI32o4i = dnnl_AcdB32a4b,
997  dnnl_Ohwi48o = dnnl_Acdb48a,
998  dnnl_OhwI48o2i = dnnl_AcdB48a2b,
999  dnnl_OhwI48o4i = dnnl_AcdB48a4b,
1000  dnnl_Ohwi64o = dnnl_Acdb64a,
1001  dnnl_OhwI64o2i = dnnl_AcdB64a2b,
1002  dnnl_OhwI64o4i = dnnl_AcdB64a4b,
1003  dnnl_hwIo2i = dnnl_cdBa2b,
1004  dnnl_hwIo4i = dnnl_cdBa4b,
1005  dnnl_gOhwI32o = dnnl_aBdec32b,
1006  dnnl_gOhwI32o2i = dnnl_aBdeC32b2c,
1007  dnnl_gOhwI32o4i = dnnl_aBdeC32b4c,
1008  dnnl_gOhwi48o = dnnl_aBdec48b,
1009  dnnl_gOhwI48o2i = dnnl_aBdeC48b2c,
1010  dnnl_gOhwI48o4i = dnnl_aBdeC48b4c,
1011  dnnl_gOhwi64o = dnnl_aBdec64b,
1012  dnnl_gOhwI64o2i = dnnl_aBdeC64b2c,
1013  dnnl_gOhwI64o4i = dnnl_aBdeC64b4c,
1014  dnnl_ghwio = dnnl_adecb,
1015  dnnl_ghwIo2i = dnnl_adeCb2c,
1016  dnnl_ghwIo4i = dnnl_adeCb4c,
1017  // weights, 5D
1018  dnnl_Odhwi32o = dnnl_Acdeb32a,
1019  dnnl_OdhwI32o2i = dnnl_AcdeB32a2b,
1020  dnnl_OdhwI32o4i = dnnl_AcdeB32a4b,
1021  dnnl_Odhwi48o = dnnl_Acdeb48a,
1022  dnnl_OdhwI48o2i = dnnl_AcdeB48a2b,
1023  dnnl_OdhwI48o4i = dnnl_AcdeB48a4b,
1024  dnnl_Odhwi64o = dnnl_Acdeb64a,
1025  dnnl_OdhwI64o2i = dnnl_AcdeB64a2b,
1026  dnnl_OdhwI64o4i = dnnl_AcdeB64a4b,
1027  dnnl_dhwIo2i = dnnl_cdeBa2b,
1028  dnnl_dhwIo4i = dnnl_cdeBa4b,
1029  dnnl_gOdhwi32o = dnnl_aBdefc32b,
1030  dnnl_gOdhwI32o2i = dnnl_aBdefC32b2c,
1031  dnnl_gOdhwI32o4i = dnnl_aBdefC32b4c,
1032  dnnl_gOdhwi48o = dnnl_aBdefc48b,
1033  dnnl_gOdhwI48o2i = dnnl_aBdefC48b2c,
1034  dnnl_gOdhwI48o4i = dnnl_aBdefC48b4c,
1035  dnnl_gOdhwi64o = dnnl_aBdefc64b,
1036  dnnl_gOdhwI64o2i = dnnl_aBdefC64b2c,
1037  dnnl_gOdhwI64o4i = dnnl_aBdefC64b4c,
1038  dnnl_gdhwio = dnnl_adefcb,
1039  dnnl_gdhwIo2i = dnnl_adefCb2c,
1040  dnnl_gdhwIo4i = dnnl_adefCb4c,
1041  dnnl_OI16i32o4i = dnnl_AB16b32a4b,
1042  dnnl_OI16i48o4i = dnnl_AB16b48a4b,
1043  dnnl_OI16i64o4i = dnnl_AB16b64a4b,
1044  dnnl_OI16i16o2i = dnnl_AB16b16a2b,
1045  dnnl_OI16i32o2i = dnnl_AB16b32a2b,
1046  dnnl_OI16i48o2i = dnnl_AB16b48a2b,
1047  dnnl_OI16i64o2i = dnnl_AB16b64a2b,
1048  dnnl_OIw16i32o4i = dnnl_ABc16b32a4b,
1049  dnnl_OIw16i48o4i = dnnl_ABc16b48a4b,
1050  dnnl_OIw16i64o4i = dnnl_ABc16b64a4b,
1051  dnnl_OIw16i32o2i = dnnl_ABc16b32a2b,
1052  dnnl_OIw16i48o2i = dnnl_ABc16b48a2b,
1053  dnnl_OIw16i64o2i = dnnl_ABc16b64a2b,
1054  dnnl_OIhw16i32o4i = dnnl_ABcd16b32a4b,
1055  dnnl_OIhw16i48o4i = dnnl_ABcd16b48a4b,
1056  dnnl_OIhw16i64o4i = dnnl_ABcd16b64a4b,
1057  dnnl_OIhw16i32o2i = dnnl_ABcd16b32a2b,
1058  dnnl_OIhw16i48o2i = dnnl_ABcd16b48a2b,
1059  dnnl_OIhw16i64o2i = dnnl_ABcd16b64a2b,
1060  dnnl_OIdhw16i32o4i = dnnl_ABcde16b32a4b,
1061  dnnl_OIdhw16i48o4i = dnnl_ABcde16b48a4b,
1062  dnnl_OIdhw16i64o4i = dnnl_ABcde16b64a4b,
1063  dnnl_OIdhw16i32o2i = dnnl_ABcde16b32a2b,
1064  dnnl_OIdhw16i48o2i = dnnl_ABcde16b48a2b,
1065  dnnl_OIdhw16i64o2i = dnnl_ABcde16b64a2b,
1067 
1069 
1074 
1076 typedef enum {
1077  // TODO: suggest renames
1100 
1103 typedef enum {
1150 
1155 
1157 typedef enum {
1158  dnnl_alg_kind_undef,
1257  dnnl_lbr_gru = 0x4fff,
1259  dnnl_binary_add = 0x1fff0,
1261  dnnl_binary_mul = 0x1fff1,
1263  dnnl_binary_max = 0x1fff2,
1265  dnnl_binary_min = 0x1fff3,
1267  dnnl_binary_div = 0x1fff4,
1269  dnnl_binary_sub = 0x1fff5,
1271  dnnl_binary_ge = 0x1fff6,
1273  dnnl_binary_gt = 0x1fff7,
1275  dnnl_binary_le = 0x1fff8,
1277  dnnl_binary_lt = 0x1fff9,
1279  dnnl_binary_eq = 0x1fffa,
1281  dnnl_binary_ne = 0x1fffb,
1304 } dnnl_alg_kind_t;
1305 
1307 typedef enum {
1317 
1330 
1343 
1357 
1360 
1363 
1367 #define DNNL_MAX_NDIMS 12
1368 
1371 #define DNNL_RUNTIME_DIM_VAL INT64_MIN
1372 
1376 #define DNNL_RUNTIME_SIZE_VAL ((size_t)DNNL_RUNTIME_DIM_VAL)
1377 
1380 static const union {
1381  unsigned u;
1382  float f;
1383 } DNNL_RUNTIME_F32_VAL_REP = {0x7fc000d0};
1385 
1388 #define DNNL_RUNTIME_F32_VAL (DNNL_RUNTIME_F32_VAL_REP.f)
1389 
1391 static const int DNNL_RUNTIME_S32_VAL_REP = INT32_MIN;
1393 
1396 #define DNNL_RUNTIME_S32_VAL DNNL_RUNTIME_S32_VAL_REP
1397 
1399 typedef int64_t dnnl_dim_t;
1400 
1403 
1407 typedef struct {
1411  // Innermost section
1412  // ASSUMPTION: the innermost blocks are always dense
1421 
1423 typedef enum {
1426  // Tensors of weights for 2x3 winograd convolutions.
1430  // Tensor of weights for 4x3 convolution.
1433 
1435 typedef struct {
1436  dnnl_wino_memory_format_t wino_format;
1437  int r;
1438  int alpha;
1439  int ic;
1440  int oc;
1441  int ic_block;
1442  int oc_block;
1443  int ic2_block;
1444  int oc2_block;
1445  float adj_scale;
1446  size_t size;
1448 
1449 typedef enum {
1450  dnnl_packed_format_undef = 0,
1451  dnnl_ldigo_p,
1452  dnnl_ldgoi_p,
1453  dnnl_ldio_p
1454 } dnnl_rnn_packed_memory_format_t;
1455 
1458 #define DNNL_RNN_MAX_N_PARTS 4
1459 
1461 typedef struct {
1462  dnnl_rnn_packed_memory_format_t format;
1463  int n_parts;
1464  int n;
1465  int ldb;
1466  int parts[DNNL_RNN_MAX_N_PARTS];
1467  size_t part_pack_size[DNNL_RNN_MAX_N_PARTS];
1468  unsigned pack_part[DNNL_RNN_MAX_N_PARTS];
1469  size_t offset_compensation;
1470  size_t size;
1471  char reserved[200];
1473 
1475 typedef enum {
1476  dnnl_memory_extra_flag_none = 0x0U,
1485  dnnl_memory_extra_flag_scale_adjust = 0x2U,
1486  dnnl_memory_extra_flag_rnn_u8s8_compensation = 0x4U,
1487  dnnl_memory_extra_flag_gpu_rnn_u8s8_compensation
1488  = dnnl_memory_extra_flag_rnn_u8s8_compensation,
1489  dnnl_memory_extra_flag_compensation_conv_asymmetric_src = 0x8U,
1491 
1493 typedef struct {
1496  uint64_t flags;
1504  char reserved[60];
1506 
1511 typedef struct {
1513  int ndims;
1529 
1532 
1535 
1539 
1543 
1546  union {
1554  // ... other descriptions possible
1555  } format_desc;
1556 
1559 
1562 struct dnnl_memory;
1563 
1565 typedef struct dnnl_memory *dnnl_memory_t;
1566 
1568 typedef const struct dnnl_memory *const_dnnl_memory_t;
1569 
1572 #define DNNL_MEMORY_NONE (NULL)
1573 
1576 #define DNNL_MEMORY_ALLOCATE ((void *)(size_t)-1)
1577 
1579 
1584 
1586 typedef void *dnnl_op_desc_t;
1588 typedef const void *const_dnnl_op_desc_t;
1589 
1592 
1595 
1598 
1600 typedef struct {
1634  dnnl_dims_t padding[2];
1638 
1640 
1643 
1646 
1648 
1651 
1653 typedef struct {
1664  int axis;
1668 
1670 
1673 
1675 typedef struct {
1726  float alpha, beta;
1728 
1730 
1733 
1735 typedef struct {
1749 
1751 
1754 
1758 
1760 
1763 
1765 typedef struct {
1792  dnnl_dims_t padding[2];
1796 
1798 
1801 
1803 typedef struct {
1830  dnnl_dims_t padding[2];
1836 
1838 
1841 typedef struct {
1844  dnnl_primitive_kind_t primitive_kind;
1849  dnnl_memory_desc_t data_desc;
1852  dnnl_memory_desc_t weights_desc;
1854  dnnl_memory_desc_t diff_data_desc;
1856  dnnl_memory_desc_t diff_weights_desc;
1857 } dnnl_prelu_desc_t;
1858 
1860 
1863 
1865 typedef struct {
1883  float lrn_alpha;
1885  float lrn_beta;
1887  float lrn_k;
1888 } dnnl_lrn_desc_t;
1889 
1891 
1894 
1896 typedef struct {
1913  dnnl_memory_desc_t diff_data_scaleshift_desc;
1920  unsigned flags;
1922 
1924 
1927 
1929 typedef struct {
1948  dnnl_memory_desc_t diff_data_scaleshift_desc;
1957  unsigned flags;
1959 
1961 
1964 
1966 typedef struct {
1993 
1995 
1998 
2000 typedef enum {
2004 
2006 typedef enum {
2020 
2022 typedef struct {
2060 
2087 
2089  unsigned int flags;
2093  float alpha;
2094  float beta;
2095 
2096 } dnnl_rnn_desc_t;
2097 
2099 
2102 
2104 typedef struct {
2113  dnnl_memory_desc_t src_desc[2];
2117 
2119 
2122 
2130 typedef struct {
2145 
2147 
2150 
2152 typedef struct {
2171  float factors[DNNL_MAX_NDIMS];
2173 
2175 
2178 
2180 typedef struct {
2205  float p, eps;
2207 
2209 
2211 
2214 
2216 typedef enum {
2224 
2227 struct dnnl_engine;
2229 typedef struct dnnl_engine *dnnl_engine_t;
2230 #if 0
2231 // FIXME: looks like this never happens
2233 typedef const struct dnnl_engine *const_dnnl_engine_t;
2234 #endif
2235 
2237 
2242 
2246 
2249 
2251 typedef const struct dnnl_primitive_desc_iterator
2253 
2256 struct dnnl_primitive_desc;
2257 
2260 
2263 
2265 
2268 
2270 typedef enum {
2294 
2300 struct dnnl_primitive_attr;
2301 
2305 
2308 
2327 struct dnnl_post_ops;
2328 
2331 
2333 typedef const struct dnnl_post_ops *const_dnnl_post_ops_t;
2334 
2336 
2339 
2342 struct dnnl_primitive;
2347 
2349 #define DNNL_ARG_SRC_0 1
2350 #define DNNL_ARG_SRC DNNL_ARG_SRC_0
2353 #define DNNL_ARG_SRC_LAYER DNNL_ARG_SRC_0
2356 #define DNNL_ARG_FROM DNNL_ARG_SRC_0
2359 
2361 #define DNNL_ARG_SRC_1 2
2362 #define DNNL_ARG_SRC_ITER DNNL_ARG_SRC_1
2365 
2367 #define DNNL_ARG_SRC_2 3
2368 #define DNNL_ARG_SRC_ITER_C DNNL_ARG_SRC_2
2371 
2373 #define DNNL_ARG_DST_0 17
2374 #define DNNL_ARG_DST DNNL_ARG_DST_0
2377 #define DNNL_ARG_TO DNNL_ARG_DST_0
2380 #define DNNL_ARG_DST_LAYER DNNL_ARG_DST_0
2382 
2384 #define DNNL_ARG_DST_1 18
2385 #define DNNL_ARG_DST_ITER DNNL_ARG_DST_1
2388 
2390 #define DNNL_ARG_DST_2 19
2391 #define DNNL_ARG_DST_ITER_C DNNL_ARG_DST_2
2394 
2396 #define DNNL_ARG_WEIGHTS_0 33
2397 #define DNNL_ARG_WEIGHTS DNNL_ARG_WEIGHTS_0
2400 #define DNNL_ARG_SCALE_SHIFT DNNL_ARG_WEIGHTS_0
2403 #define DNNL_ARG_WEIGHTS_LAYER DNNL_ARG_WEIGHTS_0
2406 
2408 #define DNNL_ARG_WEIGHTS_1 34
2409 #define DNNL_ARG_WEIGHTS_ITER DNNL_ARG_WEIGHTS_1
2412 
2414 #define DNNL_ARG_WEIGHTS_2 35
2415 #define DNNL_ARG_WEIGHTS_PEEPHOLE DNNL_ARG_WEIGHTS_2
2418 
2420 #define DNNL_ARG_WEIGHTS_3 36
2421 #define DNNL_ARG_WEIGHTS_PROJECTION DNNL_ARG_WEIGHTS_3
2424 
2426 #define DNNL_ARG_BIAS 41
2427 
2429 #define DNNL_ARG_MEAN 49
2430 #define DNNL_ARG_VARIANCE 50
2432 
2435 #define DNNL_ARG_WORKSPACE 64
2436 #define DNNL_ARG_SCRATCHPAD 80
2438 
2440 #define DNNL_ARG_DIFF_SRC_0 129
2441 #define DNNL_ARG_DIFF_SRC DNNL_ARG_DIFF_SRC_0
2444 #define DNNL_ARG_DIFF_SRC_LAYER DNNL_ARG_DIFF_SRC_0
2447 
2449 #define DNNL_ARG_DIFF_SRC_1 130
2450 #define DNNL_ARG_DIFF_SRC_ITER DNNL_ARG_DIFF_SRC_1
2453 
2455 #define DNNL_ARG_DIFF_SRC_2 131
2456 #define DNNL_ARG_DIFF_SRC_ITER_C DNNL_ARG_DIFF_SRC_2
2459 
2461 #define DNNL_ARG_DIFF_DST_0 145
2462 #define DNNL_ARG_DIFF_DST DNNL_ARG_DIFF_DST_0
2465 #define DNNL_ARG_DIFF_DST_LAYER DNNL_ARG_DIFF_DST_0
2468 
2470 #define DNNL_ARG_DIFF_DST_1 146
2471 #define DNNL_ARG_DIFF_DST_ITER DNNL_ARG_DIFF_DST_1
2474 
2476 #define DNNL_ARG_DIFF_DST_2 147
2477 #define DNNL_ARG_DIFF_DST_ITER_C DNNL_ARG_DIFF_DST_2
2480 
2482 #define DNNL_ARG_DIFF_WEIGHTS_0 161
2483 #define DNNL_ARG_DIFF_WEIGHTS DNNL_ARG_DIFF_WEIGHTS_0
2486 #define DNNL_ARG_DIFF_SCALE_SHIFT DNNL_ARG_DIFF_WEIGHTS_0
2489 #define DNNL_ARG_DIFF_WEIGHTS_LAYER DNNL_ARG_DIFF_WEIGHTS_0
2492 
2494 #define DNNL_ARG_DIFF_WEIGHTS_1 162
2495 #define DNNL_ARG_DIFF_WEIGHTS_ITER DNNL_ARG_DIFF_WEIGHTS_1
2498 
2500 #define DNNL_ARG_DIFF_WEIGHTS_2 163
2501 #define DNNL_ARG_DIFF_WEIGHTS_PEEPHOLE DNNL_ARG_DIFF_WEIGHTS_2
2504 
2506 #define DNNL_ARG_DIFF_WEIGHTS_3 164
2507 #define DNNL_ARG_DIFF_WEIGHTS_PROJECTION DNNL_ARG_DIFF_WEIGHTS_3
2510 
2512 #define DNNL_ARG_DIFF_BIAS 169
2513 
2515 #define DNNL_ARG_ATTR_OUTPUT_SCALES 513
2516 
2519 #define DNNL_ARG_MULTIPLE_SRC 1024
2520 #define DNNL_ARG_MULTIPLE_DST 2048
2523 
2525 #define DNNL_ARG_ATTR_ZERO_POINTS 4096
2526 
2529 #define DNNL_ARG_ATTR_POST_OP_DW 8192
2530 
2532 #define DNNL_ARG_ATTR_MULTIPLE_POST_OP_BASE 16384
2533 
2536 #define DNNL_ARG_ATTR_MULTIPLE_POST_OP(idx) \
2537  (DNNL_ARG_ATTR_MULTIPLE_POST_OP_BASE * ((idx) + 1))
2538 
2539 // XXX: next define should have a (1 << 20) = 1048576 value to preserve 5 bits
2540 // for DNNL_ARG_ATTR_MULTIPLE_POST_OP argument.
2541 
2544 typedef struct {
2545  int arg;
2547 } dnnl_exec_arg_t;
2548 
2550 
2553 
2583 typedef enum {
2585 
2588 
2591 
2594 
2599 
2602 
2605 
2607 
2608  // memory and op descriptor section
2630 
2631  // memory descriptor section
2642 
2643  // Max value to prevent UB for internal use only dnnl_query_t
2644  dnnl_query_max = 0x7fff,
2645 } dnnl_query_t;
2646 
2648 
2650 
2653 
2655 typedef enum {
2656  // In-order execution.
2657  dnnl_stream_in_order = 0x1U,
2661  dnnl_stream_default_flags = dnnl_stream_in_order,
2663 
2666 struct dnnl_stream;
2668 typedef struct dnnl_stream *dnnl_stream_t;
2670 typedef const struct dnnl_stream *const_dnnl_stream_t;
2671 
2673 
2676 
2678 #define DNNL_RUNTIME_NONE 0u
2679 
2681 #define DNNL_RUNTIME_SEQ 1u
2682 
2684 #define DNNL_RUNTIME_OMP 2u
2685 
2687 #define DNNL_RUNTIME_TBB 4u
2688 
2690 #define DNNL_RUNTIME_THREADPOOL 8u
2691 
2693 #define DNNL_RUNTIME_OCL 256u
2694 
2696 #define DNNL_RUNTIME_SYCL 512u
2697 
2699 #define DNNL_RUNTIME_DPCPP DNNL_RUNTIME_SYCL
2700 
2703 typedef struct {
2704  int major;
2705  int minor;
2706  int patch;
2707  const char *hash;
2708  unsigned cpu_runtime;
2709  unsigned gpu_runtime;
2710 } dnnl_version_t;
2711 
2713 #define DNNL_JIT_PROFILE_NONE 0u
2714 
2716 #define DNNL_JIT_PROFILE_VTUNE 1u
2717 
2719 #define DNNL_JIT_PROFILE_LINUX_PERFMAP 2u
2720 
2722 #define DNNL_JIT_PROFILE_LINUX_JITDUMP 4u
2723 
2726 #define DNNL_JIT_PROFILE_LINUX_JITDUMP_USE_TSC 8u
2727 
2729 #define DNNL_JIT_PROFILE_LINUX_PERF \
2730  (DNNL_JIT_PROFILE_LINUX_JITDUMP | DNNL_JIT_PROFILE_LINUX_PERFMAP)
2731 
2733 typedef enum {
2736 
2739 
2742 
2745 
2749 
2753 
2757 
2762 
2767 
2772 
2775 
2776 } dnnl_cpu_isa_t;
2777 
2779 typedef enum {
2782 
2786 
2788 
2790 
2791 #ifdef __cplusplus
2792 }
2793 #endif
2794 
2795 #endif /* ONEAPI_DNNL_TYPES_H */
Reduction using sum.
Definition: dnnl_types.h:1291
dnnl_memory_desc_t diff_dst_layer_desc
Destination gradient layer memory descriptor.
Definition: dnnl_types.h:2074
dnnl_dims_t dilation
Pooling dilations for spatial dimensions.
Definition: dnnl_types.h:1834
A layer normalization primitive.
Definition: dnnl_types.h:1129
plain 7D tensor
Definition: dnnl_types.h:184
destination grad. memory desc
Definition: dnnl_types.h:2638
An element-wise primitive.
Definition: dnnl_types.h:1119
dnnl_alg_kind_t activation_kind
Activation function used for vanilla_rnn cell kind.
Definition: dnnl_types.h:2092
Reduction using lp norm without final pth-root.
Definition: dnnl_types.h:1301
Eltwise: hardswish.
Definition: dnnl_types.h:1217
dnnl_memory_desc_t weights_layer_desc
Weights layer memory descriptor.
Definition: dnnl_types.h:2041
prop_kind
Propagation kind.
Definition: dnnl.hpp:435
dnnl_alg_kind_t alg_kind
The kind of pooling algorithm.
Definition: dnnl_types.h:1776
6D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:362
execution engine
Definition: dnnl_types.h:2586
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition: dnnl_types.h:1979
permuted 6D tensor
Definition: dnnl_types.h:424
dnnl_memory_desc_t diff_dst_iter_c_desc
Destination gradient iteration memory descriptor for cell state.
Definition: dnnl_types.h:2078
A batch normalization primitive.
Definition: dnnl_types.h:1127
Eltwise: bounded_relu.
Definition: dnnl_types.h:1184
Binary greater than.
Definition: dnnl_types.h:1273
Undefined memory format tag.
Definition: dnnl_types.h:169
3D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:229
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), an alias to dnnl_abcd.
Definition: dnnl_types.h:679
CPU engine.
Definition: dnnl_types.h:2220
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1899
Eltwise: ReLU (dst for backward)
Definition: dnnl_types.h:1219
destination memory desc
Definition: dnnl_types.h:2637
Direct deconvolution.
Definition: dnnl_types.h:1166
struct dnnl_memory * dnnl_memory_t
A memory handle.
Definition: dnnl_types.h:1565
A descriptor for an RNN operation.
Definition: dnnl_types.h:2022
The user manages the scratchpad allocation by querying and providing the scratchpad memory to primiti...
Definition: dnnl_types.h:2292
layer normalization descriptor
Definition: dnnl_types.h:2619
memory consumption – extra
Definition: dnnl_types.h:2593
dnnl_primitive_kind_t
Kinds of primitives.
Definition: dnnl_types.h:1103
permuted 3D tensor
Definition: dnnl_types.h:201
Eltwise: linear.
Definition: dnnl_types.h:1182
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:1983
A PReLU primitive.
Definition: dnnl_types.h:1149
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:1881
Internal weights format for 2x3 Winograd.
Definition: dnnl_types.h:1428
dnnl_memory_desc_t data_scaleshift_desc
Scale and shift data and gradient memory descriptors.
Definition: dnnl_types.h:1947
permuted 6D tensor
Definition: dnnl_types.h:425
permuted 12D tensor
Definition: dnnl_types.h:220
void * dnnl_op_desc_t
A pointer to any of the operation descriptors.
Definition: dnnl_types.h:1586
dnnl_alg_kind_t alg_kind
LRN algorithm.
Definition: dnnl_types.h:1874
A resampling primitive.
Definition: dnnl_types.h:1143
dnnl_format_kind_t format_kind
Memory format kind.
Definition: dnnl_types.h:1545
An opaque structure to describe a primitive.
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1902
GRU cell with linear before reset.
Definition: dnnl_types.h:1257
Any ISA (excepting those listed as initial support)
Definition: dnnl_types.h:2735
dnnl_dims_t strides
Pooling kernel strides for spatial dimensions.
Definition: dnnl_types.h:1786
4D CNN weights tensor, an alias to dnnl_acdb
Definition: dnnl_types.h:614
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:2141
dnnl_dim_t group_size
Number of groups.
Definition: dnnl_types.h:1666
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:1620
5D CNN weights tensor, an alias to dnnl_acdeb
Definition: dnnl_types.h:626
float scale_adjust
Scale applied to the data.
Definition: dnnl_types.h:1500
5D LSTM projection tensor
Definition: dnnl_types.h:692
dnnl_convolution_desc_t dnnl_deconvolution_desc_t
A descriptor of a deconvolution operation.
Definition: dnnl_types.h:1645
4D CNN weights tensor (incl. groups), an alias to dnnl_abcd
Definition: dnnl_types.h:631
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1738
dnnl_alg_kind_t alg_kind
The kind of the convolution algorithm.
Definition: dnnl_types.h:1610
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1820
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1636
4D CNN weights tensor (incl. groups), an alias to dnnl_abdc
Definition: dnnl_types.h:633
Use no normalization flags.
Definition: dnnl_types.h:1316
scratchpad memory desc
Definition: dnnl_types.h:2640
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:2163
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1771
dnnl_memory_t memory
Input/output memory.
Definition: dnnl_types.h:2546
const void * const_dnnl_op_desc_t
A pointer to any of the operation descriptors (constant variant).
Definition: dnnl_types.h:1588
Intel Streaming SIMD Extensions 4.1 (Intel SSE4.1)
Definition: dnnl_types.h:2738
Eltwise: clip.
Definition: dnnl_types.h:1203
Intel AVX-512, Intel DL Boost and bfloat16 support and Intel AMX with 8-bit integer and bfloat16 supp...
Definition: dnnl_types.h:2771
prelu descriptor
Definition: dnnl_types.h:2629
An opaque structure for primitive descriptor attributes.
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1624
logsoftmax descriptor
Definition: dnnl_types.h:2624
permuted 4D tensor
Definition: dnnl_types.h:198
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1778
float lrn_alpha
LRN alpha parameter.
Definition: dnnl_types.h:1883
dnnl_memory_desc_t diff_weights_desc
Weights gradient memory descriptor.
Definition: dnnl_types.h:1981
dnnl_memory_desc_t dst_iter_c_desc
Destination iter memory descriptor for cell state.
Definition: dnnl_types.h:2051
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:2705
2D CNN weights tensor, an alias to dnnl_ab
Definition: dnnl_types.h:598
An opaque structure to describe a memory.
dnnl_memory_desc_t dst_layer_desc
Destination layer memory descriptor.
Definition: dnnl_types.h:2047
plain 11D tensor
Definition: dnnl_types.h:188
permuted 5D tensor
Definition: dnnl_types.h:199
dnnl_engine_kind_t
Kinds of engines.
Definition: dnnl_types.h:2216
struct dnnl_primitive_desc * dnnl_primitive_desc_t
A primitive descriptor handle.
Definition: dnnl_types.h:2259
Eltwise: square root (dst for backward)
Definition: dnnl_types.h:1225
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:1153
Undefined primitive.
Definition: dnnl_types.h:1105
dnnl_dims_t strides
Convolution strides in each spatial dimension.
Definition: dnnl_types.h:1628
int softmax_axis
The axis along which to perform the softmax.
Definition: dnnl_types.h:1747
Unidirectional execution of RNN primitive from left to right.
Definition: dnnl_types.h:2008
The library manages the scratchpad allocation according to the policy specified by the DNNL_ENABLE_CO...
Definition: dnnl_types.h:2287
5D CNN weights tensor (incl. groups), an alias to dnnl_acbde
Definition: dnnl_types.h:643
3D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:235
Eltwise: clip version 2.
Definition: dnnl_types.h:1205
3D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBc8b ...
Definition: dnnl_types.h:737
Intel AVX2 and Intel Deep Learning Boost (Intel DL Boost) support.
Definition: dnnl_types.h:2774
dnnl_dims_t dims
Dimensions in the following order:
Definition: dnnl_types.h:1528
const struct dnnl_memory * const_dnnl_memory_t
A constant memory handle.
Definition: dnnl_types.h:1568
4D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcd16b ...
Definition: dnnl_types.h:719
binary descriptor
Definition: dnnl_types.h:2623
dnnl_alg_kind_t alg_kind
The kind of pooling algorithm.
Definition: dnnl_types.h:1814
dnnl_memory_desc_t diff_weights_iter_desc
Weights gradient iter memory descriptor.
Definition: dnnl_types.h:2070
permuted 4D tensor
Definition: dnnl_types.h:193
Description of tensor of packed weights for rnn.
Definition: dnnl_types.h:1461
A descriptor of a pooling operation.
Definition: dnnl_types.h:1765
2D CNN activations tensor, an alias to dnnl_ab
Definition: dnnl_types.h:575
plain 2D tensor
Definition: dnnl_types.h:178
4D CNN activations tensor, an alias to dnnl_bcda
Definition: dnnl_types.h:591
4D RNN bias tensor in the format (num_layers, num_directions, num_gates, output_channels), an alias to dnnl_abcd.
Definition: dnnl_types.h:690
permuted 5D tensor
Definition: dnnl_types.h:206
pooling version 2 descriptor
Definition: dnnl_types.h:2627
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:2139
Reduction using lp norm without final pth-root.
Definition: dnnl_types.h:1303
Bidirectional execution of RNN primitive with summation of the results.
Definition: dnnl_types.h:2016
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:2066
int inner_nblks
The number of innermost blocks, e.g. 3 in case of OIhw_4i16o4i_
Definition: dnnl_types.h:1414
Direct convolution.
Definition: dnnl_types.h:1160
int major
Major version.
Definition: dnnl_types.h:2704
Just a sentinel, not real memory format tag.
Definition: dnnl_types.h:568
5D tensor blocked by 1st dimension with block size 8
Definition: dnnl_types.h:304
An opaque structure to describe a primitive descriptor iterator.
pooling descriptor
Definition: dnnl_types.h:2616
Convolution algorithm(either direct or Winograd) is chosen just in time.
Definition: dnnl_types.h:1164
Reduction using mean.
Definition: dnnl_types.h:1295
float lrn_beta
LRN beta parameter.
Definition: dnnl_types.h:1885
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1975
Unidirectional execution of RNN primitive from right to left.
Definition: dnnl_types.h:2010
A deconvolution primitive.
Definition: dnnl_types.h:1117
dnnl_memory_desc_t src_iter_desc
Source iteration memory descriptor for hidden state.
Definition: dnnl_types.h:2037
5D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:330
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:2111
A descriptor of a matrix multiplication operation.
Definition: dnnl_types.h:2130
permuted 6D tensor
Definition: dnnl_types.h:212
3D RNN data tensor in the format (batch, seq_length, input channels), an alias to dnnl_bac...
Definition: dnnl_types.h:658
dnnl_alg_kind_t cell_kind
RNN cell kind.
Definition: dnnl_types.h:2031
const char * hash
Git hash of the sources (may be absent)
Definition: dnnl_types.h:2707
5D CNN weights tensor, an alias to dnnl_cdeba
Definition: dnnl_types.h:624
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1806
4D CNN activations tensor, an alias to dnnl_acdb
Definition: dnnl_types.h:589
dnnl_query_t
Primitive descriptor query specification.
Definition: dnnl_types.h:2583
Intel Advanced Vector Extensions (Intel AVX)
Definition: dnnl_types.h:2741
Intel AVX-512 subset for Intel Xeon Phi processors 7235, 7285, 7295 Series.
Definition: dnnl_types.h:2752
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition: dnnl_types.h:2137
Backward data propagation.
Definition: dnnl_types.h:1094
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:2191
dnnl_memory_desc_t stat_desc
Statistics memory descriptor.
Definition: dnnl_types.h:1917
A descriptor of a binary operation.
Definition: dnnl_types.h:2104
source gradient memory desc
Definition: dnnl_types.h:2634
plain 10D tensor
Definition: dnnl_types.h:187
A binary primitive.
Definition: dnnl_types.h:1137
Structure containing version information as per Semantic Versioning
Definition: dnnl_types.h:2703
reduction descriptor
Definition: dnnl_types.h:2628
4D tensor blocked by 2nd dimension with block size 32
Definition: dnnl_types.h:261
int arg
An argument index, e.g. DNNL_ARG_SRC.
Definition: dnnl_types.h:2545
5D CNN weights tensor (incl. groups), an alias to dnnl_abdec
Definition: dnnl_types.h:639
permuted 11D tensor
Definition: dnnl_types.h:219
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: dnnl_types.h:1985
LSTM cell.
Definition: dnnl_types.h:1247
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:1809
4D CNN weights tensor, an alias to dnnl_bcda
Definition: dnnl_types.h:616
4D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:255
permuted 7D tensor
Definition: dnnl_types.h:215
A reorder primitive.
Definition: dnnl_types.h:1107
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition: dnnl_types.h:1616
A descriptor of a convolution operation.
Definition: dnnl_types.h:1600
2D CNN activations tensor, an alias to dnnl_ba
Definition: dnnl_types.h:577
Binary greater or equal.
Definition: dnnl_types.h:1271
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1991
softmax descriptor
Definition: dnnl_types.h:2615
permuted 5D tensor
Definition: dnnl_types.h:213
dnnl_dims_t kernel
Pooling kernel spatial dimensions.
Definition: dnnl_types.h:1826
Intel AVX-512 subset for Intel Xeon Scalable processor family and Intel Core processor family...
Definition: dnnl_types.h:2756
Eltwise: logsigmoid.
Definition: dnnl_types.h:1213
no query
Definition: dnnl_types.h:2584
dnnl_scratchpad_mode_t
Scratchpad mode.
Definition: dnnl_types.h:2270
Fuse with ReLU.
Definition: dnnl_types.h:1355
batch normalization descriptor
Definition: dnnl_types.h:2618
int asymm_compensation_mask
Compensation mask for asymmetric quantization.
Definition: dnnl_types.h:1502
dnnl_dims_t padded_dims
Size of the data including padding in each dimension.
Definition: dnnl_types.h:1534
A reduction primitive.
Definition: dnnl_types.h:1147
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:1542
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:2155
5D CNN weights tensor, an alias to dnnl_abcde
Definition: dnnl_types.h:620
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:1538
Undefined memory format, used for empty memory descriptors.
Definition: dnnl_types.h:1425
runtime estimation (seconds)
Definition: dnnl_types.h:2592
Backward propagation (with respect to all parameters).
Definition: dnnl_types.h:1092
An unspecified engine.
Definition: dnnl_types.h:2218
5D tensor blocked by 1st dimension with block size 16
Definition: dnnl_types.h:302
Eltwise: ReLU.
Definition: dnnl_types.h:1170
GPU engine.
Definition: dnnl_types.h:2222
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:2115
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:2107
4D RNN states tensor in the format (num_layers, num_directions, batch, state channels), an alias to dnnl_abcd.
Definition: dnnl_types.h:661
5D RNN weights tensor in the format (num_layers, num_directions, input_channels, num_gates, output_channels), an alias to dnnl_abcde.
Definition: dnnl_types.h:668
6D CNN weights tensor (incl. groups), an alias to dnnl_acbdef
Definition: dnnl_types.h:649
3D tensor blocked by 2nd dimension with block size 32
Definition: dnnl_types.h:233
(scratch) memory, additional to all inputs and outputs memory (bytes)
Definition: dnnl_types.h:2598
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:2028
Eltwise: pow.
Definition: dnnl_types.h:1207
5D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:315
dnnl_memory_extra_flags_t
Flags for memory special features.
Definition: dnnl_types.h:1475
5D RNN weights tensor in the format (num_layers, num_directions, num_gates, output_channels, input_channels), an alias to dnnl_abdec.
Definition: dnnl_types.h:675
permuted 4D tensor
Definition: dnnl_types.h:208
An opaque structure to describe an engine.
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1876
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:2135
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1612
6D CNN weights tensor (incl. groups), an alias to dnnl_abcdef
Definition: dnnl_types.h:645
Eltwise: mish.
Definition: dnnl_types.h:1215
Forward data propagation (inference mode).
Definition: dnnl_types.h:1086
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1937
Undefined RNN flags.
Definition: dnnl_types.h:2002
A sum primitive.
Definition: dnnl_types.h:1113
unsigned cpu_runtime
CPU runtime.
Definition: dnnl_types.h:2708
5D CNN weights tensor (incl. groups), an alias to dnnl_decab
Definition: dnnl_types.h:641
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1681
Intel Advanced Vector Extensions 512 (Intel AVX-512) subset for Intel Xeon Phi processors x200 Series...
Definition: dnnl_types.h:2748
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1743
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1939
A descriptor of a element-wise operation.
Definition: dnnl_types.h:1675
dnnl_dims_t inner_blks
The size of the blocks, e.g. {4, 16, 4} in case of OIhw_4i16o4i
Definition: dnnl_types.h:1416
A descriptor of a Softmax operation.
Definition: dnnl_types.h:1735
An opaque structure for a chain of post operations.
A descriptor of an inner product operation.
Definition: dnnl_types.h:1966
Eltwise: round.
Definition: dnnl_types.h:1211
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:1832
3D RNN data tensor in the format (seq_length, batch, input channels), an alias to dnnl_abc...
Definition: dnnl_types.h:655
dnnl_memory_desc_t diff_weights_projection_desc
Weights gradient projection memory descriptor.
Definition: dnnl_types.h:2086
dnnl_rnn_direction_t
A direction of RNN primitive execution.
Definition: dnnl_types.h:2006
Internal weights format for 2x3 Winograd.
Definition: dnnl_types.h:1427
inner product descriptor
Definition: dnnl_types.h:2620
5D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:306
A descriptor of reduction operation.
Definition: dnnl_types.h:2180
6D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:364
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:1782
Reduction using lp norm.
Definition: dnnl_types.h:1299
Binary mul.
Definition: dnnl_types.h:1261
dnnl_memory_desc_t dst_iter_desc
Destination iter memory descriptor for hidden state.
Definition: dnnl_types.h:2049
A softmax primitive.
Definition: dnnl_types.h:1121
const struct dnnl_primitive_desc * const_dnnl_primitive_desc_t
A constant primitive descriptor handle.
Definition: dnnl_types.h:2262
No hints (use default features)
Definition: dnnl_types.h:2781
int64_t dnnl_dim_t
A type to describe tensor dimension.
Definition: dnnl_types.h:1399
Forward data propagation (alias for dnnl_forward_training).
Definition: dnnl_types.h:1090
primitive kind
Definition: dnnl_types.h:2587
matrix multiplication (matmul) descriptor
Definition: dnnl_types.h:2625
Default stream configuration.
Definition: dnnl_types.h:2661
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1987
dnnl_memory_desc_t stat_desc
Mean and variance data memory descriptors.
Definition: dnnl_types.h:1954
const struct dnnl_primitive * const_dnnl_primitive_t
A constant primitive handle.
Definition: dnnl_types.h:2346
LRN within a single channel.
Definition: dnnl_types.h:1243
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:1407
plain 6D tensor
Definition: dnnl_types.h:183
Eltwise: exp (dst for backward)
Definition: dnnl_types.h:1229
Winograd convolution.
Definition: dnnl_types.h:1162
5D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:352
dnnl_wino_desc_t wino_desc
Tensor of weights for integer 8bit winograd convolution.
Definition: dnnl_types.h:1551
dnnl_alg_kind_t alg_kind
The kind of eltwise algorithm.
Definition: dnnl_types.h:1697
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:683
Max pooling.
Definition: dnnl_types.h:1233
Eltwise: natural logarithm.
Definition: dnnl_types.h:1201
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:2167
float batch_norm_epsilon
Batch normalization epsilon parameter.
Definition: dnnl_types.h:1919
float p
Algorithm specific parameters.
Definition: dnnl_types.h:2205
dnnl_memory_desc_t weights_projection_desc
Weights projection memory descriptor.
Definition: dnnl_types.h:2059
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1935
plain 12D tensor
Definition: dnnl_types.h:189
Description of tensor of weights for winograd 2x3 convolution.
Definition: dnnl_types.h:1435
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1741
4D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcd4b ...
Definition: dnnl_types.h:722
Reduction using lp norm.
Definition: dnnl_types.h:1297
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:2045
3D CNN weights tensor, an alias to dnnl_cba
Definition: dnnl_types.h:606
Binary div.
Definition: dnnl_types.h:1267
4D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:282
Out-of-order execution.
Definition: dnnl_types.h:2659
Binary min.
Definition: dnnl_types.h:1265
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:2193
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1868
dnnl_format_kind_t
Memory format kind.
Definition: dnnl_types.h:80
permuted 3D tensor
Definition: dnnl_types.h:195
4D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:300
5D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcde4b ...
Definition: dnnl_types.h:710
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:2025
Average pooling (alias for dnnl_pooling_avg_exclude_padding)
Definition: dnnl_types.h:1239
dnnl_memory_desc_t diff_src_layer_desc
Source gradient layer memory descriptor.
Definition: dnnl_types.h:2062
int axis
Axis for shuffling.
Definition: dnnl_types.h:1664
Prefer to exclusively use Ymm registers for computations.
Definition: dnnl_types.h:2784
dnnl_rnn_packed_desc_t rnn_packed_desc
Tensor of packed weights for RNN.
Definition: dnnl_types.h:1553
3D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:245
Binary add.
Definition: dnnl_types.h:1259
3D CNN activations tensor, an alias to dnnl_abc
Definition: dnnl_types.h:583
deconvolution descriptor
Definition: dnnl_types.h:2612
A pooling primitive.
Definition: dnnl_types.h:1123
dnnl_dims_t strides
The strides between the outermost blocks.
Definition: dnnl_types.h:1410
rnn descriptor
Definition: dnnl_types.h:2621
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1603
Eltwise: logistic.
Definition: dnnl_types.h:1188
A descriptor of a shuffle operation.
Definition: dnnl_types.h:1653
const struct dnnl_primitive_desc_iterator * const_dnnl_primitive_desc_iterator_t
A constant primitive descriptor iterator handle.
Definition: dnnl_types.h:2251
dnnl_dims_t kernel
Pooling kernel spatial dimensions.
Definition: dnnl_types.h:1788
Eltwise: hyperbolic tangent non-linearity (tanh) (dst for backward)
Definition: dnnl_types.h:1221
Winograd deconvolution.
Definition: dnnl_types.h:1168
permuted 4D tensor
Definition: dnnl_types.h:209
number of outputs expected
Definition: dnnl_types.h:2590
#define DNNL_MAX_NDIMS
Maximum number of dimensions a tensor can have.
Definition: dnnl_types.h:1367
5D CNN weights tensor (incl. groups), an alias to dnnl_abcde
Definition: dnnl_types.h:637
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1977
float lrn_k
LRN k parameter.
Definition: dnnl_types.h:1887
dnnl_rnn_direction_t direction
The direction of RNN primitive execution.
Definition: dnnl_types.h:2033
6D CNN weights tensor (incl. groups), an alias to dnnl_defcab
Definition: dnnl_types.h:651
GEMM descriptor (internal)
Definition: dnnl_types.h:2622
plain 1D tensor
Definition: dnnl_types.h:177
Bidirectional execution of RNN primitive with concatenation of the results.
Definition: dnnl_types.h:2013
Reduction using min.
Definition: dnnl_types.h:1289
permuted 2D tensor
Definition: dnnl_types.h:200
permuted 5D tensor
Definition: dnnl_types.h:211
permuted 6D tensor
Definition: dnnl_types.h:197
dnnl_memory_desc_t src_iter_c_desc
Source iteration memory descriptor for cell state.
Definition: dnnl_types.h:2039
stub
Definition: dnnl_types.h:2609
dnnl_memory_desc_t diff_desc
Source and Destination of gradient memory descriptor.
Definition: dnnl_types.h:1745
3D CNN weights tensor, an alias to dnnl_bca
Definition: dnnl_types.h:608
5D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcde8b ...
Definition: dnnl_types.h:713
propagation kind
Definition: dnnl_types.h:2606
plain 9D tensor
Definition: dnnl_types.h:186
An inner product primitive.
Definition: dnnl_types.h:1131
Use global statistics.
Definition: dnnl_types.h:1329
6D RNN weights tensor
Definition: dnnl_types.h:695
5D CNN activations tensor blocked by channels with block size 32, an alias to dnnl_aBcde32b ...
Definition: dnnl_types.h:704
GRU cell.
Definition: dnnl_types.h:1249
3D CNN activations tensor, an alias to dnnl_acb
Definition: dnnl_types.h:585
The operation was successful.
Definition: dnnl_types.h:41
A descriptor of a Layer Normalization operation.
Definition: dnnl_types.h:1929
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1656
8-bit signed integer.
Definition: dnnl_types.h:74
convolution descriptor
Definition: dnnl_types.h:2611
dnnl_memory_desc_t weights_peephole_desc
Weights peephole memory descriptor.
Definition: dnnl_types.h:2055
RNN cell.
Definition: dnnl_types.h:1245
Alias for dnnl_unidirectional_left2right.
Definition: dnnl_types.h:2018
A (out-of-place) concat primitive.
Definition: dnnl_types.h:1111
Internal weights format for 2x3 Winograd.
Definition: dnnl_types.h:1429
dnnl_dims_t dilates
Convolution dilates in each spatial dimension.
Definition: dnnl_types.h:1630
const struct dnnl_stream * const_dnnl_stream_t
A constant execution stream handle.
Definition: dnnl_types.h:2670
2D RNN statistics tensor, an alias to dnnl_ba
Definition: dnnl_types.h:581
5D CNN activations tensor, an alias to dnnl_acdeb
Definition: dnnl_types.h:595
Intel AVX-512 and Intel Deep Learning Boost (Intel DL Boost) support for Intel Xeon Scalable processo...
Definition: dnnl_types.h:2761
Undefined memory format tag.
Definition: dnnl_types.h:166
dnnl_cpu_isa_hints_t
CPU ISA hints flags.
Definition: dnnl_types.h:2779
Reduction using mul.
Definition: dnnl_types.h:1293
permuted 5D tensor
Definition: dnnl_types.h:196
Eltwise: square root.
Definition: dnnl_types.h:1180
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1904
int patch
Patch version.
Definition: dnnl_types.h:2706
dnnl_alg_kind_t alg_kind
The kind of reduction algorithm.
Definition: dnnl_types.h:2189
4D CNN activations tensor blocked by channels with block size 32, an alias to dnnl_aBcd32b ...
Definition: dnnl_types.h:716
permuted 3D tensor
Definition: dnnl_types.h:204
permuted 8D tensor
Definition: dnnl_types.h:216
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1878
source memory desc
Definition: dnnl_types.h:2633
Eltwise: swish.
Definition: dnnl_types.h:1199
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1871
#define DNNL_RNN_MAX_N_PARTS
Maximum number of parts of RNN weights tensor that require separate computation.
Definition: dnnl_types.h:1458
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:2183
Memory descriptor.
Definition: dnnl_types.h:1511
dnnl_wino_memory_format_t
Winograd-specific formats.
Definition: dnnl_types.h:1423
2D RNN statistics tensor, an alias to dnnl_ab
Definition: dnnl_types.h:579
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1932
A descriptor of a pooling operation.
Definition: dnnl_types.h:1803
dnnl_data_type_t data_type
Data type of the tensor elements.
Definition: dnnl_types.h:1531
A matrix multiplication primitive.
Definition: dnnl_types.h:1141
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:1794
Eltwise: erf-based gelu.
Definition: dnnl_types.h:1209
permuted 9D tensor
Definition: dnnl_types.h:217
Indicates the weights have an additional buffer, that depends on the compensation_mask.
Definition: dnnl_types.h:1484
dnnl_blocking_desc_t blocking
Description of the data layout for memory formats that use blocking.
Definition: dnnl_types.h:1549
dnnl_dims_t inner_idxs
The logical indices of the blocks, e.g.
Definition: dnnl_types.h:1419
The operation failed due to an out-of-memory condition.
Definition: dnnl_types.h:43
Backward weights propagation.
Definition: dnnl_types.h:1096
5D tensor blocked by 2nd dimension with block size 32
Definition: dnnl_types.h:313
3D CNN weights tensor, an alias to dnnl_acb
Definition: dnnl_types.h:604
dnnl_memory_desc_t diff_weights_desc
Weights gradient memory descriptor.
Definition: dnnl_types.h:1618
Binary not equal.
Definition: dnnl_types.h:1281
dnnl_memory_desc_t data_scaleshift_desc
Scale and shift data and gradient memory descriptors.
Definition: dnnl_types.h:1912
workspace memory desc
Definition: dnnl_types.h:2639
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:2133
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1626
eltwise descriptor
Definition: dnnl_types.h:2614
number of inputs expected
Definition: dnnl_types.h:2589
shuffle descriptor
Definition: dnnl_types.h:2613
Average pooling include padding.
Definition: dnnl_types.h:1235
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1906
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:2165
32-bit/single-precision floating point.
Definition: dnnl_types.h:70
permuted 5D tensor
Definition: dnnl_types.h:210
A structure that contains an index and a memory object, and is used to pass arguments to dnnl_primiti...
Definition: dnnl_types.h:2544
Intel AVX-512, Intel DL Boost and bfloat16 support for Intel Xeon Scalable processor family and Intel...
Definition: dnnl_types.h:2766
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:2158
4D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcd8b ...
Definition: dnnl_types.h:725
struct dnnl_primitive_attr * dnnl_primitive_attr_t
A primitive descriptor attributes handle that controls primitive behavior.
Definition: dnnl_types.h:2304
lrn descriptor
Definition: dnnl_types.h:2617
dnnl_memory_desc_t src_layer_desc
Source layer memory descriptor.
Definition: dnnl_types.h:2035
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:2169
4D tensor blocked by 1st and 2nd dimension with block size 8
Definition: dnnl_types.h:288
A shuffle primitive.
Definition: dnnl_types.h:1109
for creating scratchpad memory
Definition: dnnl_types.h:2601
float layer_norm_epsilon
Layer normalization epsilon parameter.
Definition: dnnl_types.h:1956
dnnl_memory_desc_t diff_weights_peephole_desc
Weights gradient peephole memory descriptor.
Definition: dnnl_types.h:2082
struct dnnl_engine * dnnl_engine_t
An engine handle.
Definition: dnnl_types.h:2229
unsigned int flags
RNN cell flags.
Definition: dnnl_types.h:2089
permuted 4D tensor
Definition: dnnl_types.h:205
4D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:263
Binary max.
Definition: dnnl_types.h:1263
Unspecified format kind.
Definition: dnnl_types.h:85
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1659
2D CNN weights tensor, an alias to dnnl_ba
Definition: dnnl_types.h:600
Average pooling exclude padding.
Definition: dnnl_types.h:1237
3D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBc16b ...
Definition: dnnl_types.h:731
dnnl_alg_kind_t
Kinds of algorithms.
Definition: dnnl_types.h:1157
4D CNN weights tensor, an alias to dnnl_cdba
Definition: dnnl_types.h:612
6D CNN weights tensor (incl. groups), an alias to dnnl_abdefc
Definition: dnnl_types.h:647
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1822
Reduction using max.
Definition: dnnl_types.h:1287
5D CNN weights tensor, an alias to dnnl_bacde
Definition: dnnl_types.h:622
permuted 3D tensor
Definition: dnnl_types.h:207
Binary equal.
Definition: dnnl_types.h:1279
dnnl_rnn_flags_t
Flags for RNN cell.
Definition: dnnl_types.h:2000
uint64_t flags
The flags contain arbitrary extra information, such as compensation.
Definition: dnnl_types.h:1496
dnnl_memory_desc_t diff_dst_iter_desc
Destination gradient iteration memory descriptor for hidden state.
Definition: dnnl_types.h:2076
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1816
Description of extra information stored in memory.
Definition: dnnl_types.h:1493
A pooling version 2 primitive (pooling with dilation support).
Definition: dnnl_types.h:1145
4D CNN weights tensor (incl. groups), an alias to dnnl_dcab
Definition: dnnl_types.h:635
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1973
An LRN primitive.
Definition: dnnl_types.h:1125
A descriptor of a Local Response Normalization (LRN) operation.
Definition: dnnl_types.h:1865
dnnl_softmax_desc_t dnnl_logsoftmax_desc_t
A descriptor of a LogSoftmax operation.
Definition: dnnl_types.h:1757
Eltwise: clip version 2 (dst for backward)
Definition: dnnl_types.h:1231
int ndims
Number of dimensions.
Definition: dnnl_types.h:1513
dnnl_stream_flags_t
Stream flags.
Definition: dnnl_types.h:2655
dnnl_dim_t dnnl_dims_t[DNNL_MAX_NDIMS]
A type to describe tensor dimensions.
Definition: dnnl_types.h:1402
Undefined propagation type.
Definition: dnnl_types.h:1079
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1701
Primitive or engine failed on execution.
Definition: dnnl_types.h:51
op descriptor
Definition: dnnl_types.h:2610
6D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:359
dnnl_memory_desc_t weights_iter_desc
Weights iteration memory descriptor.
Definition: dnnl_types.h:2043
const struct dnnl_post_ops * const_dnnl_post_ops_t
A constant post operation chain handle.
Definition: dnnl_types.h:2333
Eltwise: exponent.
Definition: dnnl_types.h:1190
1D tensor, an alias to dnnl_a
Definition: dnnl_types.h:573
Local response normalization (LRN) across multiple channels.
Definition: dnnl_types.h:1241
Binary less or equal.
Definition: dnnl_types.h:1275
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1768
resampling descriptor
Definition: dnnl_types.h:2626
const struct dnnl_primitive_attr * const_dnnl_primitive_attr_t
A constant primitive descriptor attributes handle.
Definition: dnnl_types.h:2307
A matrix multiplication primitive (internal).
Definition: dnnl_types.h:1135
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: dnnl_types.h:2072
plain 3D tensor
Definition: dnnl_types.h:179
Use scale and shift parameters.
Definition: dnnl_types.h:1342
3D CNN activations tensor blocked by channels with block size 32, an alias to dnnl_aBc32b ...
Definition: dnnl_types.h:728
A descriptor of a Batch Normalization operation.
Definition: dnnl_types.h:1896
5D CNN weights tensor, an alias to dnnl_bcdea
Definition: dnnl_types.h:628
struct dnnl_primitive * dnnl_primitive_t
A primitive handle.
Definition: dnnl_types.h:2344
Intel Advanced Vector Extensions 2 (Intel AVX2)
Definition: dnnl_types.h:2744
3D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBc4b ...
Definition: dnnl_types.h:734
struct dnnl_stream * dnnl_stream_t
An execution stream handle.
Definition: dnnl_types.h:2668
4D CNN weights tensor, an alias to dnnl_bacd
Definition: dnnl_types.h:618
Eltwise: exponential linear unit (elu) (dst for backward)
Definition: dnnl_types.h:1223
Eltwise: exponential linear unit (elu)
Definition: dnnl_types.h:1174
Forward data propagation (alias for dnnl_forward_inference).
Definition: dnnl_types.h:1088
6D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:354
Binary sub.
Definition: dnnl_types.h:1269
5D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcde16b ...
Definition: dnnl_types.h:707
An opaque structure to describe a primitive descriptor.
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1607
struct dnnl_primitive_desc_iterator * dnnl_primitive_desc_iterator_t
A primitive descriptor iterator handle.
Definition: dnnl_types.h:2248
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1818
Eltwise: abs.
Definition: dnnl_types.h:1178
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1699
Internal weights format for 4x3 Winograd.
Definition: dnnl_types.h:1431
Forward data propagation (training mode).
Definition: dnnl_types.h:1082
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:1662
Eltwise: tanh-based gelu (alias for dnnl_eltwise_gelu_tanh)
Definition: dnnl_types.h:1197
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1614
A rnn primitive.
Definition: dnnl_types.h:1133
An opaque structure to describe an execution stream.
4D CNN activations tensor, an alias to dnnl_abcd
Definition: dnnl_types.h:587
A logsoftmax primitive.
Definition: dnnl_types.h:1139
Binary less than.
Definition: dnnl_types.h:1277
permuted 5D tensor
Definition: dnnl_types.h:203
The operation failed because requested functionality is not implemented.
Definition: dnnl_types.h:47
Eltwise: gelu.
Definition: dnnl_types.h:1195
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:2143
dnnl_memory_desc_t diff_src_iter_desc
Source gradient iter memory descriptor for hidden state.
Definition: dnnl_types.h:2064
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1780
Eltwise: hyperbolic tangent non-linearity (tanh)
Definition: dnnl_types.h:1172
struct dnnl_post_ops * dnnl_post_ops_t
A post operation chain handle.
Definition: dnnl_types.h:2330
permuted 10D tensor
Definition: dnnl_types.h:218
A descriptor of resampling operation.
Definition: dnnl_types.h:2152
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1784
dnnl_prop_kind_t
Kinds of propagation.
Definition: dnnl_types.h:1076
permuted 6D tensor
Definition: dnnl_types.h:214
stub
Definition: dnnl_types.h:2632
Nearest Neighbor Resampling Method.
Definition: dnnl_types.h:1283
permuted 4D tensor
Definition: dnnl_types.h:202
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1989
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:2603
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: dnnl_types.h:1622
dnnl_alg_kind_t alg_kind
The kind of the resampling algorithm.
Definition: dnnl_types.h:2161
dnnl_normalization_flags_t
Flags for normalization primitives.
Definition: dnnl_types.h:1307
weights grad. memory desc
Definition: dnnl_types.h:2636
A convolution primitive.
Definition: dnnl_types.h:1115
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1678
memory desc of an execute argument
Definition: dnnl_types.h:2641
Backward bias propagation.
Definition: dnnl_types.h:1098
5D CNN activations tensor, an alias to dnnl_abcde
Definition: dnnl_types.h:593
4D CNN weights tensor, an alias to dnnl_abcd
Definition: dnnl_types.h:610
Eltwise: logistic (dst for backward)
Definition: dnnl_types.h:1227
dnnl_memory_desc_t diff_weights_layer_desc
Weights gradient layer memory descriptor.
Definition: dnnl_types.h:2068
weights memory descriptor desc
Definition: dnnl_types.h:2635
unsigned gpu_runtime
GPU runtime.
Definition: dnnl_types.h:2709
Linear Resampling Method.
Definition: dnnl_types.h:1285
3D CNN weights tensor, an alias to dnnl_abc
Definition: dnnl_types.h:602
dnnl_cpu_isa_t
CPU instruction set flags.
Definition: dnnl_types.h:2733
int compensation_mask
Compensation mask.
Definition: dnnl_types.h:1498
Eltwise: soft_relu.
Definition: dnnl_types.h:1186
plain 5D tensor
Definition: dnnl_types.h:182
dnnl_dims_t strides
Pooling kernel strides for spatial dimensions.
Definition: dnnl_types.h:1824
destination engine
Definition: dnnl_types.h:2604
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1969
Eltwise: square.
Definition: dnnl_types.h:1176
float alpha
Algorithm specific parameter.
Definition: dnnl_types.h:1726