oneAPI Deep Neural Network Library (oneDNN)
Performance library for Deep Learning
2.1.3
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
24extern "C" {
25#endif
26
28#include <stddef.h>
29#include <stdint.h>
31
34
37
39typedef enum {
55
57
60
62typedef enum {
78
80typedef enum {
95
164typedef 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
544
545 // Aliases
546
571
604
627
667 dnnl_ldOi32o = dnnl_abDc32d,
668 dnnl_ldOI32o4i = dnnl_abDC32d4c,
670 dnnl_ldgOi32o = dnnl_abdEc32e,
671 dnnl_ldgOI32o2i = dnnl_abdEC32e2c,
672 dnnl_ldgOI32o4i = dnnl_abdEC32e4c,
673
674 // Opaque data types, are not to be used explicitly
675
676 // data
713 dnnl_NCw16n16c = dnnl_ABc16a16b,
714 dnnl_NCdhw16n16c = dnnl_ABcde16a16b,
715 dnnl_NChw16n16c = dnnl_ABcd16a16b,
716 dnnl_NCw32n32c = dnnl_ABc32a32b,
717 dnnl_NChw32n32c = dnnl_ABcd32a32b,
718 dnnl_NCdhw32n32c = dnnl_ABcde32a32b,
719
720 // weights, 2D
721 dnnl_OI16i16o = dnnl_AB16b16a,
722 dnnl_OI16i32o = dnnl_AB16b32a,
723 dnnl_OI16i64o = dnnl_AB16b64a,
724 dnnl_OI8i16o2i = dnnl_AB8b16a2b,
725 dnnl_OI8i32o2i = dnnl_AB8b32a2b,
726 dnnl_OI8i64o2i = dnnl_AB8b64a2b,
727 dnnl_OI4i16o4i = dnnl_AB4b16a4b,
728 dnnl_OI4i32o4i = dnnl_AB4b32a4b,
729 dnnl_OI4i64o4i = dnnl_AB4b64a4b,
730 dnnl_OI16i16o4i = dnnl_AB16b16a4b,
731 // weights, 3D
732 dnnl_IOw16o16i = dnnl_BAc16a16b,
733 dnnl_IOw16i16o = dnnl_BAc16b16a,
734 dnnl_OIw16i16o = dnnl_ABc16b16a,
735 dnnl_OIw16i32o = dnnl_ABc16b32a,
736 dnnl_OIw16i64o = dnnl_ABc16b64a,
737 dnnl_OIw16o16i = dnnl_ABc16a16b,
738 dnnl_Oiw16o = dnnl_Abc16a,
739 dnnl_OIw4i16o4i = dnnl_ABc4b16a4b,
740 dnnl_OIw4i32o4i = dnnl_ABc4b32a4b,
741 dnnl_OIw4i64o4i = dnnl_ABc4b64a4b,
742 dnnl_OIw2i8o4i = dnnl_ABc2b8a4b,
743 dnnl_OIw16i16o4i = dnnl_ABc16b16a4b,
744 dnnl_OIw16i16o2i = dnnl_ABc16b16a2b,
745 dnnl_OIw16o16i2o = dnnl_ABc16a16b2a,
746 dnnl_OIw4i4o = dnnl_ABc4b4a,
747 dnnl_OIw4o4i = dnnl_ABc4a4b,
748 dnnl_Oiw4o = dnnl_Abc4a,
749 dnnl_OIw8i16o2i = dnnl_ABc8b16a2b,
750 dnnl_OIw8i32o2i = dnnl_ABc8b32a2b,
751 dnnl_OIw8i64o2i = dnnl_ABc8b64a2b,
752 dnnl_OIw8i8o = dnnl_ABc8b8a,
753 dnnl_OIw8o16i2o = dnnl_ABc8a16b2a,
754 dnnl_IOw8o16i2o = dnnl_BAc8a16b2a,
755 dnnl_OIw8o8i = dnnl_ABc8a8b,
756 dnnl_OIw8o4i = dnnl_ABc8a4b,
757 dnnl_Owi16o = dnnl_Acb16a,
758 dnnl_OwI16o2i = dnnl_AcB16a2b,
759 dnnl_OwI16o4i = dnnl_AcB16a4b,
760 dnnl_Owi4o = dnnl_Acb4a,
761 dnnl_Owi8o = dnnl_Acb8a,
762
763 // weights, 4D
764 dnnl_IOhw16i16o = dnnl_BAcd16b16a,
765 dnnl_IOhw16o16i = dnnl_BAcd16a16b,
766 dnnl_Ohwi16o = dnnl_Acdb16a,
767 dnnl_OhwI16o2i = dnnl_AcdB16a2b,
768 dnnl_OhwI16o4i = dnnl_AcdB16a4b,
769 dnnl_Ohwi32o = dnnl_Acdb32a,
770 dnnl_Ohwi4o = dnnl_Acdb4a,
771 dnnl_Ohwi8o = dnnl_Acdb8a,
772 dnnl_OIhw16i16o = dnnl_ABcd16b16a,
773 dnnl_OIhw16i32o = dnnl_ABcd16b32a,
774 dnnl_OIhw16i64o = dnnl_ABcd16b64a,
775 dnnl_OIhw16o16i = dnnl_ABcd16a16b,
776 dnnl_Oihw16o = dnnl_Abcd16a,
777 dnnl_OIhw4i16o4i = dnnl_ABcd4b16a4b,
778 dnnl_OIhw4i32o4i = dnnl_ABcd4b32a4b,
779 dnnl_OIhw4i64o4i = dnnl_ABcd4b64a4b,
780 dnnl_OIhw16i16o4i = dnnl_ABcd16b16a4b,
781 dnnl_OIhw16i16o2i = dnnl_ABcd16b16a2b,
782 dnnl_OIhw16o16i2o = dnnl_ABcd16a16b2a,
783 dnnl_OIhw4i4o = dnnl_ABcd4b4a,
784 dnnl_OIhw4o4i = dnnl_ABcd4a4b,
785 dnnl_Oihw4o = dnnl_Abcd4a,
786 dnnl_OIhw8i16o2i = dnnl_ABcd8b16a2b,
787 dnnl_OIhw8i32o2i = dnnl_ABcd8b32a2b,
788 dnnl_OIhw8i64o2i = dnnl_ABcd8b64a2b,
789 dnnl_OIhw8i8o = dnnl_ABcd8b8a,
790 dnnl_OIhw8o16i2o = dnnl_ABcd8a16b2a,
791 dnnl_OIhw2i8o4i = dnnl_ABcd2b8a4b,
792 dnnl_IOhw8o16i2o = dnnl_BAcd8a16b2a,
793 dnnl_OIhw8o8i = dnnl_ABcd8a8b,
794 dnnl_OIhw8o4i = dnnl_ABcd8a4b,
795 dnnl_Owhi16o = dnnl_Adcb16a,
796
797 // weights, 5D
798 dnnl_Odhwi16o = dnnl_Acdeb16a,
799 dnnl_OdhwI16o2i = dnnl_AcdeB16a2b,
800 dnnl_OdhwI16o4i = dnnl_AcdeB16a4b,
801 dnnl_Odhwi4o = dnnl_Acdeb4a,
802 dnnl_Odhwi8o = dnnl_Acdeb8a,
803 dnnl_OIdhw16i16o = dnnl_ABcde16b16a,
804 dnnl_OIdhw16i32o = dnnl_ABcde16b32a,
805 dnnl_OIdhw16i64o = dnnl_ABcde16b64a,
806 dnnl_OIdhw16o16i = dnnl_ABcde16a16b,
807 dnnl_Oidhw16o = dnnl_Abcde16a,
808 dnnl_OIdhw4i4o = dnnl_ABcde4b4a,
809 dnnl_OIdhw4o4i = dnnl_ABcde4a4b,
810 dnnl_Oidhw4o = dnnl_Abcde4a,
811 dnnl_OIdhw8i16o2i = dnnl_ABcde8b16a2b,
812 dnnl_OIdhw8i32o2i = dnnl_ABcde8b32a2b,
813 dnnl_OIdhw8i64o2i = dnnl_ABcde8b64a2b,
814 dnnl_OIdhw8i8o = dnnl_ABcde8b8a,
815 dnnl_OIdhw8o16i2o = dnnl_ABcde8a16b2a,
816 dnnl_IOdhw8o16i2o = dnnl_BAcde8a16b2a,
817 dnnl_OIdhw4i16o4i = dnnl_ABcde4b16a4b,
818 dnnl_OIdhw4i32o4i = dnnl_ABcde4b32a4b,
819 dnnl_OIdhw4i64o4i = dnnl_ABcde4b64a4b,
820 dnnl_OIdhw16i16o4i = dnnl_ABcde16b16a4b,
821 dnnl_OIdhw16i16o2i = dnnl_ABcde16b16a2b,
822 dnnl_OIdhw2i8o4i = dnnl_ABcde2b8a4b,
823 dnnl_OIdhw8o8i = dnnl_ABcde8a8b,
824 dnnl_OIdhw8o4i = dnnl_ABcde8a4b,
825 dnnl_IOdhw16i16o = dnnl_BAcde16b16a,
826 dnnl_OIdhw4o8i8o4i = dnnl_ABcde4a8b8a4b,
827 dnnl_IOdhw16o16i = dnnl_BAcde16a16b,
828
829 // weights w/ groups, 3D
830 dnnl_Goiw16g = dnnl_Abcd16a,
831 dnnl_Goiw8g = dnnl_Abcd8a,
832 dnnl_Goiw4g = dnnl_Abcd4a,
833 dnnl_gIOw16o16i = dnnl_aCBd16b16c,
834 dnnl_gIOw16i16o = dnnl_aCBd16c16b,
835 dnnl_gOIw16i16o = dnnl_aBCd16c16b,
836 dnnl_gOIw16o16i = dnnl_aBCd16b16c,
837 dnnl_gOiw16o = dnnl_aBcd16b,
838 dnnl_gOIw4i16o4i = dnnl_aBCd4c16b4c,
839 dnnl_gOIw2i8o4i = dnnl_aBCd2c8b4c,
840 dnnl_gOIw16i16o4i = dnnl_aBCd16c16b4c,
841 dnnl_gOIw16i16o2i = dnnl_aBCd16c16b2c,
842 dnnl_gOIw16o16i2o = dnnl_aBCd16b16c2b,
843 dnnl_gOIw4i4o = dnnl_aBCd4c4b,
844 dnnl_gOIw4o4i = dnnl_aBCd4b4c,
845 dnnl_gOiw4o = dnnl_aBcd4b,
846 dnnl_gOIw8i16o2i = dnnl_aBCd8c16b2c,
847 dnnl_gOIw8i8o = dnnl_aBCd8c8b,
848 dnnl_gOIw8o16i2o = dnnl_aBCd8b16c2b,
849 dnnl_gIOw8o16i2o = dnnl_aCBd8b16c2b,
850 dnnl_gOIw8o8i = dnnl_aBCd8b8c,
851 dnnl_gOIw8o4i = dnnl_aBCd8b4c,
852 dnnl_gOwi16o = dnnl_aBdc16b,
853 dnnl_gOwI16o2i = dnnl_aBdC16b2c,
854 dnnl_gOwI16o4i = dnnl_aBdC16b4c,
855 dnnl_gOwi4o = dnnl_aBdc4b,
856 dnnl_gOwi8o = dnnl_aBdc8b,
857 dnnl_Goiw32g = dnnl_Abcd32a,
858 dnnl_gOIw2i4o2i = dnnl_aBCd2c4b2c,
859 dnnl_gOIw2o4i2o = dnnl_aBCd2b4c2b,
860 dnnl_gOIw4i8o2i = dnnl_aBCd4c8b2c,
861 dnnl_gOIw4o8i2o = dnnl_aBCd4b8c2b,
862
863 // weights w/ groups, 4D
864 dnnl_gIOhw16i16o = dnnl_aCBde16c16b,
865 dnnl_gIOhw16o16i = dnnl_aCBde16b16c,
866 dnnl_gOhwi16o = dnnl_aBdec16b,
867 dnnl_gOhwI16o2i = dnnl_aBdeC16b2c,
868 dnnl_gOhwI16o4i = dnnl_aBdeC16b4c,
869 dnnl_gOhwi32o = dnnl_aBdec32b,
870 dnnl_gOhwi4o = dnnl_aBdec4b,
871 dnnl_gOhwi8o = dnnl_aBdec8b,
872 dnnl_Goihw16g = dnnl_Abcde16a,
873 dnnl_gOIhw16i16o = dnnl_aBCde16c16b,
874 dnnl_gOIhw16o16i = dnnl_aBCde16b16c,
875 dnnl_gOihw16o = dnnl_aBcde16b,
876 dnnl_gOIhw2i8o4i = dnnl_aBCde2c8b4c,
877 dnnl_gOIhw4i16o4i = dnnl_aBCde4c16b4c,
878 dnnl_gOIhw16i16o4i = dnnl_aBCde16c16b4c,
879 dnnl_gOIhw16i16o2i = dnnl_aBCde16c16b2c,
880 dnnl_gOIhw16o16i2o = dnnl_aBCde16b16c2b,
881 dnnl_gOIhw4i4o = dnnl_aBCde4c4b,
882 dnnl_gOIhw4o4i = dnnl_aBCde4b4c,
883 dnnl_gOihw4o = dnnl_aBcde4b,
884 dnnl_Goihw8g = dnnl_Abcde8a,
885 dnnl_Goihw4g = dnnl_Abcde4a,
886 dnnl_gOIhw8i16o2i = dnnl_aBCde8c16b2c,
887 dnnl_gOIhw8i8o = dnnl_aBCde8c8b,
888 dnnl_gOIhw8o16i2o = dnnl_aBCde8b16c2b,
889 dnnl_gIOhw8o16i2o = dnnl_aCBde8b16c2b,
890 dnnl_gOIhw8o8i = dnnl_aBCde8b8c,
891 dnnl_gOIhw8o4i = dnnl_aBCde8b4c,
892 dnnl_Goihw32g = dnnl_Abcde32a,
893 dnnl_gOwhi16o = dnnl_aBedc16b,
894
895 dnnl_OIw4o8i8o4i = dnnl_ABc4a8b8a4b,
896 dnnl_OIhw4o8i8o4i = dnnl_ABcd4a8b8a4b,
897 dnnl_IOw4i8o8i4o = dnnl_BAc4b8a8b4a,
898 dnnl_IOhw4i8o8i4o = dnnl_BAcd4b8a8b4a,
899 dnnl_IOdhw4i8o8i4o = dnnl_BAcde4b8a8b4a,
900
901 dnnl_OIhw2o8i8o2i = dnnl_ABcd2a8b8a2b,
902 dnnl_gOIw4o8i8o4i = dnnl_aBCd4b8c8b4c,
903 dnnl_gOIhw4o8i8o4i = dnnl_aBCde4b8c8b4c,
904 dnnl_gOIdhw4o8i8o4i = dnnl_aBCdef4b8c8b4c,
905 dnnl_gIOw4i8o8i4o = dnnl_aCBd4c8b8c4b,
906 dnnl_gIOhw4i8o8i4o = dnnl_aCBde4c8b8c4b,
907 dnnl_gIOdhw4i8o8i4o = dnnl_aCBdef4c8b8c4b,
908 dnnl_gOIhw2o8i8o2i = dnnl_aBCde2b8c8b2c,
909 dnnl_gOIhw2i4o2i = dnnl_aBCde2c4b2c,
910 dnnl_gOIhw2o4i2o = dnnl_aBCde2b4c2b,
911 dnnl_gOIhw4i8o2i = dnnl_aBCde4c8b2c,
912 dnnl_gOIhw4o8i2o = dnnl_aBCde4b8c2b,
913
914 // weights w/ groups, 6D
915 dnnl_gIOdhw16i16o = dnnl_aCBdef16c16b,
916 dnnl_gIOdhw16o16i = dnnl_aCBdef16b16c,
917 dnnl_gOdhwi16o = dnnl_aBdefc16b,
918 dnnl_gOdhwI16o2i = dnnl_aBdefC16b2c,
919 dnnl_gOdhwI16o4i = dnnl_aBdefC16b4c,
920 dnnl_gOdhwi4o = dnnl_aBdefc4b,
921 dnnl_gOdhwi8o = dnnl_aBdefc8b,
922 dnnl_gOIdhw16i16o = dnnl_aBCdef16c16b,
923 dnnl_gOIdhw4i16o4i = dnnl_aBCdef4c16b4c,
924 dnnl_gOIdhw16i16o4i = dnnl_aBCdef16c16b4c,
925 dnnl_gOIdhw2i8o4i = dnnl_aBCdef2c8b4c,
926 dnnl_gOIdhw16i16o2i = dnnl_aBCdef16c16b2c,
927 dnnl_gOIdhw16o16i = dnnl_aBCdef16b16c,
928 dnnl_gOidhw16o = dnnl_aBcdef16b,
929 dnnl_gOIdhw4i4o = dnnl_aBCdef4c4b,
930 dnnl_gOIdhw4o4i = dnnl_aBCdef4b4c,
931 dnnl_gOidhw4o = dnnl_aBcdef4b,
932 dnnl_gOIdhw8i16o2i = dnnl_aBCdef8c16b2c,
933 dnnl_gOIdhw8i8o = dnnl_aBCdef8c8b,
934 dnnl_gOIdhw8o16i2o = dnnl_aBCdef8b16c2b,
935 dnnl_gIOdhw8o16i2o = dnnl_aCBdef8b16c2b,
936 dnnl_gOIdhw8o8i = dnnl_aBCdef8b8c,
937 dnnl_gOIdhw8o4i = dnnl_aBCdef8b4c,
938 dnnl_Goidhw16g = dnnl_Abcdef16a,
939 dnnl_Goidhw32g = dnnl_Abcdef32a,
940 dnnl_gOIdhw2i4o2i = dnnl_aBCdef2c4b2c,
941 dnnl_gOIdhw4i8o2i = dnnl_aBCdef4c8b2c,
942 dnnl_gOIdhw2o4i2o = dnnl_aBCdef2b4c2b,
943 dnnl_gOIdhw4o8i2o = dnnl_aBCdef4b8c2b,
944 // weights, 3D
945 dnnl_Owi32o = dnnl_Acb32a,
946 dnnl_OwI32o2i = dnnl_AcB32a2b,
947 dnnl_OwI32o4i = dnnl_AcB32a4b,
948 dnnl_Owi48o = dnnl_Acb48a,
949 dnnl_OwI48o2i = dnnl_AcB48a2b,
950 dnnl_OwI48o4i = dnnl_AcB48a4b,
951 dnnl_Owi64o = dnnl_Acb64a,
952 dnnl_OwI64o2i = dnnl_AcB64a2b,
953 dnnl_OwI64o4i = dnnl_AcB64a4b,
954 dnnl_wIo2i = dnnl_cBa2b,
955 dnnl_wIo4i = dnnl_cBa4b,
956 dnnl_gOwi32o = dnnl_aBdc32b,
957 dnnl_gOwI32o2i = dnnl_aBdC32b2c,
958 dnnl_gOwI32o4i = dnnl_aBdC32b4c,
959 dnnl_gOwi48o = dnnl_aBdc48b,
960 dnnl_gOwI48o2i = dnnl_aBdC48b2c,
961 dnnl_gOwI48o4i = dnnl_aBdC48b4c,
962 dnnl_gOwi64o = dnnl_aBdc64b,
963 dnnl_gOwI64o2i = dnnl_aBdC64b2c,
964 dnnl_gOwI64o4i = dnnl_aBdC64b4c,
965 dnnl_gwio = dnnl_adcb,
966 dnnl_gwIo2i = dnnl_adCb2c,
967 dnnl_gwIo4i = dnnl_adCb4c,
968 // weights, 4D
969 dnnl_OhwI32o = dnnl_Acdb32a,
970 dnnl_OhwI32o2i = dnnl_AcdB32a2b,
971 dnnl_OhwI32o4i = dnnl_AcdB32a4b,
972 dnnl_Ohwi48o = dnnl_Acdb48a,
973 dnnl_OhwI48o2i = dnnl_AcdB48a2b,
974 dnnl_OhwI48o4i = dnnl_AcdB48a4b,
975 dnnl_Ohwi64o = dnnl_Acdb64a,
976 dnnl_OhwI64o2i = dnnl_AcdB64a2b,
977 dnnl_OhwI64o4i = dnnl_AcdB64a4b,
978 dnnl_hwIo2i = dnnl_cdBa2b,
979 dnnl_hwIo4i = dnnl_cdBa4b,
980 dnnl_gOhwI32o = dnnl_aBdec32b,
981 dnnl_gOhwI32o2i = dnnl_aBdeC32b2c,
982 dnnl_gOhwI32o4i = dnnl_aBdeC32b4c,
983 dnnl_gOhwi48o = dnnl_aBdec48b,
984 dnnl_gOhwI48o2i = dnnl_aBdeC48b2c,
985 dnnl_gOhwI48o4i = dnnl_aBdeC48b4c,
986 dnnl_gOhwi64o = dnnl_aBdec64b,
987 dnnl_gOhwI64o2i = dnnl_aBdeC64b2c,
988 dnnl_gOhwI64o4i = dnnl_aBdeC64b4c,
989 dnnl_ghwio = dnnl_adecb,
990 dnnl_ghwIo2i = dnnl_adeCb2c,
991 dnnl_ghwIo4i = dnnl_adeCb4c,
992 // weights, 5D
993 dnnl_Odhwi32o = dnnl_Acdeb32a,
994 dnnl_OdhwI32o2i = dnnl_AcdeB32a2b,
995 dnnl_OdhwI32o4i = dnnl_AcdeB32a4b,
996 dnnl_Odhwi48o = dnnl_Acdeb48a,
997 dnnl_OdhwI48o2i = dnnl_AcdeB48a2b,
998 dnnl_OdhwI48o4i = dnnl_AcdeB48a4b,
999 dnnl_Odhwi64o = dnnl_Acdeb64a,
1000 dnnl_OdhwI64o2i = dnnl_AcdeB64a2b,
1001 dnnl_OdhwI64o4i = dnnl_AcdeB64a4b,
1002 dnnl_dhwIo2i = dnnl_cdeBa2b,
1003 dnnl_dhwIo4i = dnnl_cdeBa4b,
1004 dnnl_gOdhwi32o = dnnl_aBdefc32b,
1005 dnnl_gOdhwI32o2i = dnnl_aBdefC32b2c,
1006 dnnl_gOdhwI32o4i = dnnl_aBdefC32b4c,
1007 dnnl_gOdhwi48o = dnnl_aBdefc48b,
1008 dnnl_gOdhwI48o2i = dnnl_aBdefC48b2c,
1009 dnnl_gOdhwI48o4i = dnnl_aBdefC48b4c,
1010 dnnl_gOdhwi64o = dnnl_aBdefc64b,
1011 dnnl_gOdhwI64o2i = dnnl_aBdefC64b2c,
1012 dnnl_gOdhwI64o4i = dnnl_aBdefC64b4c,
1013 dnnl_gdhwio = dnnl_adefcb,
1014 dnnl_gdhwIo2i = dnnl_adefCb2c,
1015 dnnl_gdhwIo4i = dnnl_adefCb4c,
1017
1019
1024
1026typedef enum {
1027 // TODO: suggest renames
1050
1053typedef enum {
1100
1105
1107typedef enum {
1108 dnnl_alg_kind_undef,
1239
1241typedef enum {
1251
1264
1277
1291
1294
1297
1301#define DNNL_MAX_NDIMS 12
1302
1305#define DNNL_RUNTIME_DIM_VAL INT64_MIN
1306
1310#define DNNL_RUNTIME_SIZE_VAL ((size_t)DNNL_RUNTIME_DIM_VAL)
1311
1314static const union {
1315 unsigned u;
1316 float f;
1317} DNNL_RUNTIME_F32_VAL_REP = {0x7fc000d0};
1319
1322#define DNNL_RUNTIME_F32_VAL (DNNL_RUNTIME_F32_VAL_REP.f)
1323
1325static const int DNNL_RUNTIME_S32_VAL_REP = INT32_MIN;
1327
1330#define DNNL_RUNTIME_S32_VAL DNNL_RUNTIME_S32_VAL_REP
1331
1333typedef int64_t dnnl_dim_t;
1334
1337
1341typedef struct {
1345 // Innermost section
1346 // ASSUMPTION: the innermost blocks are always dense
1355
1357typedef enum {
1360 // Tensors of weights for 2x3 winograd convolutions.
1364 // Tensor of weights for 4x3 convolution.
1367
1369typedef struct {
1370 dnnl_wino_memory_format_t wino_format;
1371 int r;
1372 int alpha;
1373 int ic;
1374 int oc;
1375 int ic_block;
1376 int oc_block;
1377 int ic2_block;
1378 int oc2_block;
1379 float adj_scale;
1380 size_t size;
1382
1383typedef enum {
1384 dnnl_packed_format_undef = 0,
1385 dnnl_ldigo_p,
1386 dnnl_ldgoi_p,
1387 dnnl_ldio_p
1388} dnnl_rnn_packed_memory_format_t;
1389
1392#define DNNL_RNN_MAX_N_PARTS 4
1393
1395typedef struct {
1396 dnnl_rnn_packed_memory_format_t format;
1397 int n_parts;
1398 int n;
1399 int ldb;
1400 int parts[DNNL_RNN_MAX_N_PARTS];
1401 size_t part_pack_size[DNNL_RNN_MAX_N_PARTS];
1402 unsigned pack_part[DNNL_RNN_MAX_N_PARTS];
1403 size_t offset_compensation;
1404 size_t size;
1405 char reserved[200];
1407
1409typedef enum {
1410 dnnl_memory_extra_flag_none = 0x0U,
1419 dnnl_memory_extra_flag_scale_adjust = 0x2U,
1420 dnnl_memory_extra_flag_rnn_u8s8_compensation = 0x4U,
1421 dnnl_memory_extra_flag_gpu_rnn_u8s8_compensation
1422 = dnnl_memory_extra_flag_rnn_u8s8_compensation,
1423 dnnl_memory_extra_flag_compensation_conv_asymmetric_src = 0x8U,
1425
1427typedef struct {
1430 uint64_t flags;
1438 char reserved[60];
1440
1445typedef struct {
1463
1466
1469
1473
1477
1480 union {
1488 // ... other descriptions possible
1489 } format_desc;
1490
1493
1496struct dnnl_memory;
1497
1500
1502typedef const struct dnnl_memory *const_dnnl_memory_t;
1503
1506#define DNNL_MEMORY_NONE (NULL)
1507
1510#define DNNL_MEMORY_ALLOCATE ((void *)(size_t)-1)
1511
1513
1518
1520typedef void *dnnl_op_desc_t;
1522typedef const void *const_dnnl_op_desc_t;
1523
1526
1529
1532
1534typedef struct {
1568 dnnl_dims_t padding[2];
1572
1574
1577
1580
1582
1585
1587typedef struct {
1598 int axis;
1602
1604
1607
1609typedef struct {
1657 float alpha, beta;
1659
1661
1664
1666typedef struct {
1680
1682
1685
1689
1691
1694
1696typedef struct {
1723 dnnl_dims_t padding[2];
1727
1729
1732
1734typedef struct {
1761 dnnl_dims_t padding[2];
1767
1769
1772typedef struct {
1775 dnnl_primitive_kind_t primitive_kind;
1780 dnnl_memory_desc_t data_desc;
1783 dnnl_memory_desc_t weights_desc;
1785 dnnl_memory_desc_t diff_data_desc;
1787 dnnl_memory_desc_t diff_weights_desc;
1788} dnnl_prelu_desc_t;
1789
1791
1794
1796typedef struct {
1818 float lrn_k;
1820
1822
1825
1827typedef struct {
1844 dnnl_memory_desc_t diff_data_scaleshift_desc;
1851 unsigned flags;
1853
1855
1858
1860typedef struct {
1879 dnnl_memory_desc_t diff_data_scaleshift_desc;
1888 unsigned flags;
1890
1892
1895
1897typedef struct {
1924
1926
1929
1931typedef enum {
1935
1937typedef enum {
1951
1953typedef struct {
1991
2018
2020 unsigned int flags;
2024 float alpha;
2025 float beta;
2026
2028
2030
2033
2035typedef struct {
2048
2050
2053
2061typedef struct {
2076
2078
2081
2083typedef struct {
2102 float factors[DNNL_MAX_NDIMS];
2104
2106
2109
2111typedef struct {
2136 float p, eps;
2138
2140
2142
2145
2147typedef enum {
2155
2158struct dnnl_engine;
2161#if 0
2162// FIXME: looks like this never happens
2164typedef const struct dnnl_engine *const_dnnl_engine_t;
2165#endif
2166
2168
2173
2177
2180
2182typedef const struct dnnl_primitive_desc_iterator
2184
2187struct dnnl_primitive_desc;
2188
2191
2194
2196
2199
2201typedef enum {
2225
2231struct dnnl_primitive_attr;
2232
2236
2239
2258struct dnnl_post_ops;
2259
2262
2265
2267
2270
2273struct dnnl_primitive;
2278
2280#define DNNL_ARG_SRC_0 1
2283#define DNNL_ARG_SRC DNNL_ARG_SRC_0
2286#define DNNL_ARG_SRC_LAYER DNNL_ARG_SRC_0
2289#define DNNL_ARG_FROM DNNL_ARG_SRC_0
2290
2292#define DNNL_ARG_SRC_1 2
2295#define DNNL_ARG_SRC_ITER DNNL_ARG_SRC_1
2296
2298#define DNNL_ARG_SRC_2 3
2301#define DNNL_ARG_SRC_ITER_C DNNL_ARG_SRC_2
2302
2304#define DNNL_ARG_DST_0 17
2307#define DNNL_ARG_DST DNNL_ARG_DST_0
2310#define DNNL_ARG_TO DNNL_ARG_DST_0
2312#define DNNL_ARG_DST_LAYER DNNL_ARG_DST_0
2313
2315#define DNNL_ARG_DST_1 18
2318#define DNNL_ARG_DST_ITER DNNL_ARG_DST_1
2319
2321#define DNNL_ARG_DST_2 19
2324#define DNNL_ARG_DST_ITER_C DNNL_ARG_DST_2
2325
2327#define DNNL_ARG_WEIGHTS_0 33
2330#define DNNL_ARG_WEIGHTS DNNL_ARG_WEIGHTS_0
2333#define DNNL_ARG_SCALE_SHIFT DNNL_ARG_WEIGHTS_0
2336#define DNNL_ARG_WEIGHTS_LAYER DNNL_ARG_WEIGHTS_0
2337
2339#define DNNL_ARG_WEIGHTS_1 34
2342#define DNNL_ARG_WEIGHTS_ITER DNNL_ARG_WEIGHTS_1
2343
2345#define DNNL_ARG_WEIGHTS_2 35
2348#define DNNL_ARG_WEIGHTS_PEEPHOLE DNNL_ARG_WEIGHTS_2
2349
2351#define DNNL_ARG_WEIGHTS_3 36
2354#define DNNL_ARG_WEIGHTS_PROJECTION DNNL_ARG_WEIGHTS_3
2355
2357#define DNNL_ARG_BIAS 41
2358
2360#define DNNL_ARG_MEAN 49
2362#define DNNL_ARG_VARIANCE 50
2363
2366#define DNNL_ARG_WORKSPACE 64
2368#define DNNL_ARG_SCRATCHPAD 80
2369
2371#define DNNL_ARG_DIFF_SRC_0 129
2374#define DNNL_ARG_DIFF_SRC DNNL_ARG_DIFF_SRC_0
2377#define DNNL_ARG_DIFF_SRC_LAYER DNNL_ARG_DIFF_SRC_0
2378
2380#define DNNL_ARG_DIFF_SRC_1 130
2383#define DNNL_ARG_DIFF_SRC_ITER DNNL_ARG_DIFF_SRC_1
2384
2386#define DNNL_ARG_DIFF_SRC_2 131
2389#define DNNL_ARG_DIFF_SRC_ITER_C DNNL_ARG_DIFF_SRC_2
2390
2392#define DNNL_ARG_DIFF_DST_0 145
2395#define DNNL_ARG_DIFF_DST DNNL_ARG_DIFF_DST_0
2398#define DNNL_ARG_DIFF_DST_LAYER DNNL_ARG_DIFF_DST_0
2399
2401#define DNNL_ARG_DIFF_DST_1 146
2404#define DNNL_ARG_DIFF_DST_ITER DNNL_ARG_DIFF_DST_1
2405
2407#define DNNL_ARG_DIFF_DST_2 147
2410#define DNNL_ARG_DIFF_DST_ITER_C DNNL_ARG_DIFF_DST_2
2411
2413#define DNNL_ARG_DIFF_WEIGHTS_0 161
2416#define DNNL_ARG_DIFF_WEIGHTS DNNL_ARG_DIFF_WEIGHTS_0
2419#define DNNL_ARG_DIFF_SCALE_SHIFT DNNL_ARG_DIFF_WEIGHTS_0
2422#define DNNL_ARG_DIFF_WEIGHTS_LAYER DNNL_ARG_DIFF_WEIGHTS_0
2423
2425#define DNNL_ARG_DIFF_WEIGHTS_1 162
2428#define DNNL_ARG_DIFF_WEIGHTS_ITER DNNL_ARG_DIFF_WEIGHTS_1
2429
2431#define DNNL_ARG_DIFF_WEIGHTS_2 163
2434#define DNNL_ARG_DIFF_WEIGHTS_PEEPHOLE DNNL_ARG_DIFF_WEIGHTS_2
2435
2437#define DNNL_ARG_DIFF_WEIGHTS_3 164
2440#define DNNL_ARG_DIFF_WEIGHTS_PROJECTION DNNL_ARG_DIFF_WEIGHTS_3
2441
2443#define DNNL_ARG_DIFF_BIAS 169
2444
2446#define DNNL_ARG_ATTR_OUTPUT_SCALES 513
2447
2450#define DNNL_ARG_MULTIPLE_SRC 1024
2453#define DNNL_ARG_MULTIPLE_DST 2048
2454
2456#define DNNL_ARG_ATTR_ZERO_POINTS 4096
2457
2460#define DNNL_ARG_ATTR_POST_OP_DW 8192
2461
2463#define DNNL_ARG_ATTR_MULTIPLE_POST_OP_BASE 16384
2464
2467#define DNNL_ARG_ATTR_MULTIPLE_POST_OP(idx) \
2468 (DNNL_ARG_ATTR_MULTIPLE_POST_OP_BASE * ((idx) + 1))
2469
2470// XXX: next define should have a (1 << 20) = 1048576 value to preserve 5 bits
2471// for DNNL_ARG_ATTR_MULTIPLE_POST_OP argument.
2472
2475typedef struct {
2476 int arg;
2479
2481
2484
2514typedef enum {
2516
2519
2522
2528
2531
2533
2536
2538
2539 // memory and op descriptor section
2561
2562 // memory descriptor section
2573
2574 // Max value to prevent UB for internal use only dnnl_query_t
2575 dnnl_query_max = 0x7fff,
2576} dnnl_query_t;
2577
2579
2581
2584
2586typedef enum {
2587 // In-order execution.
2588 dnnl_stream_in_order = 0x1U,
2592 dnnl_stream_default_flags = dnnl_stream_in_order,
2594
2597struct dnnl_stream;
2601typedef const struct dnnl_stream *const_dnnl_stream_t;
2602
2604
2607
2609#define DNNL_RUNTIME_NONE 0u
2610
2612#define DNNL_RUNTIME_SEQ 1u
2613
2615#define DNNL_RUNTIME_OMP 2u
2616
2618#define DNNL_RUNTIME_TBB 4u
2619
2621#define DNNL_RUNTIME_THREADPOOL 8u
2622
2624#define DNNL_RUNTIME_OCL 256u
2625
2627#define DNNL_RUNTIME_SYCL 512u
2628
2630#define DNNL_RUNTIME_DPCPP DNNL_RUNTIME_SYCL
2631
2634typedef struct {
2635 int major;
2636 int minor;
2637 int patch;
2638 const char *hash;
2639 unsigned cpu_runtime;
2640 unsigned gpu_runtime;
2642
2644#define DNNL_JIT_PROFILE_NONE 0u
2645
2647#define DNNL_JIT_PROFILE_VTUNE 1u
2648
2650#define DNNL_JIT_PROFILE_LINUX_PERFMAP 2u
2651
2653#define DNNL_JIT_PROFILE_LINUX_JITDUMP 4u
2654
2657#define DNNL_JIT_PROFILE_LINUX_JITDUMP_USE_TSC 8u
2658
2660#define DNNL_JIT_PROFILE_LINUX_PERF \
2661 (DNNL_JIT_PROFILE_LINUX_JITDUMP | DNNL_JIT_PROFILE_LINUX_PERFMAP)
2662
2664typedef enum {
2667
2670
2673
2676
2680
2684
2688
2693
2698
2703
2706
2708
2710typedef enum {
2713
2717
2719
2721
2722#ifdef __cplusplus
2723}
2724#endif
2725
2726#endif /* ONEAPI_DNNL_TYPES_H */
struct dnnl_primitive_attr * dnnl_primitive_attr_t
A primitive descriptor attributes handle that controls primitive behavior.
Definition: dnnl_types.h:2235
struct dnnl_post_ops * dnnl_post_ops_t
A post operation chain handle.
Definition: dnnl_types.h:2261
const struct dnnl_primitive_attr * const_dnnl_primitive_attr_t
A constant primitive descriptor attributes handle.
Definition: dnnl_types.h:2238
const struct dnnl_post_ops * const_dnnl_post_ops_t
A constant post operation chain handle.
Definition: dnnl_types.h:2264
prop_kind
Propagation kind.
Definition: dnnl.hpp:435
dnnl_scratchpad_mode_t
Scratchpad mode.
Definition: dnnl_types.h:2201
@ dnnl_scratchpad_mode_user
The user manages the scratchpad allocation by querying and providing the scratchpad memory to primiti...
Definition: dnnl_types.h:2223
@ dnnl_scratchpad_mode_library
The library manages the scratchpad allocation according to the policy specified by the DNNL_ENABLE_CO...
Definition: dnnl_types.h:2218
dnnl_convolution_desc_t dnnl_deconvolution_desc_t
A descriptor of a deconvolution operation.
Definition: dnnl_types.h:1579
dnnl_engine_kind_t
Kinds of engines.
Definition: dnnl_types.h:2147
struct dnnl_engine * dnnl_engine_t
An engine handle.
Definition: dnnl_types.h:2160
@ dnnl_gpu
GPU engine.
Definition: dnnl_types.h:2153
@ dnnl_cpu
CPU engine.
Definition: dnnl_types.h:2151
@ dnnl_any_engine
An unspecified engine.
Definition: dnnl_types.h:2149
dnnl_softmax_desc_t dnnl_logsoftmax_desc_t
A descriptor of a LogSoftmax operation.
Definition: dnnl_types.h:1688
dnnl_data_type_t
Data type specification.
Definition: dnnl_types.h:62
const struct dnnl_memory * const_dnnl_memory_t
A constant memory handle.
Definition: dnnl_types.h:1502
#define DNNL_RNN_MAX_N_PARTS
Maximum number of parts of RNN weights tensor that require separate computation.
Definition: dnnl_types.h:1392
dnnl_memory_extra_flags_t
Flags for memory special features.
Definition: dnnl_types.h:1409
struct dnnl_memory * dnnl_memory_t
A memory handle.
Definition: dnnl_types.h:1499
dnnl_format_tag_t
Memory format tag specification.
Definition: dnnl_types.h:164
dnnl_dim_t dnnl_dims_t[DNNL_MAX_NDIMS]
A type to describe tensor dimensions.
Definition: dnnl_types.h:1336
int64_t dnnl_dim_t
A type to describe tensor dimension.
Definition: dnnl_types.h:1333
dnnl_format_kind_t
Memory format kind.
Definition: dnnl_types.h:80
#define DNNL_MAX_NDIMS
Maximum number of dimensions a tensor can have.
Definition: dnnl_types.h:1301
dnnl_wino_memory_format_t
Winograd-specific formats.
Definition: dnnl_types.h:1357
@ dnnl_f16
16-bit/half-precision floating point.
Definition: dnnl_types.h:66
@ dnnl_bf16
non-standard 16-bit (bfloat16 w/ 7 bit mantissa) floating point.
Definition: dnnl_types.h:68
@ dnnl_f32
32-bit/single-precision floating point.
Definition: dnnl_types.h:70
@ dnnl_data_type_undef
Undefined data type, used for empty memory descriptors.
Definition: dnnl_types.h:64
@ dnnl_s8
8-bit signed integer.
Definition: dnnl_types.h:74
@ dnnl_s32
32-bit signed integer.
Definition: dnnl_types.h:72
@ dnnl_u8
8-bit unsigned integer.
Definition: dnnl_types.h:76
@ dnnl_memory_extra_flag_compensation_conv_s8s8
Indicates the weights have an additional buffer, that depends on the compensation_mask.
Definition: dnnl_types.h:1418
@ dnnl_abcdefhg
permuted 8D tensor
Definition: dnnl_types.h:216
@ dnnl_hwigo
5D CNN weights tensor (incl. groups), an alias to dnnl_decab
Definition: dnnl_types.h:616
@ dnnl_aBCdef2b4c2b
6D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:362
@ dnnl_abcdefghi
plain 9D tensor
Definition: dnnl_types.h:186
@ dnnl_acdeb
permuted 5D tensor
Definition: dnnl_types.h:199
@ dnnl_oihw
4D CNN weights tensor, an alias to dnnl_abcd
Definition: dnnl_types.h:585
@ dnnl_cn
2D CNN activations tensor, an alias to dnnl_ba
Definition: dnnl_types.h:552
@ dnnl_abcdefgh
plain 8D tensor
Definition: dnnl_types.h:185
@ dnnl_iohw
4D CNN weights tensor, an alias to dnnl_bacd
Definition: dnnl_types.h:593
@ dnnl_ldgOi32o
6D RNN weights tensor
Definition: dnnl_types.h:670
@ dnnl_nChw32c
4D CNN activations tensor blocked by channels with block size 32, an alias to dnnl_aBcd32b
Definition: dnnl_types.h:691
@ dnnl_oidhw
5D CNN weights tensor, an alias to dnnl_abcde
Definition: dnnl_types.h:595
@ dnnl_abcdefghikj
permuted 11D tensor
Definition: dnnl_types.h:219
@ dnnl_ab
plain 2D tensor
Definition: dnnl_types.h:178
@ dnnl_ABcd8b8a
4D tensor blocked by 1st and 2nd dimension with block size 8
Definition: dnnl_types.h:288
@ dnnl_cdba
permuted 4D tensor
Definition: dnnl_types.h:208
@ dnnl_abcdefghijkl
plain 12D tensor
Definition: dnnl_types.h:189
@ dnnl_owi
3D CNN weights tensor, an alias to dnnl_acb
Definition: dnnl_types.h:579
@ dnnl_aBcdef4b
6D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:364
@ dnnl_wigo
4D CNN weights tensor (incl. groups), an alias to dnnl_dcab
Definition: dnnl_types.h:610
@ dnnl_gohwi
5D CNN weights tensor (incl. groups), an alias to dnnl_abdec
Definition: dnnl_types.h:614
@ dnnl_abcdegf
permuted 7D tensor
Definition: dnnl_types.h:215
@ dnnl_tnc
3D RNN data tensor in the format (seq_length, batch, input channels), an alias to dnnl_abc.
Definition: dnnl_types.h:630
@ dnnl_ldgo
4D RNN bias tensor in the format (num_layers, num_directions, num_gates, output_channels),...
Definition: dnnl_types.h:665
@ dnnl_ldOi32o
5D LSTM projection tensor
Definition: dnnl_types.h:667
@ dnnl_ldio
4D LSTM projection tensor in the format (num_layers, num_directions, num_channels_in_hidden_state,...
Definition: dnnl_types.h:654
@ dnnl_abcdfe
permuted 6D tensor
Definition: dnnl_types.h:214
@ dnnl_aBcd4b
4D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:263
@ dnnl_nCdhw16c
5D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcde16b
Definition: dnnl_types.h:682
@ dnnl_abcde
plain 5D tensor
Definition: dnnl_types.h:182
@ dnnl_decab
permuted 5D tensor
Definition: dnnl_types.h:211
@ dnnl_bca
permuted 3D tensor
Definition: dnnl_types.h:204
@ dnnl_aBcde4b
5D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:315
@ dnnl_aBc16b
3D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:229
@ dnnl_godhwi
6D CNN weights tensor (incl. groups), an alias to dnnl_abdefc
Definition: dnnl_types.h:622
@ dnnl_aBcdef16b
6D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:354
@ dnnl_giodhw
6D CNN weights tensor (incl. groups), an alias to dnnl_acbdef
Definition: dnnl_types.h:624
@ dnnl_aBCde2b4c2b
5D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:352
@ dnnl_io
2D CNN weights tensor, an alias to dnnl_ba
Definition: dnnl_types.h:575
@ dnnl_ldoi
4D LSTM projection tensor in the format (num_layers, num_directions, num_channels_in_recurrent_projec...
Definition: dnnl_types.h:658
@ dnnl_aBc4b
3D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:235
@ dnnl_hwio
4D CNN weights tensor, an alias to dnnl_cdba
Definition: dnnl_types.h:587
@ dnnl_ldnc
4D RNN states tensor in the format (num_layers, num_directions, batch, state channels),...
Definition: dnnl_types.h:636
@ dnnl_gowi
4D CNN weights tensor (incl. groups), an alias to dnnl_abdc
Definition: dnnl_types.h:608
@ dnnl_abcdefghijk
plain 11D tensor
Definition: dnnl_types.h:188
@ dnnl_bacde
permuted 5D tensor
Definition: dnnl_types.h:203
@ dnnl_aBcd16b
4D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:255
@ dnnl_cba
permuted 3D tensor
Definition: dnnl_types.h:207
@ dnnl_nCw32c
3D CNN activations tensor blocked by channels with block size 32, an alias to dnnl_aBc32b
Definition: dnnl_types.h:703
@ dnnl_ntc
3D RNN data tensor in the format (batch, seq_length, input channels), an alias to dnnl_bac.
Definition: dnnl_types.h:633
@ dnnl_ldgoi
5D RNN weights tensor in the format (num_layers, num_directions, num_gates, output_channels,...
Definition: dnnl_types.h:650
@ dnnl_goidhw
6D CNN weights tensor (incl. groups), an alias to dnnl_abcdef
Definition: dnnl_types.h:620
@ dnnl_ba
permuted 2D tensor
Definition: dnnl_types.h:200
@ dnnl_acbd
plain 4D tensor
Definition: dnnl_types.h:181
@ dnnl_ABcde2b8a4b
5D tensor blocked by 1st dimension with block size 8
Definition: dnnl_types.h:304
@ dnnl_abcd
plain 4D tensor
Definition: dnnl_types.h:180
@ dnnl_format_tag_undef
Undefined memory format tag.
Definition: dnnl_types.h:166
@ dnnl_idhwo
5D CNN weights tensor, an alias to dnnl_bcdea
Definition: dnnl_types.h:603
@ dnnl_nCdhw4c
5D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcde4b
Definition: dnnl_types.h:685
@ dnnl_defcab
permuted 6D tensor
Definition: dnnl_types.h:212
@ dnnl_abcdef
plain 6D tensor
Definition: dnnl_types.h:183
@ dnnl_ohwi
4D CNN weights tensor, an alias to dnnl_acdb
Definition: dnnl_types.h:589
@ dnnl_nCdhw32c
5D CNN activations tensor blocked by channels with block size 32, an alias to dnnl_aBcde32b
Definition: dnnl_types.h:679
@ dnnl_nChw8c
4D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcd8b
Definition: dnnl_types.h:700
@ dnnl_iwo
3D CNN weights tensor, an alias to dnnl_bca
Definition: dnnl_types.h:583
@ dnnl_a
plain 1D tensor
Definition: dnnl_types.h:177
@ dnnl_goiw
4D CNN weights tensor (incl. groups), an alias to dnnl_abcd
Definition: dnnl_types.h:606
@ dnnl_nt
2D RNN statistics tensor, an alias to dnnl_ba
Definition: dnnl_types.h:556
@ dnnl_nChw4c
4D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcd4b
Definition: dnnl_types.h:697
@ dnnl_dhwigo
6D CNN weights tensor (incl. groups), an alias to dnnl_defcab
Definition: dnnl_types.h:626
@ dnnl_nchw
4D CNN activations tensor, an alias to dnnl_abcd
Definition: dnnl_types.h:562
@ dnnl_acbdef
permuted 6D tensor
Definition: dnnl_types.h:197
@ dnnl_acdb
permuted 4D tensor
Definition: dnnl_types.h:198
@ dnnl_wio
3D CNN weights tensor, an alias to dnnl_cba
Definition: dnnl_types.h:581
@ dnnl_aBcd8b
4D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:282
@ dnnl_iodhw
5D CNN weights tensor, an alias to dnnl_bacde
Definition: dnnl_types.h:597
@ dnnl_ldigo
5D RNN weights tensor in the format (num_layers, num_directions, input_channels, num_gates,...
Definition: dnnl_types.h:643
@ dnnl_aBc8b
3D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:245
@ dnnl_x
1D tensor, an alias to dnnl_a
Definition: dnnl_types.h:548
@ dnnl_nwc
3D CNN activations tensor, an alias to dnnl_acb
Definition: dnnl_types.h:560
@ dnnl_ndhwc
5D CNN activations tensor, an alias to dnnl_acdeb
Definition: dnnl_types.h:570
@ dnnl_nCw4c
3D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBc4b
Definition: dnnl_types.h:709
@ dnnl_abcdefg
plain 7D tensor
Definition: dnnl_types.h:184
@ dnnl_aBcde8b
5D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:330
@ dnnl_nChw16c
4D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcd16b
Definition: dnnl_types.h:694
@ dnnl_abdfce
permuted 6D tensor
Definition: dnnl_types.h:424
@ dnnl_abdec
permuted 5D tensor
Definition: dnnl_types.h:194
@ dnnl_chwn
4D CNN activations tensor, an alias to dnnl_bcda
Definition: dnnl_types.h:566
@ dnnl_bacd
permuted 4D tensor
Definition: dnnl_types.h:202
@ dnnl_ncw
3D CNN activations tensor, an alias to dnnl_abc
Definition: dnnl_types.h:558
@ dnnl_nCdhw8c
5D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcde8b
Definition: dnnl_types.h:688
@ dnnl_aBcde32b
5D tensor blocked by 2nd dimension with block size 32
Definition: dnnl_types.h:313
@ dnnl_nc
2D CNN activations tensor, an alias to dnnl_ab
Definition: dnnl_types.h:550
@ dnnl_tn
2D RNN statistics tensor, an alias to dnnl_ab
Definition: dnnl_types.h:554
@ dnnl_abced
permuted 5D tensor
Definition: dnnl_types.h:213
@ dnnl_bcda
permuted 4D tensor
Definition: dnnl_types.h:205
@ dnnl_acbde
permuted 5D tensor
Definition: dnnl_types.h:196
@ dnnl_aBCd2b4c2b
4D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:300
@ dnnl_abcdefgih
permuted 9D tensor
Definition: dnnl_types.h:217
@ dnnl_bcdea
permuted 5D tensor
Definition: dnnl_types.h:206
@ dnnl_abdefc
permuted 6D tensor
Definition: dnnl_types.h:425
@ dnnl_aBcde16b
5D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:306
@ dnnl_nCw8c
3D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBc8b
Definition: dnnl_types.h:712
@ dnnl_abdc
permuted 4D tensor
Definition: dnnl_types.h:193
@ dnnl_ABcde4b16a4b
5D tensor blocked by 1st dimension with block size 16
Definition: dnnl_types.h:302
@ dnnl_aBcd32b
4D tensor blocked by 2nd dimension with block size 32
Definition: dnnl_types.h:261
@ dnnl_abcdefghijlk
permuted 12D tensor
Definition: dnnl_types.h:220
@ dnnl_format_tag_last
Just a sentinel, not real memory format tag.
Definition: dnnl_types.h:543
@ dnnl_odhwi
5D CNN weights tensor, an alias to dnnl_acdeb
Definition: dnnl_types.h:601
@ dnnl_abc
plain 3D tensor
Definition: dnnl_types.h:179
@ dnnl_bac
permuted 3D tensor
Definition: dnnl_types.h:201
@ dnnl_ncdhw
5D CNN activations tensor, an alias to dnnl_abcde
Definition: dnnl_types.h:568
@ dnnl_dhwio
5D CNN weights tensor, an alias to dnnl_cdeba
Definition: dnnl_types.h:599
@ dnnl_nhwc
4D CNN activations tensor, an alias to dnnl_acdb
Definition: dnnl_types.h:564
@ dnnl_oiw
3D CNN weights tensor, an alias to dnnl_abc
Definition: dnnl_types.h:577
@ dnnl_dcab
permuted 4D tensor
Definition: dnnl_types.h:209
@ dnnl_cdeba
permuted 5D tensor
Definition: dnnl_types.h:210
@ dnnl_giohw
5D CNN weights tensor (incl. groups), an alias to dnnl_acbde
Definition: dnnl_types.h:618
@ dnnl_goihw
5D CNN weights tensor (incl. groups), an alias to dnnl_abcde
Definition: dnnl_types.h:612
@ dnnl_oi
2D CNN weights tensor, an alias to dnnl_ab
Definition: dnnl_types.h:573
@ dnnl_ihwo
4D CNN weights tensor, an alias to dnnl_bcda
Definition: dnnl_types.h:591
@ dnnl_acb
permuted 3D tensor
Definition: dnnl_types.h:195
@ dnnl_aBc32b
3D tensor blocked by 2nd dimension with block size 32
Definition: dnnl_types.h:233
@ dnnl_abcdefghji
permuted 10D tensor
Definition: dnnl_types.h:218
@ dnnl_nCw16c
3D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBc16b
Definition: dnnl_types.h:706
@ dnnl_aBCdef2c8b4c
6D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:359
@ dnnl_abcdefghij
plain 10D tensor
Definition: dnnl_types.h:187
@ dnnl_format_tag_any
Undefined memory format tag.
Definition: dnnl_types.h:169
@ dnnl_blocked
A tensor in a generic format described by the stride and blocking values in each dimension.
Definition: dnnl_types.h:89
@ dnnl_format_kind_wino
Weights format used in 8bit Winograd convolution.
Definition: dnnl_types.h:91
@ dnnl_format_kind_any
Unspecified format kind.
Definition: dnnl_types.h:85
@ dnnl_format_kind_undef
Undefined memory format kind, used for empty memory descriptors.
Definition: dnnl_types.h:82
@ dnnl_format_kind_rnn_packed
Packed weights format used in RNN.
Definition: dnnl_types.h:93
@ dnnl_wino_wei_OBaaIBOIio
Internal weights format for 4x3 Winograd.
Definition: dnnl_types.h:1365
@ dnnl_wino_wei_aaOio
Internal weights format for 2x3 Winograd.
Definition: dnnl_types.h:1362
@ dnnl_wino_wei_aaOBiOo
Internal weights format for 2x3 Winograd.
Definition: dnnl_types.h:1363
@ dnnl_wino_undef
Undefined memory format, used for empty memory descriptors.
Definition: dnnl_types.h:1359
@ dnnl_wino_wei_aaOIoi
Internal weights format for 2x3 Winograd.
Definition: dnnl_types.h:1361
struct dnnl_primitive * dnnl_primitive_t
A primitive handle.
Definition: dnnl_types.h:2275
struct dnnl_primitive_desc_iterator * dnnl_primitive_desc_iterator_t
A primitive descriptor iterator handle.
Definition: dnnl_types.h:2179
dnnl_normalization_flags_t
Flags for normalization primitives.
Definition: dnnl_types.h:1241
const struct dnnl_primitive * const_dnnl_primitive_t
A constant primitive handle.
Definition: dnnl_types.h:2277
const void * const_dnnl_op_desc_t
A pointer to any of the operation descriptors (constant variant).
Definition: dnnl_types.h:1522
void * dnnl_op_desc_t
A pointer to any of the operation descriptors.
Definition: dnnl_types.h:1520
dnnl_alg_kind_t
Kinds of algorithms.
Definition: dnnl_types.h:1107
dnnl_primitive_kind_t
Kinds of primitives.
Definition: dnnl_types.h:1053
dnnl_query_t
Primitive descriptor query specification.
Definition: dnnl_types.h:2514
struct dnnl_primitive_desc * dnnl_primitive_desc_t
A primitive descriptor handle.
Definition: dnnl_types.h:2190
const struct dnnl_primitive_desc * const_dnnl_primitive_desc_t
A constant primitive descriptor handle.
Definition: dnnl_types.h:2193
dnnl_prop_kind_t
Kinds of propagation.
Definition: dnnl_types.h:1026
const struct dnnl_primitive_desc_iterator * const_dnnl_primitive_desc_iterator_t
A constant primitive descriptor iterator handle.
Definition: dnnl_types.h:2182
@ dnnl_fuse_norm_relu
Fuse with ReLU.
Definition: dnnl_types.h:1289
@ dnnl_normalization_flags_none
Use no normalization flags.
Definition: dnnl_types.h:1250
@ dnnl_use_scaleshift
Use scale and shift parameters.
Definition: dnnl_types.h:1276
@ dnnl_use_global_stats
Use global statistics.
Definition: dnnl_types.h:1263
@ dnnl_pooling_avg_exclude_padding
Average pooling exclude padding.
Definition: dnnl_types.h:1183
@ dnnl_eltwise_clip
Eltwise: clip.
Definition: dnnl_types.h:1153
@ dnnl_eltwise_tanh_use_dst_for_bwd
Eltwise: hyperbolic tangent non-linearity (tanh) (dst for backward)
Definition: dnnl_types.h:1167
@ dnnl_eltwise_logsigmoid
Eltwise: logsigmoid.
Definition: dnnl_types.h:1163
@ dnnl_pooling_avg
Average pooling (alias for dnnl_pooling_avg_exclude_padding)
Definition: dnnl_types.h:1185
@ dnnl_eltwise_gelu_tanh
Eltwise: gelu.
Definition: dnnl_types.h:1145
@ dnnl_resampling_linear
Linear Resampling Method.
Definition: dnnl_types.h:1219
@ dnnl_eltwise_sqrt
Eltwise: square root.
Definition: dnnl_types.h:1130
@ dnnl_binary_min
Binary min.
Definition: dnnl_types.h:1211
@ dnnl_reduction_norm_lp_sum
Reduction using lp norm.
Definition: dnnl_types.h:1233
@ dnnl_eltwise_abs
Eltwise: abs.
Definition: dnnl_types.h:1128
@ dnnl_reduction_norm_lp_power_p_max
Reduction using lp norm without final pth-root.
Definition: dnnl_types.h:1235
@ dnnl_reduction_min
Reduction using min.
Definition: dnnl_types.h:1223
@ dnnl_eltwise_sqrt_use_dst_for_bwd
Eltwise: square root (dst for backward)
Definition: dnnl_types.h:1171
@ dnnl_eltwise_exp
Eltwise: exponent.
Definition: dnnl_types.h:1140
@ dnnl_eltwise_square
Eltwise: square.
Definition: dnnl_types.h:1126
@ dnnl_eltwise_gelu
Eltwise: tanh-based gelu (alias for dnnl_eltwise_gelu_tanh)
Definition: dnnl_types.h:1147
@ dnnl_convolution_winograd
Winograd convolution.
Definition: dnnl_types.h:1112
@ dnnl_eltwise_clip_v2_use_dst_for_bwd
Eltwise: clip version 2 (dst for backward)
Definition: dnnl_types.h:1177
@ dnnl_lrn_across_channels
Local response normalization (LRN) across multiple channels.
Definition: dnnl_types.h:1187
@ dnnl_binary_sub
Binary sub.
Definition: dnnl_types.h:1215
@ dnnl_deconvolution_direct
Direct deconvolution.
Definition: dnnl_types.h:1116
@ dnnl_eltwise_relu
Eltwise: ReLU.
Definition: dnnl_types.h:1120
@ dnnl_convolution_auto
Convolution algorithm(either direct or Winograd) is chosen just in time.
Definition: dnnl_types.h:1114
@ dnnl_eltwise_swish
Eltwise: swish.
Definition: dnnl_types.h:1149
@ dnnl_vanilla_rnn
RNN cell.
Definition: dnnl_types.h:1191
@ dnnl_eltwise_gelu_erf
Eltwise: erf-based gelu.
Definition: dnnl_types.h:1159
@ dnnl_vanilla_lstm
LSTM cell.
Definition: dnnl_types.h:1193
@ dnnl_eltwise_elu
Eltwise: exponential linear unit (elu)
Definition: dnnl_types.h:1124
@ dnnl_vanilla_gru
GRU cell.
Definition: dnnl_types.h:1195
@ dnnl_lbr_gru
GRU cell with linear before reset.
Definition: dnnl_types.h:1203
@ dnnl_eltwise_tanh
Eltwise: hyperbolic tangent non-linearity (tanh)
Definition: dnnl_types.h:1122
@ dnnl_convolution_direct
Direct convolution.
Definition: dnnl_types.h:1110
@ dnnl_eltwise_soft_relu
Eltwise: soft_relu.
Definition: dnnl_types.h:1136
@ dnnl_eltwise_log
Eltwise: natural logarithm.
Definition: dnnl_types.h:1151
@ dnnl_eltwise_clip_v2
Eltwise: clip version 2.
Definition: dnnl_types.h:1155
@ dnnl_lrn_within_channel
LRN within a single channel.
Definition: dnnl_types.h:1189
@ dnnl_eltwise_elu_use_dst_for_bwd
Eltwise: exponential linear unit (elu) (dst for backward)
Definition: dnnl_types.h:1169
@ dnnl_deconvolution_winograd
Winograd deconvolution.
Definition: dnnl_types.h:1118
@ dnnl_reduction_mul
Reduction using mul.
Definition: dnnl_types.h:1227
@ dnnl_eltwise_pow
Eltwise: pow.
Definition: dnnl_types.h:1157
@ dnnl_eltwise_relu_use_dst_for_bwd
Eltwise: ReLU (dst for backward)
Definition: dnnl_types.h:1165
@ dnnl_reduction_max
Reduction using max.
Definition: dnnl_types.h:1221
@ dnnl_eltwise_logistic
Eltwise: logistic.
Definition: dnnl_types.h:1138
@ dnnl_pooling_avg_include_padding
Average pooling include padding.
Definition: dnnl_types.h:1181
@ dnnl_reduction_mean
Reduction using mean.
Definition: dnnl_types.h:1229
@ dnnl_pooling_max
Max pooling.
Definition: dnnl_types.h:1179
@ dnnl_eltwise_logistic_use_dst_for_bwd
Eltwise: logistic (dst for backward)
Definition: dnnl_types.h:1173
@ dnnl_binary_add
Binary add.
Definition: dnnl_types.h:1205
@ dnnl_binary_div
Binary div.
Definition: dnnl_types.h:1213
@ dnnl_reduction_norm_lp_max
Reduction using lp norm.
Definition: dnnl_types.h:1231
@ dnnl_reduction_norm_lp_power_p_sum
Reduction using lp norm without final pth-root.
Definition: dnnl_types.h:1237
@ dnnl_eltwise_round
Eltwise: round.
Definition: dnnl_types.h:1161
@ dnnl_binary_mul
Binary mul.
Definition: dnnl_types.h:1207
@ dnnl_reduction_sum
Reduction using sum.
Definition: dnnl_types.h:1225
@ dnnl_eltwise_exp_use_dst_for_bwd
Eltwise: exp (dst for backward)
Definition: dnnl_types.h:1175
@ dnnl_eltwise_bounded_relu
Eltwise: bounded_relu.
Definition: dnnl_types.h:1134
@ dnnl_eltwise_linear
Eltwise: linear.
Definition: dnnl_types.h:1132
@ dnnl_resampling_nearest
Nearest Neighbor Resampling Method.
Definition: dnnl_types.h:1217
@ dnnl_binary_max
Binary max.
Definition: dnnl_types.h:1209
@ dnnl_binary
A binary primitive.
Definition: dnnl_types.h:1087
@ dnnl_concat
A (out-of-place) concat primitive.
Definition: dnnl_types.h:1061
@ dnnl_reorder
A reorder primitive.
Definition: dnnl_types.h:1057
@ dnnl_primitive_kind_max
Parameter to allow internal only primitives without undefined behavior.
Definition: dnnl_types.h:1103
@ dnnl_gemm
A matrix multiplication primitive (internal).
Definition: dnnl_types.h:1085
@ dnnl_convolution
A convolution primitive.
Definition: dnnl_types.h:1065
@ dnnl_inner_product
An inner product primitive.
Definition: dnnl_types.h:1081
@ dnnl_resampling
A resampling primitive.
Definition: dnnl_types.h:1093
@ dnnl_batch_normalization
A batch normalization primitive.
Definition: dnnl_types.h:1077
@ dnnl_undefined_primitive
Undefined primitive.
Definition: dnnl_types.h:1055
@ dnnl_sum
A sum primitive.
Definition: dnnl_types.h:1063
@ dnnl_pooling_v2
A pooling version 2 primitive (pooling with dilation support).
Definition: dnnl_types.h:1095
@ dnnl_layer_normalization
A layer normalization primitive.
Definition: dnnl_types.h:1079
@ dnnl_prelu
A PReLU primitive.
Definition: dnnl_types.h:1099
@ dnnl_eltwise
An element-wise primitive.
Definition: dnnl_types.h:1069
@ dnnl_matmul
A matrix multiplication primitive.
Definition: dnnl_types.h:1091
@ dnnl_shuffle
A shuffle primitive.
Definition: dnnl_types.h:1059
@ dnnl_logsoftmax
A logsoftmax primitive.
Definition: dnnl_types.h:1089
@ dnnl_pooling
A pooling primitive.
Definition: dnnl_types.h:1073
@ dnnl_deconvolution
A deconvolution primitive.
Definition: dnnl_types.h:1067
@ dnnl_softmax
A softmax primitive.
Definition: dnnl_types.h:1071
@ dnnl_rnn
A rnn primitive.
Definition: dnnl_types.h:1083
@ dnnl_reduction
A reduction primitive.
Definition: dnnl_types.h:1097
@ dnnl_lrn
An LRN primitive.
Definition: dnnl_types.h:1075
@ dnnl_query_resampling_d
resampling descriptor
Definition: dnnl_types.h:2557
@ dnnl_query_num_of_outputs_s32
number of outputs expected
Definition: dnnl_types.h:2521
@ dnnl_query_some_md
stub
Definition: dnnl_types.h:2563
@ dnnl_query_convolution_d
convolution descriptor
Definition: dnnl_types.h:2542
@ dnnl_query_weights_md
weights memory descriptor desc
Definition: dnnl_types.h:2566
@ dnnl_query_src_md
source memory desc
Definition: dnnl_types.h:2564
@ dnnl_query_softmax_d
softmax descriptor
Definition: dnnl_types.h:2546
@ dnnl_query_binary_d
binary descriptor
Definition: dnnl_types.h:2554
@ dnnl_query_workspace_md
workspace memory desc
Definition: dnnl_types.h:2570
@ dnnl_query_matmul_d
matrix multiplication (matmul) descriptor
Definition: dnnl_types.h:2556
@ dnnl_query_num_of_inputs_s32
number of inputs expected
Definition: dnnl_types.h:2520
@ dnnl_query_op_d
op descriptor
Definition: dnnl_types.h:2541
@ dnnl_query_diff_src_md
source gradient memory desc
Definition: dnnl_types.h:2565
@ dnnl_query_scratchpad_md
scratchpad memory desc
Definition: dnnl_types.h:2571
@ dnnl_query_shuffle_d
shuffle descriptor
Definition: dnnl_types.h:2544
@ dnnl_query_memory_consumption_s64
memory consumption – extra
Definition: dnnl_types.h:2524
@ dnnl_query_inner_product_d
inner product descriptor
Definition: dnnl_types.h:2551
@ dnnl_query_deconvolution_d
deconvolution descriptor
Definition: dnnl_types.h:2543
@ dnnl_query_primitive_kind
primitive kind
Definition: dnnl_types.h:2518
@ dnnl_query_some_d
stub
Definition: dnnl_types.h:2540
@ dnnl_query_batch_normalization_d
batch normalization descriptor
Definition: dnnl_types.h:2549
@ dnnl_query_impl_info_str
for creating scratchpad memory
Definition: dnnl_types.h:2532
@ dnnl_query_time_estimate_f64
runtime estimation (seconds)
Definition: dnnl_types.h:2523
@ dnnl_query_eltwise_d
eltwise descriptor
Definition: dnnl_types.h:2545
@ dnnl_query_pooling_v2_d
pooling version 2 descriptor
Definition: dnnl_types.h:2558
@ dnnl_query_diff_weights_md
weights grad. memory desc
Definition: dnnl_types.h:2567
@ dnnl_query_reduction_d
reduction descriptor
Definition: dnnl_types.h:2559
@ dnnl_query_gemm_d
GEMM descriptor (internal)
Definition: dnnl_types.h:2553
@ dnnl_query_reorder_dst_engine
destination engine
Definition: dnnl_types.h:2535
@ dnnl_query_reorder_src_engine
source engine
Definition: dnnl_types.h:2534
@ dnnl_query_scratchpad_engine
(scratch) memory, additional to all inputs and outputs memory (bytes)
Definition: dnnl_types.h:2529
@ dnnl_query_undef
no query
Definition: dnnl_types.h:2515
@ dnnl_query_prop_kind
propagation kind
Definition: dnnl_types.h:2537
@ dnnl_query_pooling_d
pooling descriptor
Definition: dnnl_types.h:2547
@ dnnl_query_exec_arg_md
memory desc of an execute argument
Definition: dnnl_types.h:2572
@ dnnl_query_engine
execution engine
Definition: dnnl_types.h:2517
@ dnnl_query_rnn_d
rnn descriptor
Definition: dnnl_types.h:2552
@ dnnl_query_layer_normalization_d
layer normalization descriptor
Definition: dnnl_types.h:2550
@ dnnl_query_lrn_d
lrn descriptor
Definition: dnnl_types.h:2548
@ dnnl_query_dst_md
destination memory desc
Definition: dnnl_types.h:2568
@ dnnl_query_diff_dst_md
destination grad. memory desc
Definition: dnnl_types.h:2569
@ dnnl_query_prelu_d
prelu descriptor
Definition: dnnl_types.h:2560
@ dnnl_query_logsoftmax_d
logsoftmax descriptor
Definition: dnnl_types.h:2555
@ dnnl_backward_weights
Backward weights propagation.
Definition: dnnl_types.h:1046
@ dnnl_forward_inference
Forward data propagation (inference mode).
Definition: dnnl_types.h:1036
@ dnnl_backward
Backward propagation (with respect to all parameters).
Definition: dnnl_types.h:1042
@ dnnl_backward_data
Backward data propagation.
Definition: dnnl_types.h:1044
@ dnnl_prop_kind_undef
Undefined propagation type.
Definition: dnnl_types.h:1029
@ dnnl_forward
Forward data propagation (alias for dnnl_forward_training).
Definition: dnnl_types.h:1040
@ dnnl_forward_training
Forward data propagation (training mode).
Definition: dnnl_types.h:1032
@ dnnl_backward_bias
Backward bias propagation.
Definition: dnnl_types.h:1048
@ dnnl_forward_scoring
Forward data propagation (alias for dnnl_forward_inference).
Definition: dnnl_types.h:1038
dnnl_rnn_flags_t
Flags for RNN cell.
Definition: dnnl_types.h:1931
dnnl_rnn_direction_t
A direction of RNN primitive execution.
Definition: dnnl_types.h:1937
@ dnnl_rnn_flags_undef
Undefined RNN flags.
Definition: dnnl_types.h:1933
@ dnnl_unidirectional
Alias for dnnl_unidirectional_left2right.
Definition: dnnl_types.h:1949
@ dnnl_bidirectional_concat
Bidirectional execution of RNN primitive with concatenation of the results.
Definition: dnnl_types.h:1944
@ dnnl_bidirectional_sum
Bidirectional execution of RNN primitive with summation of the results.
Definition: dnnl_types.h:1947
@ dnnl_unidirectional_left2right
Unidirectional execution of RNN primitive from left to right.
Definition: dnnl_types.h:1939
@ dnnl_unidirectional_right2left
Unidirectional execution of RNN primitive from right to left.
Definition: dnnl_types.h:1941
dnnl_cpu_isa_t
CPU instruction set flags.
Definition: dnnl_types.h:2664
dnnl_cpu_isa_hints_t
CPU ISA hints flags.
Definition: dnnl_types.h:2710
@ dnnl_cpu_isa_avx512_mic
Intel Advanced Vector Extensions 512 (Intel AVX-512) subset for Intel Xeon Phi processors x200 Series...
Definition: dnnl_types.h:2679
@ dnnl_cpu_isa_avx
Intel Advanced Vector Extensions (Intel AVX)
Definition: dnnl_types.h:2672
@ dnnl_cpu_isa_avx512_core_amx
Intel AVX-512, Intel DL Boost and bfloat16 support and Intel AMX with 8-bit integer and bfloat16 supp...
Definition: dnnl_types.h:2702
@ dnnl_cpu_isa_avx512_core_vnni
Intel AVX-512 and Intel Deep Learning Boost (Intel DL Boost) support for Intel Xeon Scalable processo...
Definition: dnnl_types.h:2692
@ dnnl_cpu_isa_avx2
Intel Advanced Vector Extensions 2 (Intel AVX2)
Definition: dnnl_types.h:2675
@ dnnl_cpu_isa_all
Any ISA (excepting those listed as initial support)
Definition: dnnl_types.h:2666
@ dnnl_cpu_isa_avx512_core
Intel AVX-512 subset for Intel Xeon Scalable processor family and Intel Core processor family.
Definition: dnnl_types.h:2687
@ dnnl_cpu_isa_sse41
Intel Streaming SIMD Extensions 4.1 (Intel SSE4.1)
Definition: dnnl_types.h:2669
@ dnnl_cpu_isa_avx2_vnni
Intel AVX2 and Intel Deep Learning Boost (Intel DL Boost) support.
Definition: dnnl_types.h:2705
@ dnnl_cpu_isa_avx512_core_bf16
Intel AVX-512, Intel DL Boost and bfloat16 support for Intel Xeon Scalable processor family and Intel...
Definition: dnnl_types.h:2697
@ dnnl_cpu_isa_avx512_mic_4ops
Intel AVX-512 subset for Intel Xeon Phi processors 7235, 7285, 7295 Series.
Definition: dnnl_types.h:2683
@ dnnl_cpu_isa_no_hints
No hints (use default features)
Definition: dnnl_types.h:2712
@ dnnl_cpu_isa_prefer_ymm
Prefer to exclusively use Ymm registers for computations.
Definition: dnnl_types.h:2715
dnnl_stream_flags_t
Stream flags.
Definition: dnnl_types.h:2586
struct dnnl_stream * dnnl_stream_t
An execution stream handle.
Definition: dnnl_types.h:2599
const struct dnnl_stream * const_dnnl_stream_t
A constant execution stream handle.
Definition: dnnl_types.h:2601
@ dnnl_stream_out_of_order
Out-of-order execution.
Definition: dnnl_types.h:2590
@ dnnl_stream_default_flags
Default stream configuration.
Definition: dnnl_types.h:2592
dnnl_status_t
Status values returned by the library functions.
Definition: dnnl_types.h:39
@ dnnl_iterator_ends
Primitive iterator passed over last primitive descriptor.
Definition: dnnl_types.h:49
@ dnnl_runtime_error
Primitive or engine failed on execution.
Definition: dnnl_types.h:51
@ dnnl_unimplemented
The operation failed because requested functionality is not implemented.
Definition: dnnl_types.h:47
@ dnnl_out_of_memory
The operation failed due to an out-of-memory condition.
Definition: dnnl_types.h:43
@ dnnl_success
The operation was successful.
Definition: dnnl_types.h:41
@ dnnl_invalid_arguments
The operation failed because of incorrect function arguments.
Definition: dnnl_types.h:45
@ dnnl_not_required
Queried element is not required for given primitive.
Definition: dnnl_types.h:53
A descriptor of a Batch Normalization operation.
Definition: dnnl_types.h:1827
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1835
dnnl_memory_desc_t data_scaleshift_desc
Scale and shift data and gradient memory descriptors.
Definition: dnnl_types.h:1843
dnnl_memory_desc_t stat_desc
Statistics memory descriptor.
Definition: dnnl_types.h:1848
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1833
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1837
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1830
float batch_norm_epsilon
Batch normalization epsilon parameter.
Definition: dnnl_types.h:1850
A descriptor of a binary operation.
Definition: dnnl_types.h:2035
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:2046
dnnl_alg_kind_t alg_kind
The kind of the binary algorithm.
Definition: dnnl_types.h:2042
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:2038
Generic description of blocked data layout for most memory formats.
Definition: dnnl_types.h:1341
dnnl_dims_t strides
The strides between the outermost blocks.
Definition: dnnl_types.h:1344
int inner_nblks
The number of innermost blocks, e.g. 3 in case of OIhw_4i16o4i_
Definition: dnnl_types.h:1348
dnnl_dims_t inner_blks
The size of the blocks, e.g. {4, 16, 4} in case of OIhw_4i16o4i
Definition: dnnl_types.h:1350
dnnl_dims_t inner_idxs
The logical indices of the blocks, e.g.
Definition: dnnl_types.h:1353
A descriptor of a convolution operation.
Definition: dnnl_types.h:1534
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1570
dnnl_dims_t strides
Convolution strides in each spatial dimension.
Definition: dnnl_types.h:1562
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1560
dnnl_dims_t dilates
Convolution dilates in each spatial dimension.
Definition: dnnl_types.h:1564
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: dnnl_types.h:1556
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1548
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1541
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1558
dnnl_alg_kind_t alg_kind
The kind of the convolution algorithm.
Definition: dnnl_types.h:1544
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1537
dnnl_memory_desc_t diff_weights_desc
Weights gradient memory descriptor.
Definition: dnnl_types.h:1552
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:1554
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1546
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition: dnnl_types.h:1550
A descriptor of a element-wise operation.
Definition: dnnl_types.h:1609
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1634
float alpha
Algorithm specific parameter.
Definition: dnnl_types.h:1657
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1632
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1612
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1615
dnnl_alg_kind_t alg_kind
The kind of eltwise algorithm.
Definition: dnnl_types.h:1630
An opaque structure to describe an engine.
A structure that contains an index and a memory object, and is used to pass arguments to dnnl_primiti...
Definition: dnnl_types.h:2475
dnnl_memory_t memory
Input/output memory.
Definition: dnnl_types.h:2477
int arg
An argument index, e.g. DNNL_ARG_SRC.
Definition: dnnl_types.h:2476
A descriptor of an inner product operation.
Definition: dnnl_types.h:1897
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1904
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1908
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: dnnl_types.h:1916
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1906
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:1914
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1922
dnnl_memory_desc_t diff_weights_desc
Weights gradient memory descriptor.
Definition: dnnl_types.h:1912
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1918
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1920
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1900
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition: dnnl_types.h:1910
A descriptor of a Layer Normalization operation.
Definition: dnnl_types.h:1860
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1870
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1866
dnnl_memory_desc_t data_scaleshift_desc
Scale and shift data and gradient memory descriptors.
Definition: dnnl_types.h:1878
float layer_norm_epsilon
Layer normalization epsilon parameter.
Definition: dnnl_types.h:1887
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1863
dnnl_memory_desc_t stat_desc
Mean and variance data memory descriptors.
Definition: dnnl_types.h:1885
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1868
A descriptor of a Local Response Normalization (LRN) operation.
Definition: dnnl_types.h:1796
float lrn_k
LRN k parameter.
Definition: dnnl_types.h:1818
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:1812
float lrn_beta
LRN beta parameter.
Definition: dnnl_types.h:1816
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1809
float lrn_alpha
LRN alpha parameter.
Definition: dnnl_types.h:1814
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1802
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1807
dnnl_alg_kind_t alg_kind
LRN algorithm.
Definition: dnnl_types.h:1805
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1799
A descriptor of a matrix multiplication operation.
Definition: dnnl_types.h:2061
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition: dnnl_types.h:2068
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:2072
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:2064
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:2070
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:2066
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:2074
Memory descriptor.
Definition: dnnl_types.h:1445
dnnl_wino_desc_t wino_desc
Tensor of weights for integer 8bit winograd convolution.
Definition: dnnl_types.h:1485
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:1476
dnnl_blocking_desc_t blocking
Description of the data layout for memory formats that use blocking.
Definition: dnnl_types.h:1483
dnnl_data_type_t data_type
Data type of the tensor elements.
Definition: dnnl_types.h:1465
dnnl_dims_t dims
Dimensions in the following order:
Definition: dnnl_types.h:1462
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:1472
int ndims
Number of dimensions.
Definition: dnnl_types.h:1447
dnnl_dims_t padded_dims
Size of the data including padding in each dimension.
Definition: dnnl_types.h:1468
dnnl_rnn_packed_desc_t rnn_packed_desc
Tensor of packed weights for RNN.
Definition: dnnl_types.h:1487
dnnl_format_kind_t format_kind
Memory format kind.
Definition: dnnl_types.h:1479
Description of extra information stored in memory.
Definition: dnnl_types.h:1427
uint64_t flags
The flags contain arbitrary extra information, such as compensation.
Definition: dnnl_types.h:1430
int compensation_mask
Compensation mask.
Definition: dnnl_types.h:1432
int asymm_compensation_mask
Compensation mask for asymmetric quantization.
Definition: dnnl_types.h:1436
float scale_adjust
Scale applied to the data.
Definition: dnnl_types.h:1434
An opaque structure to describe a memory.
A descriptor of a pooling operation.
Definition: dnnl_types.h:1696
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1699
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1713
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1711
dnnl_dims_t strides
Pooling kernel strides for spatial dimensions.
Definition: dnnl_types.h:1717
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1709
dnnl_alg_kind_t alg_kind
The kind of pooling algorithm.
Definition: dnnl_types.h:1707
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1702
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1715
dnnl_dims_t kernel
Pooling kernel spatial dimensions.
Definition: dnnl_types.h:1719
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1725
A descriptor of a pooling operation.
Definition: dnnl_types.h:1734
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1747
dnnl_dims_t dilation
Pooling dilations for spatial dimensions.
Definition: dnnl_types.h:1765
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1740
dnnl_dims_t strides
Pooling kernel strides for spatial dimensions.
Definition: dnnl_types.h:1755
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1753
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1763
dnnl_dims_t kernel
Pooling kernel spatial dimensions.
Definition: dnnl_types.h:1757
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1737
dnnl_alg_kind_t alg_kind
The kind of pooling algorithm.
Definition: dnnl_types.h:1745
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1749
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1751
An opaque structure for a chain of post operations.
An opaque structure for primitive descriptor attributes.
An opaque structure to describe a primitive descriptor iterator.
An opaque structure to describe a primitive descriptor.
An opaque structure to describe a primitive.
A descriptor of reduction operation.
Definition: dnnl_types.h:2111
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:2124
float p
Algorithm specific parameters.
Definition: dnnl_types.h:2136
dnnl_alg_kind_t alg_kind
The kind of reduction algorithm.
Definition: dnnl_types.h:2120
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:2122
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:2114
A descriptor of resampling operation.
Definition: dnnl_types.h:2083
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:2100
dnnl_alg_kind_t alg_kind
The kind of the resampling algorithm.
Definition: dnnl_types.h:2092
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:2089
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:2096
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:2098
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:2094
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:2086
A descriptor for an RNN operation.
Definition: dnnl_types.h:1953
dnnl_rnn_direction_t direction
The direction of RNN primitive execution.
Definition: dnnl_types.h:1964
dnnl_memory_desc_t diff_src_iter_desc
Source gradient iter memory descriptor for hidden state.
Definition: dnnl_types.h:1995
dnnl_memory_desc_t weights_layer_desc
Weights layer memory descriptor.
Definition: dnnl_types.h:1972
dnnl_memory_desc_t dst_iter_c_desc
Destination iter memory descriptor for cell state.
Definition: dnnl_types.h:1982
dnnl_memory_desc_t diff_dst_iter_c_desc
Destination gradient iteration memory descriptor for cell state.
Definition: dnnl_types.h:2009
dnnl_memory_desc_t diff_weights_iter_desc
Weights gradient iter memory descriptor.
Definition: dnnl_types.h:2001
dnnl_alg_kind_t cell_kind
RNN cell kind.
Definition: dnnl_types.h:1962
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1956
dnnl_memory_desc_t diff_dst_layer_desc
Destination gradient layer memory descriptor.
Definition: dnnl_types.h:2005
dnnl_memory_desc_t diff_src_layer_desc
Source gradient layer memory descriptor.
Definition: dnnl_types.h:1993
dnnl_memory_desc_t diff_src_iter_c_desc
Source gradient iter memory descriptor for cell state.
Definition: dnnl_types.h:1997
dnnl_memory_desc_t weights_projection_desc
Weights projection memory descriptor.
Definition: dnnl_types.h:1990
dnnl_memory_desc_t diff_weights_peephole_desc
Weights gradient peephole memory descriptor.
Definition: dnnl_types.h:2013
dnnl_memory_desc_t diff_weights_layer_desc
Weights gradient layer memory descriptor.
Definition: dnnl_types.h:1999
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1959
dnnl_memory_desc_t src_iter_c_desc
Source iteration memory descriptor for cell state.
Definition: dnnl_types.h:1970
unsigned int flags
RNN cell flags.
Definition: dnnl_types.h:2020
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:1976
dnnl_memory_desc_t src_layer_desc
Source layer memory descriptor.
Definition: dnnl_types.h:1966
dnnl_memory_desc_t dst_layer_desc
Destination layer memory descriptor.
Definition: dnnl_types.h:1978
dnnl_alg_kind_t activation_kind
Activation function used for vanilla_rnn cell kind.
Definition: dnnl_types.h:2023
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: dnnl_types.h:2003
dnnl_memory_desc_t weights_peephole_desc
Weights peephole memory descriptor.
Definition: dnnl_types.h:1986
dnnl_memory_desc_t dst_iter_desc
Destination iter memory descriptor for hidden state.
Definition: dnnl_types.h:1980
dnnl_memory_desc_t diff_weights_projection_desc
Weights gradient projection memory descriptor.
Definition: dnnl_types.h:2017
dnnl_memory_desc_t src_iter_desc
Source iteration memory descriptor for hidden state.
Definition: dnnl_types.h:1968
dnnl_memory_desc_t weights_iter_desc
Weights iteration memory descriptor.
Definition: dnnl_types.h:1974
dnnl_memory_desc_t diff_dst_iter_desc
Destination gradient iteration memory descriptor for hidden state.
Definition: dnnl_types.h:2007
Description of tensor of packed weights for rnn.
Definition: dnnl_types.h:1395
A descriptor of a shuffle operation.
Definition: dnnl_types.h:1587
int axis
Axis for shuffling.
Definition: dnnl_types.h:1598
dnnl_memory_desc_t data_desc
Source and destination memory descriptor, and source and destination gradient memory descriptor.
Definition: dnnl_types.h:1596
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1590
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1593
dnnl_dim_t group_size
Number of groups.
Definition: dnnl_types.h:1600
A descriptor of a Softmax operation.
Definition: dnnl_types.h:1666
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1672
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1669
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1674
int softmax_axis
The axis along which to perform the softmax.
Definition: dnnl_types.h:1678
dnnl_memory_desc_t diff_desc
Source and Destination of gradient memory descriptor.
Definition: dnnl_types.h:1676
An opaque structure to describe an execution stream.
Structure containing version information as per Semantic Versioning
Definition: dnnl_types.h:2634
const char * hash
Git hash of the sources (may be absent)
Definition: dnnl_types.h:2638
unsigned cpu_runtime
CPU runtime.
Definition: dnnl_types.h:2639
int minor
Minor version.
Definition: dnnl_types.h:2636
int patch
Patch version.
Definition: dnnl_types.h:2637
int major
Major version.
Definition: dnnl_types.h:2635
unsigned gpu_runtime
GPU runtime.
Definition: dnnl_types.h:2640
Description of tensor of weights for winograd 2x3 convolution.
Definition: dnnl_types.h:1369