oneAPI Deep Neural Network Library (oneDNN)  1.4.0
Performance library for Deep Learning
Loading...
Searching...
No Matches
dnnl_types.h
Go to the documentation of this file.
1/*******************************************************************************
2* Copyright 2016-2020 Intel Corporation
3*
4* Licensed under the Apache License, Version 2.0 (the "License");
5* you may not use this file except in compliance with the License.
6* You may obtain a copy of the License at
7*
8* http://www.apache.org/licenses/LICENSE-2.0
9*
10* Unless required by applicable law or agreed to in writing, software
11* distributed under the License is distributed on an "AS IS" BASIS,
12* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13* See the License for the specific language governing permissions and
14* limitations under the License.
15*******************************************************************************/
16
19
20#ifndef DNNL_TYPES_H
21#define DNNL_TYPES_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
28#include <stddef.h>
29#include <stdint.h>
31
34
37
55
57
60
78
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
183
184 // Permuted plain formats
185
205
206 // Opaque blocked formats
207
208 dnnl_Abc16a,
209 dnnl_ABc16a16b,
210 dnnl_ABc4a4b,
213 dnnl_ABc16b16a,
214 dnnl_Abc4a,
217 dnnl_ABc4b16a4b,
218 dnnl_ABc2b8a4b,
219 dnnl_ABc4b4a,
220 dnnl_ABc8a16b2a,
221 dnnl_ABc8a8b,
224 dnnl_ABc8b16a2b,
225 dnnl_BAc8a16b2a,
226 dnnl_ABc8b8a,
227 dnnl_Abcd16a,
228 dnnl_Abcd8a,
229 dnnl_ABcd16a16b,
230 dnnl_ABcd32a32b,
233 dnnl_ABcd16b16a,
234 dnnl_aBCd16b16c,
235 dnnl_aBCd16c16b,
236 dnnl_Abcd4a,
239 dnnl_ABcd4b16a4b,
240 dnnl_ABcd4b4a,
241 dnnl_ABcd4a4b,
242 dnnl_aBCd2c4b2c,
243 dnnl_aBCd4b8c2b,
244 dnnl_aBCd4c16b4c,
245 dnnl_aBCd2c8b4c,
246 dnnl_aBCd4c4b,
247 dnnl_aBCd4b4c,
248 dnnl_ABcd8a16b2a,
249 dnnl_ABcd2b8a4b,
250 dnnl_ABcd8a8b,
253 dnnl_aBCd4c8b2c,
254 dnnl_ABcd8b16a2b,
255 dnnl_aBCd8b16c2b,
256 dnnl_BAcd8a16b2a,
259 dnnl_aBCd8b8c,
260 dnnl_aBCd8c16b2c,
261 dnnl_ABcde8a16b2a,
262 dnnl_aCBd8b16c2b,
263 dnnl_aBCd8c8b,
264 dnnl_Abcde16a,
265 dnnl_ABcde16a16b,
266 dnnl_BAcde8a16b2a,
275 dnnl_ABcde16b16a,
276 dnnl_aBCde16b16c,
277 dnnl_aBCde16c16b,
278 dnnl_aBCde2c8b4c,
279 dnnl_Abcde4a,
282 dnnl_ABcde4b4a,
283 dnnl_ABcde4a4b,
284 dnnl_aBCde4b4c,
285 dnnl_aBCde2c4b2c,
286 dnnl_aBCde4b8c2b,
287 dnnl_aBCde4c16b4c,
288 dnnl_aBCde4c4b,
289 dnnl_Abcde8a,
290 dnnl_ABcde8a8b,
291 dnnl_BAcde16b16a,
294 dnnl_ABcde8b16a2b,
295 dnnl_aBCde8b16c2b,
296 dnnl_aBCde4c8b2c,
297 dnnl_aCBde8b16c2b,
298 dnnl_ABcde8b8a,
299 dnnl_aBCde8b8c,
300 dnnl_ABcd4a8b8a4b,
301 dnnl_ABcd2a8b8a2b,
302 dnnl_aBCde4b8c8b4c,
303 dnnl_aBCde2b8c8b2c,
304 dnnl_aBCde8c16b2c,
305 dnnl_aBCde8c8b,
310 dnnl_aBCdef16b16c,
311 dnnl_aBCdef16c16b,
312 dnnl_aBCdef4c16b4c,
315 dnnl_aBCdef4c8b2c,
320 dnnl_aBCdef4c4b,
321 dnnl_aBCdef4b4c,
322 dnnl_aBCdef2c4b2c,
323 dnnl_aBCdef4b8c2b,
324 dnnl_aBCdef8b8c,
325 dnnl_aBCdef8c16b2c,
326 dnnl_aBCdef8b16c2b,
327 dnnl_aCBdef8b16c2b,
328 dnnl_aBCdef8c8b,
329 dnnl_aBdc16b,
330 dnnl_aBdC16b2c,
331 dnnl_aBdc4b,
332 dnnl_aBdc8b,
333 dnnl_aBdec16b,
334 dnnl_aBdeC16b2c,
335 dnnl_aBdec32b,
336 dnnl_aBdec4b,
337 dnnl_aBdec8b,
338 dnnl_aBdefc16b,
339 dnnl_aBdefC16b2c,
340 dnnl_aCBdef16c16b,
341 dnnl_aBdefc4b,
342 dnnl_aBdefc8b,
343 dnnl_Abcdef16a,
344 dnnl_Acb16a,
345 dnnl_AcB16a2b,
346 dnnl_Acb4a,
347 dnnl_Acb8a,
348 dnnl_aCBd16b16c,
349 dnnl_aCBd16c16b,
350 dnnl_aCBde16b16c,
351 dnnl_aCBde16c16b,
352 dnnl_Acdb16a,
353 dnnl_AcdB16a2b,
354 dnnl_Acdb32a,
355 dnnl_Acdb4a,
356 dnnl_Acdb8a,
357 dnnl_Acdeb16a,
358 dnnl_AcdeB16a2b,
359 dnnl_Acdeb4a,
360 dnnl_Acdeb8a,
361 dnnl_BAc16a16b,
362 dnnl_BAc16b16a,
363 dnnl_BAcd16a16b,
364 dnnl_BAcd16b16a,
365 dnnl_BAcde16a16b,
366 dnnl_aCBdef16b16c,
367
371
372 // Aliases
373
398
429
446
481
482 // Opaque data types, are not to be used explicitly
483
484 // data
485
513 dnnl_NCw16n16c = dnnl_ABc16a16b,
514 dnnl_NCdhw16n16c = dnnl_ABcde16a16b,
515 dnnl_NChw16n16c = dnnl_ABcd16a16b,
516 dnnl_NChw32n32c = dnnl_ABcd32a32b,
517
518 // weights, 3D
519 dnnl_IOw16o16i = dnnl_BAc16a16b,
520 dnnl_IOw16i16o = dnnl_BAc16b16a,
521 dnnl_OIw16i16o = dnnl_ABc16b16a,
522 dnnl_OIw16o16i = dnnl_ABc16a16b,
523 dnnl_Oiw16o = dnnl_Abc16a,
524 dnnl_OIw4i16o4i = dnnl_ABc4b16a4b,
525 dnnl_OIw2i8o4i = dnnl_ABc2b8a4b,
526 dnnl_OIw4i4o = dnnl_ABc4b4a,
527 dnnl_OIw4o4i = dnnl_ABc4a4b,
528 dnnl_Oiw4o = dnnl_Abc4a,
529 dnnl_OIw8i16o2i = dnnl_ABc8b16a2b,
530 dnnl_OIw8i8o = dnnl_ABc8b8a,
531 dnnl_OIw8o16i2o = dnnl_ABc8a16b2a,
532 dnnl_IOw8o16i2o = dnnl_BAc8a16b2a,
533 dnnl_OIw8o8i = dnnl_ABc8a8b,
534 dnnl_Owi16o = dnnl_Acb16a,
535 dnnl_OwI16o2i = dnnl_AcB16a2b,
536 dnnl_Owi4o = dnnl_Acb4a,
537 dnnl_Owi8o = dnnl_Acb8a,
538
539 // weights, 4D
540 dnnl_IOhw16i16o = dnnl_BAcd16b16a,
541 dnnl_IOhw16o16i = dnnl_BAcd16a16b,
542 dnnl_Ohwi16o = dnnl_Acdb16a,
543 dnnl_OhwI16o2i = dnnl_AcdB16a2b,
544 dnnl_Ohwi32o = dnnl_Acdb32a,
545 dnnl_Ohwi4o = dnnl_Acdb4a,
546 dnnl_Ohwi8o = dnnl_Acdb8a,
547 dnnl_OIhw16i16o = dnnl_ABcd16b16a,
548 dnnl_OIhw16o16i = dnnl_ABcd16a16b,
549 dnnl_Oihw16o = dnnl_Abcd16a,
550 dnnl_OIhw4i16o4i = dnnl_ABcd4b16a4b,
551 dnnl_OIhw4i4o = dnnl_ABcd4b4a,
552 dnnl_OIhw4o4i = dnnl_ABcd4a4b,
553 dnnl_Oihw4o = dnnl_Abcd4a,
554 dnnl_OIhw8i16o2i = dnnl_ABcd8b16a2b,
555 dnnl_OIhw8i8o = dnnl_ABcd8b8a,
556 dnnl_OIhw8o16i2o = dnnl_ABcd8a16b2a,
557 dnnl_OIhw2i8o4i = dnnl_ABcd2b8a4b,
558 dnnl_IOhw8o16i2o = dnnl_BAcd8a16b2a,
559 dnnl_OIhw8o8i = dnnl_ABcd8a8b,
560
561 // weights, 5D
562 dnnl_Odhwi16o = dnnl_Acdeb16a,
563 dnnl_OdhwI16o2i = dnnl_AcdeB16a2b,
564 dnnl_Odhwi4o = dnnl_Acdeb4a,
565 dnnl_Odhwi8o = dnnl_Acdeb8a,
566 dnnl_OIdhw16i16o = dnnl_ABcde16b16a,
567 dnnl_OIdhw16o16i = dnnl_ABcde16a16b,
568 dnnl_Oidhw16o = dnnl_Abcde16a,
569 dnnl_OIdhw4i4o = dnnl_ABcde4b4a,
570 dnnl_OIdhw4o4i = dnnl_ABcde4a4b,
571 dnnl_Oidhw4o = dnnl_Abcde4a,
572 dnnl_OIdhw8i16o2i = dnnl_ABcde8b16a2b,
573 dnnl_OIdhw8i8o = dnnl_ABcde8b8a,
574 dnnl_OIdhw8o16i2o = dnnl_ABcde8a16b2a,
575 dnnl_IOdhw8o16i2o = dnnl_BAcde8a16b2a,
576 dnnl_OIdhw4i16o4i = dnnl_ABcde4b16a4b,
577 dnnl_OIdhw2i8o4i = dnnl_ABcde2b8a4b,
578 dnnl_OIdhw8o8i = dnnl_ABcde8a8b,
579 dnnl_IOdhw16i16o = dnnl_BAcde16b16a,
580 dnnl_IOdhw16o16i = dnnl_BAcde16a16b,
581
582 // weights w/ groups, 3D
583 dnnl_Goiw16g = dnnl_Abcd16a,
584 dnnl_Goiw8g = dnnl_Abcd8a,
585 dnnl_gIOw16o16i = dnnl_aCBd16b16c,
586 dnnl_gIOw16i16o = dnnl_aCBd16c16b,
587 dnnl_gOIw16i16o = dnnl_aBCd16c16b,
588 dnnl_gOIw16o16i = dnnl_aBCd16b16c,
589 dnnl_gOiw16o = dnnl_aBcd16b,
590 dnnl_gOIw4i16o4i = dnnl_aBCd4c16b4c,
591 dnnl_gOIw2i8o4i = dnnl_aBCd2c8b4c,
592 dnnl_gOIw4i4o = dnnl_aBCd4c4b,
593 dnnl_gOIw4o4i = dnnl_aBCd4b4c,
594 dnnl_gOiw4o = dnnl_aBcd4b,
595 dnnl_gOIw8i16o2i = dnnl_aBCd8c16b2c,
596 dnnl_gOIw8i8o = dnnl_aBCd8c8b,
597 dnnl_gOIw8o16i2o = dnnl_aBCd8b16c2b,
598 dnnl_gIOw8o16i2o = dnnl_aCBd8b16c2b,
599 dnnl_gOIw8o8i = dnnl_aBCd8b8c,
600 dnnl_gOwi16o = dnnl_aBdc16b,
601 dnnl_gOwI16o2i = dnnl_aBdC16b2c,
602 dnnl_gOwi4o = dnnl_aBdc4b,
603 dnnl_gOwi8o = dnnl_aBdc8b,
604 dnnl_gOIw2i4o2i = dnnl_aBCd2c4b2c,
605 dnnl_gOIw2o4i2o = dnnl_aBCd2b4c2b,
606 dnnl_gOIw4i8o2i = dnnl_aBCd4c8b2c,
607 dnnl_gOIw4o8i2o = dnnl_aBCd4b8c2b,
608
609 // weights w/ groups, 4D
610 dnnl_gIOhw16i16o = dnnl_aCBde16c16b,
611 dnnl_gIOhw16o16i = dnnl_aCBde16b16c,
612 dnnl_gOhwi16o = dnnl_aBdec16b,
613 dnnl_gOhwI16o2i = dnnl_aBdeC16b2c,
614 dnnl_gOhwi32o = dnnl_aBdec32b,
615 dnnl_gOhwi4o = dnnl_aBdec4b,
616 dnnl_gOhwi8o = dnnl_aBdec8b,
617 dnnl_Goihw16g = dnnl_Abcde16a,
618 dnnl_gOIhw16i16o = dnnl_aBCde16c16b,
619 dnnl_gOIhw16o16i = dnnl_aBCde16b16c,
620 dnnl_gOihw16o = dnnl_aBcde16b,
621 dnnl_gOIhw2i8o4i = dnnl_aBCde2c8b4c,
622 dnnl_gOIhw4i16o4i = dnnl_aBCde4c16b4c,
623 dnnl_gOIhw4i4o = dnnl_aBCde4c4b,
624 dnnl_gOIhw4o4i = dnnl_aBCde4b4c,
625 dnnl_gOihw4o = dnnl_aBcde4b,
626 dnnl_Goihw8g = dnnl_Abcde8a,
627 dnnl_gOIhw8i16o2i = dnnl_aBCde8c16b2c,
628 dnnl_gOIhw8i8o = dnnl_aBCde8c8b,
629 dnnl_gOIhw8o16i2o = dnnl_aBCde8b16c2b,
630 dnnl_gIOhw8o16i2o = dnnl_aCBde8b16c2b,
631 dnnl_gOIhw8o8i = dnnl_aBCde8b8c,
632
633 dnnl_OIhw4o8i8o4i = dnnl_ABcd4a8b8a4b,
634 dnnl_OIhw2o8i8o2i = dnnl_ABcd2a8b8a2b,
635 dnnl_gOIhw4o8i8o4i = dnnl_aBCde4b8c8b4c,
636 dnnl_gOIhw2o8i8o2i = dnnl_aBCde2b8c8b2c,
637 dnnl_gOIhw2i4o2i = dnnl_aBCde2c4b2c,
638 dnnl_gOIhw2o4i2o = dnnl_aBCde2b4c2b,
639 dnnl_gOIhw4i8o2i = dnnl_aBCde4c8b2c,
640 dnnl_gOIhw4o8i2o = dnnl_aBCde4b8c2b,
641
642 // weights w/ groups, 6D
643 dnnl_gIOdhw16i16o = dnnl_aCBdef16c16b,
644 dnnl_gIOdhw16o16i = dnnl_aCBdef16b16c,
645 dnnl_gOdhwi16o = dnnl_aBdefc16b,
646 dnnl_gOdhwI16o2i = dnnl_aBdefC16b2c,
647 dnnl_gOdhwi4o = dnnl_aBdefc4b,
648 dnnl_gOdhwi8o = dnnl_aBdefc8b,
649 dnnl_gOIdhw16i16o = dnnl_aBCdef16c16b,
650 dnnl_gOIdhw4i16o4i = dnnl_aBCdef4c16b4c,
651 dnnl_gOIdhw2i8o4i = dnnl_aBCdef2c8b4c,
652 dnnl_gOIdhw16o16i = dnnl_aBCdef16b16c,
653 dnnl_gOidhw16o = dnnl_aBcdef16b,
654 dnnl_gOIdhw4i4o = dnnl_aBCdef4c4b,
655 dnnl_gOIdhw4o4i = dnnl_aBCdef4b4c,
656 dnnl_gOidhw4o = dnnl_aBcdef4b,
657 dnnl_gOIdhw8i16o2i = dnnl_aBCdef8c16b2c,
658 dnnl_gOIdhw8i8o = dnnl_aBCdef8c8b,
659 dnnl_gOIdhw8o16i2o = dnnl_aBCdef8b16c2b,
660 dnnl_gIOdhw8o16i2o = dnnl_aCBdef8b16c2b,
661 dnnl_gOIdhw8o8i = dnnl_aBCdef8b8c,
662 dnnl_Goidhw16g = dnnl_Abcdef16a,
663 dnnl_gOIdhw2i4o2i = dnnl_aBCdef2c4b2c,
664 dnnl_gOIdhw4i8o2i = dnnl_aBCdef4c8b2c,
665 dnnl_gOIdhw2o4i2o = dnnl_aBCdef2b4c2b,
666 dnnl_gOIdhw4o8i2o = dnnl_aBCdef4b8c2b,
668
670
675
701
746
748typedef enum {
749 dnnl_alg_kind_undef,
836 dnnl_lbr_gru = 0x4fff,
850
902
905
908
912#define DNNL_MAX_NDIMS 12
913
916#define DNNL_RUNTIME_DIM_VAL INT64_MIN
917
921#define DNNL_RUNTIME_SIZE_VAL ((size_t)DNNL_RUNTIME_DIM_VAL)
922
925static const union {
926 unsigned u;
927 float f;
928} DNNL_RUNTIME_F32_VAL_REP = {0x7fc000d0};
930
933#define DNNL_RUNTIME_F32_VAL (DNNL_RUNTIME_F32_VAL_REP.f)
934
936static const int DNNL_RUNTIME_S32_VAL_REP = INT32_MIN;
938
941#define DNNL_RUNTIME_S32_VAL DNNL_RUNTIME_S32_VAL_REP
942
944typedef int64_t dnnl_dim_t;
945
948
952typedef struct {
956 // Innermost section
957 // ASSUMPTION: the innermost blocks are always dense
966
968typedef enum {
971 // Tensors of weights for 2x3 winograd convolutions.
975 // Tensor of weights for 4x3 convolution.
978
980typedef struct {
981 dnnl_wino_memory_format_t wino_format;
982 int r;
983 int alpha;
984 int ic;
985 int oc;
986 int ic_block;
987 int oc_block;
988 int ic2_block;
989 int oc2_block;
990 float adj_scale;
991 size_t size;
993
994typedef enum {
995 dnnl_packed_format_undef = 0,
996 dnnl_ldigo_p,
997 dnnl_ldgoi_p
998} dnnl_rnn_packed_memory_format_t;
999
1002#define DNNL_RNN_MAX_N_PARTS 4
1003
1005typedef struct {
1006 dnnl_rnn_packed_memory_format_t format;
1007 int n_parts;
1008 int n;
1009 int ldb;
1010 int parts[DNNL_RNN_MAX_N_PARTS];
1011 size_t part_pack_size[DNNL_RNN_MAX_N_PARTS];
1012 unsigned pack_part[DNNL_RNN_MAX_N_PARTS];
1013 size_t offset_compensation;
1014 size_t size;
1015 char reserved[200];
1017
1019typedef enum {
1020 dnnl_memory_extra_flag_none = 0x0U,
1029 dnnl_memory_extra_flag_scale_adjust = 0x2U,
1030 dnnl_memory_extra_flag_gpu_rnn_u8s8_compensation = 0x4U,
1032
1034typedef struct {
1037 uint64_t flags;
1043 char reserved[64];
1045
1098
1101struct dnnl_memory;
1102
1105
1107typedef const struct dnnl_memory *const_dnnl_memory_t;
1108
1109#define DNNL_MEMORY_NONE (NULL)
1110#define DNNL_MEMORY_ALLOCATE ((void *)(size_t)-1)
1111
1113
1118
1120typedef void *dnnl_op_desc_t;
1122typedef const void *const_dnnl_op_desc_t;
1123
1126
1129
1132
1172
1174
1177
1180
1182
1185
1202
1204
1207
1254
1256
1259
1275
1277
1280
1284
1286
1289
1322
1324
1327
1353
1355
1358
1386
1388
1391
1423
1425
1428
1457
1459
1462
1468
1484
1561
1563
1566
1581
1583
1586
1609
1611
1614
1637
1639
1641
1644
1654
1657struct dnnl_engine;
1660#if 0
1661// FIXME: looks like this never happens
1663typedef const struct dnnl_engine *const_dnnl_engine_t;
1664#endif
1665
1667
1672
1676
1679
1681typedef const struct dnnl_primitive_desc_iterator
1683
1686struct dnnl_primitive_desc;
1687
1690
1693
1695
1698
1724
1730struct dnnl_primitive_attr;
1731
1735
1738
1757struct dnnl_post_ops;
1758
1761
1764
1766
1769
1772struct dnnl_primitive;
1777
1779#define DNNL_ARG_SRC_0 1
1782#define DNNL_ARG_SRC DNNL_ARG_SRC_0
1785#define DNNL_ARG_SRC_LAYER DNNL_ARG_SRC_0
1788#define DNNL_ARG_FROM DNNL_ARG_SRC_0
1789
1791#define DNNL_ARG_SRC_1 2
1794#define DNNL_ARG_SRC_ITER DNNL_ARG_SRC_1
1795
1797#define DNNL_ARG_SRC_2 3
1800#define DNNL_ARG_SRC_ITER_C DNNL_ARG_SRC_2
1801
1803#define DNNL_ARG_DST_0 17
1806#define DNNL_ARG_DST DNNL_ARG_DST_0
1809#define DNNL_ARG_TO DNNL_ARG_DST_0
1811#define DNNL_ARG_DST_LAYER DNNL_ARG_DST_0
1812
1814#define DNNL_ARG_DST_1 18
1817#define DNNL_ARG_DST_ITER DNNL_ARG_DST_1
1818
1820#define DNNL_ARG_DST_2 19
1823#define DNNL_ARG_DST_ITER_C DNNL_ARG_DST_2
1824
1826#define DNNL_ARG_WEIGHTS_0 33
1829#define DNNL_ARG_WEIGHTS DNNL_ARG_WEIGHTS_0
1832#define DNNL_ARG_SCALE_SHIFT DNNL_ARG_WEIGHTS_0
1835#define DNNL_ARG_WEIGHTS_LAYER DNNL_ARG_WEIGHTS_0
1836
1838#define DNNL_ARG_WEIGHTS_1 34
1841#define DNNL_ARG_WEIGHTS_ITER DNNL_ARG_WEIGHTS_1
1842
1844#define DNNL_ARG_WEIGHTS_2 35
1847#define DNNL_ARG_WEIGHTS_PEEPHOLE DNNL_ARG_WEIGHTS_2
1848
1850#define DNNL_ARG_WEIGHTS_3 36
1853#define DNNL_ARG_WEIGHTS_PROJECTION DNNL_ARG_WEIGHTS_3
1854
1856#define DNNL_ARG_BIAS 41
1857
1859#define DNNL_ARG_MEAN 49
1861#define DNNL_ARG_VARIANCE 50
1862
1865#define DNNL_ARG_WORKSPACE 64
1867#define DNNL_ARG_SCRATCHPAD 80
1868
1870#define DNNL_ARG_DIFF_SRC_0 129
1873#define DNNL_ARG_DIFF_SRC DNNL_ARG_DIFF_SRC_0
1876#define DNNL_ARG_DIFF_SRC_LAYER DNNL_ARG_DIFF_SRC_0
1877
1879#define DNNL_ARG_DIFF_SRC_1 130
1882#define DNNL_ARG_DIFF_SRC_ITER DNNL_ARG_DIFF_SRC_1
1883
1885#define DNNL_ARG_DIFF_SRC_2 131
1888#define DNNL_ARG_DIFF_SRC_ITER_C DNNL_ARG_DIFF_SRC_2
1889
1891#define DNNL_ARG_DIFF_DST_0 145
1894#define DNNL_ARG_DIFF_DST DNNL_ARG_DIFF_DST_0
1897#define DNNL_ARG_DIFF_DST_LAYER DNNL_ARG_DIFF_DST_0
1898
1900#define DNNL_ARG_DIFF_DST_1 146
1903#define DNNL_ARG_DIFF_DST_ITER DNNL_ARG_DIFF_DST_1
1904
1906#define DNNL_ARG_DIFF_DST_2 147
1909#define DNNL_ARG_DIFF_DST_ITER_C DNNL_ARG_DIFF_DST_2
1910
1912#define DNNL_ARG_DIFF_WEIGHTS_0 161
1915#define DNNL_ARG_DIFF_WEIGHTS DNNL_ARG_DIFF_WEIGHTS_0
1918#define DNNL_ARG_DIFF_SCALE_SHIFT DNNL_ARG_DIFF_WEIGHTS_0
1921#define DNNL_ARG_DIFF_WEIGHTS_LAYER DNNL_ARG_DIFF_WEIGHTS_0
1922
1924#define DNNL_ARG_DIFF_WEIGHTS_1 162
1927#define DNNL_ARG_DIFF_WEIGHTS_ITER DNNL_ARG_DIFF_WEIGHTS_1
1928
1930#define DNNL_ARG_DIFF_WEIGHTS_2 163
1933#define DNNL_ARG_DIFF_WEIGHTS_PEEPHOLE DNNL_ARG_DIFF_WEIGHTS_2
1934
1936#define DNNL_ARG_DIFF_WEIGHTS_3 164
1939#define DNNL_ARG_DIFF_WEIGHTS_PROJECTION DNNL_ARG_DIFF_WEIGHTS_3
1940
1942#define DNNL_ARG_DIFF_BIAS 169
1943
1945#define DNNL_ARG_ATTR_OUTPUT_SCALES 513
1946
1949#define DNNL_ARG_MULTIPLE_SRC 1024
1952#define DNNL_ARG_MULTIPLE_DST 2048
1953
1955#define DNNL_ARG_ATTR_ZERO_POINTS 4096
1956
1959#define DNNL_ARG_ATTR_POST_OP_DW 8192
1960
1967
1969
1972
2059
2061
2063
2066
2079
2082struct dnnl_stream;
2086typedef const struct dnnl_stream *const_dnnl_stream_t;
2087
2089struct dnnl_stream_attr;
2091typedef struct dnnl_stream_attr *dnnl_stream_attr_t;
2093typedef const struct dnnl_stream_attr *const_dnnl_stream_attr_t;
2094
2096
2099
2101#define DNNL_RUNTIME_NONE 0u
2102
2104#define DNNL_RUNTIME_SEQ 1u
2105
2107#define DNNL_RUNTIME_OMP 2u
2108
2110#define DNNL_RUNTIME_TBB 4u
2111
2113#define DNNL_RUNTIME_THREADPOOL 8u
2114
2116#define DNNL_RUNTIME_OCL 256u
2117
2120typedef struct {
2121 int major;
2122 int minor;
2123 int patch;
2124 const char *hash;
2125 unsigned cpu_runtime;
2126 unsigned gpu_runtime;
2128
2130#define DNNL_JIT_PROFILE_NONE 0u
2131
2133#define DNNL_JIT_PROFILE_VTUNE 1u
2134
2136#define DNNL_JIT_PROFILE_LINUX_PERFMAP 2u
2137
2139#define DNNL_JIT_PROFILE_LINUX_JITDUMP 4u
2140
2143#define DNNL_JIT_PROFILE_LINUX_JITDUMP_USE_TSC 8u
2144
2146#define DNNL_JIT_PROFILE_LINUX_PERF \
2147 (DNNL_JIT_PROFILE_LINUX_JITDUMP | DNNL_JIT_PROFILE_LINUX_PERFMAP)
2148
2185
2187
2189
2190#ifdef __cplusplus
2191}
2192#endif
2193
2194#endif
struct dnnl_primitive_attr * dnnl_primitive_attr_t
A primitive descriptor attributes handle that controls primitive behavior.
Definition dnnl_types.h:1734
struct dnnl_post_ops * dnnl_post_ops_t
A post operation chain handle.
Definition dnnl_types.h:1760
const struct dnnl_primitive_attr * const_dnnl_primitive_attr_t
A constant primitive descriptor attributes handle.
Definition dnnl_types.h:1737
const struct dnnl_post_ops * const_dnnl_post_ops_t
A constant post operation chain handle.
Definition dnnl_types.h:1763
dnnl_scratchpad_mode_t
Scratchpad mode.
Definition dnnl_types.h:1700
@ dnnl_scratchpad_mode_user
The user manages the scratchpad allocation by querying and providing the scratchpad memory to primiti...
Definition dnnl_types.h:1722
@ dnnl_scratchpad_mode_library
The library manages the scratchpad allocation according to the policy specified by the DNNL_ENABLE_CO...
Definition dnnl_types.h:1717
dnnl_convolution_desc_t dnnl_deconvolution_desc_t
A descriptor of a deconvolution operation.
Definition dnnl_types.h:1179
dnnl_engine_kind_t
Kinds of engines.
Definition dnnl_types.h:1646
struct dnnl_engine * dnnl_engine_t
An engine handle.
Definition dnnl_types.h:1659
@ dnnl_gpu
GPU engine.
Definition dnnl_types.h:1652
@ dnnl_cpu
CPU engine.
Definition dnnl_types.h:1650
@ dnnl_any_engine
An unspecified engine.
Definition dnnl_types.h:1648
dnnl_softmax_desc_t dnnl_logsoftmax_desc_t
A descriptor of a LogSoftmax operation.
Definition dnnl_types.h:1283
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:1107
#define DNNL_RNN_MAX_N_PARTS
Maximum number of parts of RNN weights tensor that require separate computation.
Definition dnnl_types.h:1002
dnnl_memory_extra_flags_t
Flags for memory special features.
Definition dnnl_types.h:1019
struct dnnl_memory * dnnl_memory_t
A memory handle.
Definition dnnl_types.h:1104
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:947
int64_t dnnl_dim_t
A type to describe tensor dimension.
Definition dnnl_types.h:944
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:912
dnnl_wino_memory_format_t
Winograd-specific formats.
Definition dnnl_types.h:968
@ 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:1028
@ dnnl_hwigo
5D CNN weights tensor (incl. groups), an alias to dnnl_decab
Definition dnnl_types.h:437
@ dnnl_aBCdef2b4c2b
6D tensor blocked by 3rd dimension with block size 4
Definition dnnl_types.h:317
@ dnnl_acdeb
permuted 5D tensor
Definition dnnl_types.h:192
@ dnnl_oihw
4D CNN weights tensor, an alias to dnnl_abcd
Definition dnnl_types.h:412
@ dnnl_cn
2D CNN activations tensor, an alias to dnnl_ba
Definition dnnl_types.h:379
@ dnnl_iohw
4D CNN weights tensor, an alias to dnnl_bacd
Definition dnnl_types.h:420
@ dnnl_oidhw
5D CNN weights tensor, an alias to dnnl_abcde
Definition dnnl_types.h:422
@ 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:258
@ dnnl_cdba
permuted 4D tensor
Definition dnnl_types.h:200
@ dnnl_owi
3D CNN weights tensor, an alias to dnnl_acb
Definition dnnl_types.h:406
@ dnnl_aBcdef4b
6D tensor blocked by 2nd dimension with block size 4
Definition dnnl_types.h:319
@ dnnl_wigo
4D CNN weights tensor (incl. groups), an alias to dnnl_dcab
Definition dnnl_types.h:433
@ dnnl_tnc
3D RNN data tensor in the format (seq_length, batch, input channels).
Definition dnnl_types.h:448
@ dnnl_ldgo
4D RNN bias tensor in the format (num_layers, num_directions, num_gates, output_channels).
Definition dnnl_types.h:480
@ dnnl_ldio
4D LSTM projection tensor in the format (num_layers, num_directions, num_channels_in_hidden_state,...
Definition dnnl_types.h:470
@ dnnl_aBcd4b
4D tensor blocked by 2nd dimension with block size 4
Definition dnnl_types.h:238
@ dnnl_nCdhw16c
5D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcde16b
Definition dnnl_types.h:488
@ dnnl_abcde
plain 5D tensor
Definition dnnl_types.h:181
@ dnnl_decab
permuted 5D tensor
Definition dnnl_types.h:203
@ dnnl_bca
permuted 3D tensor
Definition dnnl_types.h:196
@ dnnl_aBcde4b
5D tensor blocked by 2nd dimension with block size 4
Definition dnnl_types.h:281
@ dnnl_aBc16b
3D tensor blocked by 2nd dimension with block size 16
Definition dnnl_types.h:212
@ dnnl_aBcdef16b
6D tensor blocked by 2nd dimension with block size 16
Definition dnnl_types.h:309
@ dnnl_giodhw
6D CNN weights tensor (incl. groups), an alias to dnnl_acbdef
Definition dnnl_types.h:443
@ dnnl_aBCde2b4c2b
5D tensor blocked by 3rd dimension with block size 4
Definition dnnl_types.h:307
@ dnnl_io
2D CNN weights tensor, an alias to dnnl_ba
Definition dnnl_types.h:402
@ dnnl_ldoi
4D LSTM projection tensor in the format (num_layers, num_directions, num_channels_in_recurrent_projec...
Definition dnnl_types.h:473
@ dnnl_aBc4b
3D tensor blocked by 2nd dimension with block size 4
Definition dnnl_types.h:216
@ dnnl_hwio
4D CNN weights tensor, an alias to dnnl_cdba
Definition dnnl_types.h:414
@ dnnl_ldnc
4D RNN states tensor in the format (num_layers, num_directions, batch, state channels).
Definition dnnl_types.h:453
@ dnnl_aBcd16b
4D tensor blocked by 2nd dimension with block size 16
Definition dnnl_types.h:232
@ dnnl_cba
permuted 3D tensor
Definition dnnl_types.h:199
@ dnnl_ntc
3D RNN data tensor in the format (batch, seq_length, input channels).
Definition dnnl_types.h:450
@ dnnl_ldgoi
5D RNN weights tensor in the format (num_layers, num_directions, num_gates, output_channels,...
Definition dnnl_types.h:467
@ dnnl_goidhw
6D CNN weights tensor (incl. groups), an alias to dnnl_abcdef
Definition dnnl_types.h:441
@ dnnl_ba
permuted 2D tensor
Definition dnnl_types.h:193
@ dnnl_ABcde2b8a4b
5D tensor blocked by 1st dimension with block size 8
Definition dnnl_types.h:272
@ 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:428
@ dnnl_nCdhw4c
5D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcde4b
Definition dnnl_types.h:491
@ dnnl_defcab
permuted 6D tensor
Definition dnnl_types.h:204
@ dnnl_abcdef
plain 6D tensor
Definition dnnl_types.h:182
@ dnnl_ohwi
4D CNN weights tensor, an alias to dnnl_acdb
Definition dnnl_types.h:416
@ dnnl_nChw8c
4D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcd8b
Definition dnnl_types.h:503
@ dnnl_iwo
3D CNN weights tensor, an alias to dnnl_bca
Definition dnnl_types.h:410
@ 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:431
@ dnnl_nt
2D RNN statistics tensor, an alias to dnnl_ba
Definition dnnl_types.h:383
@ dnnl_nChw4c
4D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcd4b
Definition dnnl_types.h:500
@ dnnl_dhwigo
6D CNN weights tensor (incl. groups), an alias to dnnl_defcab
Definition dnnl_types.h:445
@ dnnl_nchw
4D CNN activations tensor, an alias to dnnl_abcd
Definition dnnl_types.h:389
@ dnnl_acbdef
permuted 6D tensor
Definition dnnl_types.h:190
@ dnnl_acdb
permuted 4D tensor
Definition dnnl_types.h:191
@ dnnl_wio
3D CNN weights tensor, an alias to dnnl_cba
Definition dnnl_types.h:408
@ dnnl_aBcd8b
4D tensor blocked by 2nd dimension with block size 8
Definition dnnl_types.h:252
@ dnnl_ldigo
5D RNN weights tensor in the format (num_layers, num_directions, input_channels, num_gates,...
Definition dnnl_types.h:460
@ dnnl_aBc8b
3D tensor blocked by 2nd dimension with block size 8
Definition dnnl_types.h:223
@ dnnl_x
1D tensor, an alias to dnnl_a
Definition dnnl_types.h:375
@ dnnl_nwc
3D CNN activations tensor, an alias to dnnl_acb
Definition dnnl_types.h:387
@ dnnl_ndhwc
5D CNN activations tensor, an alias to dnnl_acdeb
Definition dnnl_types.h:397
@ dnnl_nCw4c
3D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBc4b
Definition dnnl_types.h:509
@ dnnl_aBcde8b
5D tensor blocked by 2nd dimension with block size 8
Definition dnnl_types.h:293
@ dnnl_nChw16c
4D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcd16b
Definition dnnl_types.h:497
@ dnnl_abdec
permuted 5D tensor
Definition dnnl_types.h:187
@ dnnl_chwn
4D CNN activations tensor, an alias to dnnl_bcda
Definition dnnl_types.h:393
@ dnnl_bacd
permuted 4D tensor
Definition dnnl_types.h:195
@ dnnl_ncw
3D CNN activations tensor, an alias to dnnl_abc
Definition dnnl_types.h:385
@ dnnl_nCdhw8c
5D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcde8b
Definition dnnl_types.h:494
@ dnnl_nc
2D CNN activations tensor, an alias to dnnl_ab
Definition dnnl_types.h:377
@ dnnl_tn
2D RNN statistics tensor, an alias to dnnl_ab
Definition dnnl_types.h:381
@ dnnl_bcda
permuted 4D tensor
Definition dnnl_types.h:197
@ dnnl_acbde
permuted 5D tensor
Definition dnnl_types.h:189
@ dnnl_aBCd2b4c2b
4D tensor blocked by 3rd dimension with block size 4
Definition dnnl_types.h:268
@ dnnl_bcdea
permuted 5D tensor
Definition dnnl_types.h:198
@ dnnl_aBcde16b
5D tensor blocked by 2nd dimension with block size 16
Definition dnnl_types.h:274
@ dnnl_nCw8c
3D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBc8b
Definition dnnl_types.h:512
@ dnnl_abdc
permuted 4D tensor
Definition dnnl_types.h:186
@ dnnl_ABcde4b16a4b
5D tensor blocked by 1st dimension with block size 16
Definition dnnl_types.h:270
@ dnnl_format_tag_last
Just a sentinel, not real memory format tag.
Definition dnnl_types.h:370
@ dnnl_odhwi
5D CNN weights tensor, an alias to dnnl_acdeb
Definition dnnl_types.h:426
@ dnnl_abc
plain 3D tensor
Definition dnnl_types.h:179
@ dnnl_bac
permuted 3D tensor
Definition dnnl_types.h:194
@ dnnl_ncdhw
5D CNN activations tensor, an alias to dnnl_abcde
Definition dnnl_types.h:395
@ dnnl_dhwio
5D CNN weights tensor, an alias to dnnl_cdeba
Definition dnnl_types.h:424
@ dnnl_nhwc
4D CNN activations tensor, an alias to dnnl_acdb
Definition dnnl_types.h:391
@ dnnl_oiw
3D CNN weights tensor, an alias to dnnl_abc
Definition dnnl_types.h:404
@ dnnl_dcab
permuted 4D tensor
Definition dnnl_types.h:201
@ dnnl_cdeba
permuted 5D tensor
Definition dnnl_types.h:202
@ dnnl_giohw
5D CNN weights tensor (incl. groups), an alias to dnnl_acbde
Definition dnnl_types.h:439
@ dnnl_goihw
5D CNN weights tensor (incl. groups), an alias to dnnl_abcde
Definition dnnl_types.h:435
@ dnnl_oi
2D CNN weights tensor, an alias to dnnl_ab
Definition dnnl_types.h:400
@ dnnl_ihwo
4D CNN weights tensor, an alias to dnnl_bcda
Definition dnnl_types.h:418
@ dnnl_acb
permuted 3D tensor
Definition dnnl_types.h:188
@ dnnl_nCw16c
3D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBc16b
Definition dnnl_types.h:506
@ dnnl_aBCdef2c8b4c
6D tensor blocked by 2nd dimension with block size 8
Definition dnnl_types.h:314
@ 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:976
@ dnnl_wino_wei_aaOio
Internal weights format for 2x3 Winograd.
Definition dnnl_types.h:973
@ dnnl_wino_wei_aaOBiOo
Internal weights format for 2x3 Winograd.
Definition dnnl_types.h:974
@ dnnl_wino_undef
Undefined memory format, used for empty memory descriptors.
Definition dnnl_types.h:970
@ dnnl_wino_wei_aaOIoi
Internal weights format for 2x3 Winograd.
Definition dnnl_types.h:972
struct dnnl_primitive * dnnl_primitive_t
A primitive handle.
Definition dnnl_types.h:1774
struct dnnl_primitive_desc_iterator * dnnl_primitive_desc_iterator_t
A primitive descriptor iterator handle.
Definition dnnl_types.h:1678
dnnl_normalization_flags_t
Flags for normalization primitives.
Definition dnnl_types.h:852
const struct dnnl_primitive * const_dnnl_primitive_t
A constant primitive handle.
Definition dnnl_types.h:1776
const void * const_dnnl_op_desc_t
A pointer to any of the operation descriptors (constant variant).
Definition dnnl_types.h:1122
void * dnnl_op_desc_t
A pointer to any of the operation descriptors.
Definition dnnl_types.h:1120
dnnl_alg_kind_t
Kinds of algorithms.
Definition dnnl_types.h:748
dnnl_primitive_kind_t
Kinds of primitives.
Definition dnnl_types.h:704
dnnl_query_t
Primitive descriptor query specification.
Definition dnnl_types.h:2002
struct dnnl_primitive_desc * dnnl_primitive_desc_t
A primitive descriptor handle.
Definition dnnl_types.h:1689
const struct dnnl_primitive_desc * const_dnnl_primitive_desc_t
A constant primitive descriptor handle.
Definition dnnl_types.h:1692
dnnl_prop_kind_t
Kinds of propagation.
Definition dnnl_types.h:677
const struct dnnl_primitive_desc_iterator * const_dnnl_primitive_desc_iterator_t
A constant primitive descriptor iterator handle.
Definition dnnl_types.h:1681
@ dnnl_fuse_norm_relu
Fuse with ReLU.
Definition dnnl_types.h:900
@ dnnl_normalization_flags_none
Use no normalization flags.
Definition dnnl_types.h:861
@ dnnl_use_scaleshift
Use scale and shift parameters.
Definition dnnl_types.h:887
@ dnnl_use_global_stats
Use global statistics.
Definition dnnl_types.h:874
@ dnnl_pooling_avg_exclude_padding
Average pooling exclude padding.
Definition dnnl_types.h:816
@ dnnl_eltwise_clip
Eltwise: clip.
Definition dnnl_types.h:794
@ dnnl_eltwise_tanh_use_dst_for_bwd
Eltwise: hyperbolic tangent non-linearity (tanh) (dst for backward)
Definition dnnl_types.h:802
@ dnnl_pooling_avg
Average pooling (alias for dnnl_pooling_avg_exclude_padding)
Definition dnnl_types.h:818
@ dnnl_eltwise_gelu_tanh
Eltwise: gelu.
Definition dnnl_types.h:786
@ dnnl_resampling_linear
Linear Resampling Method.
Definition dnnl_types.h:848
@ dnnl_eltwise_sqrt
Eltwise: square root.
Definition dnnl_types.h:771
@ dnnl_binary_min
Binary min.
Definition dnnl_types.h:844
@ dnnl_eltwise_abs
Eltwise: abs.
Definition dnnl_types.h:769
@ dnnl_eltwise_sqrt_use_dst_for_bwd
Eltwise: square root (dst for backward)
Definition dnnl_types.h:806
@ dnnl_eltwise_exp
Eltwise: exponent.
Definition dnnl_types.h:781
@ dnnl_eltwise_square
Eltwise: square.
Definition dnnl_types.h:767
@ dnnl_eltwise_gelu
Eltwise: tanh-based gelu (alias for dnnl_eltwise_gelu_tanh)
Definition dnnl_types.h:788
@ dnnl_convolution_winograd
Winograd convolution.
Definition dnnl_types.h:753
@ dnnl_lrn_across_channels
Local response normalization (LRN) across multiple channels.
Definition dnnl_types.h:820
@ dnnl_deconvolution_direct
Direct deconvolution.
Definition dnnl_types.h:757
@ dnnl_eltwise_relu
Eltwise: ReLU.
Definition dnnl_types.h:761
@ dnnl_convolution_auto
Convolution algorithm(either direct or Winograd) is chosen just in time.
Definition dnnl_types.h:755
@ dnnl_eltwise_swish
Eltwise: swish.
Definition dnnl_types.h:790
@ dnnl_vanilla_rnn
RNN cell.
Definition dnnl_types.h:824
@ dnnl_eltwise_gelu_erf
Eltwise: erf-based gelu.
Definition dnnl_types.h:798
@ dnnl_vanilla_lstm
LSTM cell.
Definition dnnl_types.h:826
@ dnnl_eltwise_elu
Eltwise: exponential linear unit (elu)
Definition dnnl_types.h:765
@ dnnl_vanilla_gru
GRU cell.
Definition dnnl_types.h:828
@ dnnl_lbr_gru
GRU cell with linear before reset.
Definition dnnl_types.h:836
@ dnnl_eltwise_tanh
Eltwise: hyperbolic tangent non-linearity (tanh)
Definition dnnl_types.h:763
@ dnnl_convolution_direct
Direct convolution.
Definition dnnl_types.h:751
@ dnnl_eltwise_soft_relu
Eltwise: soft_relu.
Definition dnnl_types.h:777
@ dnnl_eltwise_log
Eltwise: natural logarithm.
Definition dnnl_types.h:792
@ dnnl_lrn_within_channel
LRN within a single channel.
Definition dnnl_types.h:822
@ dnnl_eltwise_elu_use_dst_for_bwd
Eltwise: exponential linear unit (elu) (dst for backward)
Definition dnnl_types.h:804
@ dnnl_deconvolution_winograd
Winograd deconvolution.
Definition dnnl_types.h:759
@ dnnl_eltwise_pow
Eltwise: pow.
Definition dnnl_types.h:796
@ dnnl_eltwise_relu_use_dst_for_bwd
Eltwise: ReLU (dst for backward)
Definition dnnl_types.h:800
@ dnnl_eltwise_logistic
Eltwise: logistic.
Definition dnnl_types.h:779
@ dnnl_pooling_avg_include_padding
Average pooling include padding.
Definition dnnl_types.h:814
@ dnnl_pooling_max
Max pooling.
Definition dnnl_types.h:812
@ dnnl_eltwise_logistic_use_dst_for_bwd
Eltwise: logistic (dst for backward)
Definition dnnl_types.h:808
@ dnnl_binary_add
Binary add.
Definition dnnl_types.h:838
@ dnnl_binary_mul
Binary mul.
Definition dnnl_types.h:840
@ dnnl_eltwise_exp_use_dst_for_bwd
Eltwise: exp (dst for backward)
Definition dnnl_types.h:810
@ dnnl_eltwise_bounded_relu
Eltwise: bounded_relu.
Definition dnnl_types.h:775
@ dnnl_eltwise_linear
Eltwise: linear.
Definition dnnl_types.h:773
@ dnnl_resampling_nearest
Nearest Neighbor Resampling Method.
Definition dnnl_types.h:846
@ dnnl_binary_max
Binary max.
Definition dnnl_types.h:842
@ dnnl_binary
A binary primitive.
Definition dnnl_types.h:738
@ dnnl_concat
A (out-of-place) concat primitive.
Definition dnnl_types.h:712
@ dnnl_reorder
A reorder primitive.
Definition dnnl_types.h:708
@ dnnl_gemm
A matrix multiplication primitive (internal).
Definition dnnl_types.h:736
@ dnnl_convolution
A convolution primitive.
Definition dnnl_types.h:716
@ dnnl_inner_product
An inner product primitive.
Definition dnnl_types.h:732
@ dnnl_resampling
A resampling primitive.
Definition dnnl_types.h:744
@ dnnl_batch_normalization
A batch normalization primitive.
Definition dnnl_types.h:728
@ dnnl_undefined_primitive
Undefined primitive.
Definition dnnl_types.h:706
@ dnnl_sum
A sum primitive.
Definition dnnl_types.h:714
@ dnnl_layer_normalization
A layer normalization primitive.
Definition dnnl_types.h:730
@ dnnl_eltwise
An element-wise primitive.
Definition dnnl_types.h:720
@ dnnl_matmul
A matrix multiplication primitive.
Definition dnnl_types.h:742
@ dnnl_shuffle
A shuffle primitive.
Definition dnnl_types.h:710
@ dnnl_logsoftmax
A logsoftmax primitive.
Definition dnnl_types.h:740
@ dnnl_pooling
A pooling primitive.
Definition dnnl_types.h:724
@ dnnl_deconvolution
A deconvolution primitive.
Definition dnnl_types.h:718
@ dnnl_softmax
A softmax primitive.
Definition dnnl_types.h:722
@ dnnl_rnn
A rnn primitive.
Definition dnnl_types.h:734
@ dnnl_lrn
An LRN primitive.
Definition dnnl_types.h:726
@ dnnl_query_resampling_d
resampling descriptor
Definition dnnl_types.h:2045
@ dnnl_query_num_of_outputs_s32
number of outputs expected
Definition dnnl_types.h:2009
@ dnnl_query_some_md
stub
Definition dnnl_types.h:2048
@ dnnl_query_convolution_d
convolution descriptor
Definition dnnl_types.h:2030
@ dnnl_query_weights_md
weights memory descriptor desc
Definition dnnl_types.h:2051
@ dnnl_query_src_md
source memory desc
Definition dnnl_types.h:2049
@ dnnl_query_softmax_d
softmax descriptor
Definition dnnl_types.h:2034
@ dnnl_query_binary_d
binary descriptor
Definition dnnl_types.h:2042
@ dnnl_query_workspace_md
workspace memory desc
Definition dnnl_types.h:2055
@ dnnl_query_matmul_d
matrix multiplication (matmul) descriptor
Definition dnnl_types.h:2044
@ dnnl_query_num_of_inputs_s32
number of inputs expected
Definition dnnl_types.h:2008
@ dnnl_query_op_d
op descriptor
Definition dnnl_types.h:2029
@ dnnl_query_diff_src_md
source gradient memory desc
Definition dnnl_types.h:2050
@ dnnl_query_scratchpad_md
scratchpad memory desc
Definition dnnl_types.h:2056
@ dnnl_query_shuffle_d
shuffle descriptor
Definition dnnl_types.h:2032
@ dnnl_query_memory_consumption_s64
memory consumption – extra
Definition dnnl_types.h:2012
@ dnnl_query_inner_product_d
inner product descriptor
Definition dnnl_types.h:2039
@ dnnl_query_deconvolution_d
deconvolution descriptor
Definition dnnl_types.h:2031
@ dnnl_query_primitive_kind
primitive kind
Definition dnnl_types.h:2006
@ dnnl_query_some_d
stub
Definition dnnl_types.h:2028
@ dnnl_query_batch_normalization_d
batch normalization descriptor
Definition dnnl_types.h:2037
@ dnnl_query_impl_info_str
for creating scratchpad memory
Definition dnnl_types.h:2020
@ dnnl_query_time_estimate_f64
runtime estimation (seconds)
Definition dnnl_types.h:2011
@ dnnl_query_eltwise_d
eltwise descriptor
Definition dnnl_types.h:2033
@ dnnl_query_diff_weights_md
weights grad. memory desc
Definition dnnl_types.h:2052
@ dnnl_query_gemm_d
GEMM descriptor (internal)
Definition dnnl_types.h:2041
@ dnnl_query_reorder_dst_engine
destination engine
Definition dnnl_types.h:2023
@ dnnl_query_reorder_src_engine
source engine
Definition dnnl_types.h:2022
@ dnnl_query_scratchpad_engine
(scratch) memory, additional to all inputs and outputs memory (bytes)
Definition dnnl_types.h:2017
@ dnnl_query_undef
no query
Definition dnnl_types.h:2003
@ dnnl_query_prop_kind
propagation kind
Definition dnnl_types.h:2025
@ dnnl_query_pooling_d
pooling descriptor
Definition dnnl_types.h:2035
@ dnnl_query_exec_arg_md
memory desc of an execute argument
Definition dnnl_types.h:2057
@ dnnl_query_engine
execution engine
Definition dnnl_types.h:2005
@ dnnl_query_rnn_d
rnn descriptor
Definition dnnl_types.h:2040
@ dnnl_query_layer_normalization_d
layer normalization descriptor
Definition dnnl_types.h:2038
@ dnnl_query_lrn_d
lrn descriptor
Definition dnnl_types.h:2036
@ dnnl_query_dst_md
destination memory desc
Definition dnnl_types.h:2053
@ dnnl_query_diff_dst_md
destination grad. memory desc
Definition dnnl_types.h:2054
@ dnnl_query_logsoftmax_d
logsoftmax descriptor
Definition dnnl_types.h:2043
@ dnnl_backward_weights
Backward weights propagation.
Definition dnnl_types.h:697
@ dnnl_forward_inference
Forward data propagation (inference mode).
Definition dnnl_types.h:687
@ dnnl_backward
Backward propagation (with respect to all parameters).
Definition dnnl_types.h:693
@ dnnl_backward_data
Backward data propagation.
Definition dnnl_types.h:695
@ dnnl_prop_kind_undef
Undefined propagation type.
Definition dnnl_types.h:680
@ dnnl_forward
Forward data propagation (alias for dnnl_forward_training).
Definition dnnl_types.h:691
@ dnnl_forward_training
Forward data propagation (training mode).
Definition dnnl_types.h:683
@ dnnl_backward_bias
Backward bias propagation.
Definition dnnl_types.h:699
@ dnnl_forward_scoring
Forward data propagation (alias for dnnl_forward_inference).
Definition dnnl_types.h:689
dnnl_rnn_flags_t
Flags for RNN cell.
Definition dnnl_types.h:1464
dnnl_rnn_direction_t
A direction of RNN primitive execution.
Definition dnnl_types.h:1470
@ dnnl_rnn_flags_undef
Undefined RNN flags.
Definition dnnl_types.h:1466
@ dnnl_unidirectional
Alias for dnnl_unidirectional_left2right.
Definition dnnl_types.h:1482
@ dnnl_bidirectional_concat
Bidirectional execution of RNN primitive with concatenation of the results.
Definition dnnl_types.h:1477
@ dnnl_bidirectional_sum
Bidirectional execution of RNN primitive with summation of the results.
Definition dnnl_types.h:1480
@ dnnl_unidirectional_left2right
Unidirectional execution of RNN primitive from left to right.
Definition dnnl_types.h:1472
@ dnnl_unidirectional_right2left
Unidirectional execution of RNN primitive from right to left.
Definition dnnl_types.h:1474
dnnl_cpu_isa_t
CPU instruction set flags.
Definition dnnl_types.h:2150
@ 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:2165
@ dnnl_cpu_isa_avx
Intel Advanced Vector Extensions (Intel AVX)
Definition dnnl_types.h:2158
@ 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:2178
@ dnnl_cpu_isa_avx2
Intel Advanced Vector Extensions 2 (Intel AVX2)
Definition dnnl_types.h:2161
@ dnnl_cpu_isa_all
Any ISA (no restrictions)
Definition dnnl_types.h:2152
@ dnnl_cpu_isa_avx512_core
Intel AVX-512 subset for Intel Xeon Scalable processor family and Intel Core processor family.
Definition dnnl_types.h:2173
@ dnnl_cpu_isa_sse41
Intel Streaming SIMD Extensions 4.1 (Intel SSE4.1)
Definition dnnl_types.h:2155
@ 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:2183
@ dnnl_cpu_isa_avx512_mic_4ops
Intel AVX-512 subset for Intel Xeon Phi processors 7235, 7285, 7295 Series.
Definition dnnl_types.h:2169
struct dnnl_stream_attr * dnnl_stream_attr_t
An execution stream attributes handle.
Definition dnnl_types.h:2091
dnnl_stream_flags_t
Stream flags.
Definition dnnl_types.h:2068
struct dnnl_stream * dnnl_stream_t
An execution stream handle.
Definition dnnl_types.h:2084
const struct dnnl_stream_attr * const_dnnl_stream_attr_t
A constant execution stream attributes handle.
Definition dnnl_types.h:2093
const struct dnnl_stream * const_dnnl_stream_t
A constant execution stream handle.
Definition dnnl_types.h:2086
@ dnnl_stream_default_order
Default order execution.
Definition dnnl_types.h:2071
@ dnnl_stream_in_order
In-order execution.
Definition dnnl_types.h:2073
@ dnnl_stream_out_of_order
Out-of-order execution.
Definition dnnl_types.h:2075
@ dnnl_stream_default_flags
Default stream configuration.
Definition dnnl_types.h:2077
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:1360
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition dnnl_types.h:1368
dnnl_memory_desc_t data_scaleshift_desc
Scale and shift data and gradient memory descriptors.
Definition dnnl_types.h:1376
dnnl_memory_desc_t stat_desc
Statistics memory descriptor.
Definition dnnl_types.h:1381
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition dnnl_types.h:1366
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition dnnl_types.h:1370
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition dnnl_types.h:1363
float batch_norm_epsilon
Batch normalization epsilon parameter.
Definition dnnl_types.h:1383
A descriptor of a binary operation.
Definition dnnl_types.h:1568
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition dnnl_types.h:1579
dnnl_memory_desc_t src_desc[2]
Source memory descriptors.
Definition dnnl_types.h:1577
dnnl_alg_kind_t alg_kind
The kind of the binary algorithm.
Definition dnnl_types.h:1575
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition dnnl_types.h:1571
Generic description of blocked data layout for most memory formats.
Definition dnnl_types.h:952
dnnl_dims_t strides
The strides between the outermost blocks.
Definition dnnl_types.h:955
int inner_nblks
The number of innermost blocks, e.g. 3 in case of OIhw_4i16o4i_
Definition dnnl_types.h:959
dnnl_dims_t inner_blks
The size of the blocks, e.g. {4, 16, 4} in case of OIhw_4i16o4i
Definition dnnl_types.h:961
dnnl_dims_t inner_idxs
The logical indices of the blocks, e.g.
Definition dnnl_types.h:964
A descriptor of a convolution operation.
Definition dnnl_types.h:1134
dnnl_dims_t padding[2]
Padding in each spatial dimension.
Definition dnnl_types.h:1168
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition dnnl_types.h:1170
dnnl_dims_t strides
Convolution strides in each spatial dimension.
Definition dnnl_types.h:1162
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition dnnl_types.h:1160
dnnl_dims_t dilates
Convolution dilates in each spatial dimension.
Definition dnnl_types.h:1164
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition dnnl_types.h:1156
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition dnnl_types.h:1148
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition dnnl_types.h:1141
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition dnnl_types.h:1158
dnnl_alg_kind_t alg_kind
The kind of the convolution algorithm.
Definition dnnl_types.h:1144
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition dnnl_types.h:1137
dnnl_memory_desc_t diff_weights_desc
Weights gradient memory descriptor.
Definition dnnl_types.h:1152
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition dnnl_types.h:1154
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition dnnl_types.h:1146
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition dnnl_types.h:1150
A descriptor of a element-wise operation.
Definition dnnl_types.h:1209
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition dnnl_types.h:1232
float alpha
Algorithm specific parameter.
Definition dnnl_types.h:1252
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition dnnl_types.h:1230
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition dnnl_types.h:1212
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition dnnl_types.h:1215
dnnl_alg_kind_t alg_kind
The kind of eltwise algorithm.
Definition dnnl_types.h:1228
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:1963
dnnl_memory_t memory
Input/output memory.
Definition dnnl_types.h:1965
int arg
An argument index, e.g. DNNL_ARG_SRC.
Definition dnnl_types.h:1964
A descriptor of an inner product operation.
Definition dnnl_types.h:1430
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition dnnl_types.h:1437
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition dnnl_types.h:1441
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition dnnl_types.h:1449
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition dnnl_types.h:1439
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition dnnl_types.h:1447
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition dnnl_types.h:1455
dnnl_memory_desc_t diff_weights_desc
Weights gradient memory descriptor.
Definition dnnl_types.h:1445
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition dnnl_types.h:1451
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition dnnl_types.h:1453
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition dnnl_types.h:1433
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition dnnl_types.h:1443
A descriptor of a Layer Normalization operation.
Definition dnnl_types.h:1393
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition dnnl_types.h:1403
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition dnnl_types.h:1399
dnnl_memory_desc_t data_scaleshift_desc
Scale and shift data and gradient memory descriptors.
Definition dnnl_types.h:1411
float layer_norm_epsilon
Layer normalization epsilon parameter.
Definition dnnl_types.h:1420
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition dnnl_types.h:1396
dnnl_memory_desc_t stat_desc
Mean and variance data memory descriptors.
Definition dnnl_types.h:1418
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition dnnl_types.h:1401
A descriptor of a Local Response Normalization (LRN) operation.
Definition dnnl_types.h:1329
float lrn_k
LRN k parameter.
Definition dnnl_types.h:1351
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:1345
float lrn_beta
LRN beta parameter.
Definition dnnl_types.h:1349
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition dnnl_types.h:1342
float lrn_alpha
LRN alpha parameter.
Definition dnnl_types.h:1347
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition dnnl_types.h:1335
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition dnnl_types.h:1340
dnnl_alg_kind_t alg_kind
LRN algorithm.
Definition dnnl_types.h:1338
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition dnnl_types.h:1332
A descriptor of a matrix multiplication operation.
Definition dnnl_types.h:1594
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition dnnl_types.h:1601
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition dnnl_types.h:1605
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition dnnl_types.h:1597
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition dnnl_types.h:1603
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition dnnl_types.h:1599
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition dnnl_types.h:1607
Memory descriptor.
Definition dnnl_types.h:1050
dnnl_wino_desc_t wino_desc
Tensor of weights for integer 8bit winograd convolution.
Definition dnnl_types.h:1090
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:1081
dnnl_blocking_desc_t blocking
Description of the data layout for memory formats that use blocking.
Definition dnnl_types.h:1088
dnnl_data_type_t data_type
Data type of the tensor elements.
Definition dnnl_types.h:1070
dnnl_dims_t dims
Dimensions in the following order:
Definition dnnl_types.h:1067
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:1077
int ndims
Number of dimensions.
Definition dnnl_types.h:1052
dnnl_dims_t padded_dims
Size of the data including padding in each dimension.
Definition dnnl_types.h:1073
dnnl_rnn_packed_desc_t rnn_packed_desc
Tensor of packed weights for RNN.
Definition dnnl_types.h:1092
dnnl_format_kind_t format_kind
Memory format kind.
Definition dnnl_types.h:1084
Description of extra information stored in memory.
Definition dnnl_types.h:1034
char reserved[64]
For future backwards compatibility.
Definition dnnl_types.h:1043
uint64_t flags
The flags contain arbitrary extra information, such as compensation.
Definition dnnl_types.h:1037
int compensation_mask
Compensation mask.
Definition dnnl_types.h:1039
float scale_adjust
Scale applied to the data.
Definition dnnl_types.h:1041
An opaque structure to describe a memory.
A descriptor of a pooling operation.
Definition dnnl_types.h:1291
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition dnnl_types.h:1294
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition dnnl_types.h:1308
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition dnnl_types.h:1306
dnnl_dims_t strides
Pooling kernel strides for spatial dimensions.
Definition dnnl_types.h:1312
dnnl_dims_t padding[2]
Padding in each spatial dimension.
Definition dnnl_types.h:1318
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition dnnl_types.h:1304
dnnl_alg_kind_t alg_kind
The kind of pooling algorithm.
Definition dnnl_types.h:1302
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition dnnl_types.h:1297
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition dnnl_types.h:1310
dnnl_dims_t kernel
Pooling kernel spatial dimensions.
Definition dnnl_types.h:1314
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition dnnl_types.h:1320
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 resampling operation.
Definition dnnl_types.h:1616
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition dnnl_types.h:1633
dnnl_alg_kind_t alg_kind
The kind of the resampling algorithm.
Definition dnnl_types.h:1625
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition dnnl_types.h:1622
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition dnnl_types.h:1629
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition dnnl_types.h:1631
float factors[DNNL_MAX_NDIMS]
Resampling factor in each spatial dimension.
Definition dnnl_types.h:1635
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition dnnl_types.h:1627
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition dnnl_types.h:1619
A descriptor for an RNN operation.
Definition dnnl_types.h:1486
dnnl_rnn_direction_t direction
The direction of RNN primitive execution.
Definition dnnl_types.h:1497
dnnl_memory_desc_t diff_src_iter_desc
Source gradient iter memory descriptor for hidden state.
Definition dnnl_types.h:1528
dnnl_memory_desc_t weights_layer_desc
Weights layer memory descriptor.
Definition dnnl_types.h:1505
dnnl_memory_desc_t dst_iter_c_desc
Destination iter memory descriptor for cell state.
Definition dnnl_types.h:1515
dnnl_memory_desc_t diff_dst_iter_c_desc
Destination gradient iteration memory descriptor for cell state.
Definition dnnl_types.h:1542
dnnl_memory_desc_t diff_weights_iter_desc
Weights gradient iter memory descriptor.
Definition dnnl_types.h:1534
dnnl_alg_kind_t cell_kind
RNN cell kind.
Definition dnnl_types.h:1495
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition dnnl_types.h:1489
dnnl_memory_desc_t diff_dst_layer_desc
Destination gradient layer memory descriptor.
Definition dnnl_types.h:1538
dnnl_memory_desc_t diff_src_layer_desc
Source gradient layer memory descriptor.
Definition dnnl_types.h:1526
dnnl_memory_desc_t diff_src_iter_c_desc
Source gradient iter memory descriptor for cell state.
Definition dnnl_types.h:1530
dnnl_memory_desc_t weights_projection_desc
Weights projection memory descriptor.
Definition dnnl_types.h:1523
dnnl_memory_desc_t diff_weights_peephole_desc
Weights gradient peephole memory descriptor.
Definition dnnl_types.h:1546
dnnl_memory_desc_t diff_weights_layer_desc
Weights gradient layer memory descriptor.
Definition dnnl_types.h:1532
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition dnnl_types.h:1492
dnnl_memory_desc_t src_iter_c_desc
Source iteration memory descriptor for cell state.
Definition dnnl_types.h:1503
unsigned int flags
RNN cell flags.
Definition dnnl_types.h:1553
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition dnnl_types.h:1509
dnnl_memory_desc_t src_layer_desc
Source layer memory descriptor.
Definition dnnl_types.h:1499
dnnl_memory_desc_t dst_layer_desc
Destination layer memory descriptor.
Definition dnnl_types.h:1511
dnnl_alg_kind_t activation_kind
Activation function used for vanilla_rnn cell kind.
Definition dnnl_types.h:1556
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition dnnl_types.h:1536
dnnl_memory_desc_t weights_peephole_desc
Weights peephole memory descriptor.
Definition dnnl_types.h:1519
dnnl_memory_desc_t dst_iter_desc
Destination iter memory descriptor for hidden state.
Definition dnnl_types.h:1513
dnnl_memory_desc_t diff_weights_projection_desc
Weights gradient projection memory descriptor.
Definition dnnl_types.h:1550
dnnl_memory_desc_t src_iter_desc
Source iteration memory descriptor for hidden state.
Definition dnnl_types.h:1501
dnnl_memory_desc_t weights_iter_desc
Weights iteration memory descriptor.
Definition dnnl_types.h:1507
dnnl_memory_desc_t diff_dst_iter_desc
Destination gradient iteration memory descriptor for hidden state.
Definition dnnl_types.h:1540
Description of tensor of packed weights for rnn.
Definition dnnl_types.h:1005
A descriptor of a shuffle operation.
Definition dnnl_types.h:1187
int axis
Axis for shuffling.
Definition dnnl_types.h:1198
dnnl_memory_desc_t data_desc
Source and destination memory descriptor, and source and destination gradient memory descriptor.
Definition dnnl_types.h:1196
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition dnnl_types.h:1190
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition dnnl_types.h:1193
dnnl_dim_t group_size
Number of groups.
Definition dnnl_types.h:1200
A descriptor of a Softmax operation.
Definition dnnl_types.h:1261
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition dnnl_types.h:1267
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition dnnl_types.h:1264
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition dnnl_types.h:1269
int softmax_axis
The axis along which to perform the softmax.
Definition dnnl_types.h:1273
dnnl_memory_desc_t diff_desc
Source and Destination of gradient memory descriptor.
Definition dnnl_types.h:1271
An opaque structure to describe an execution stream.
Structure containing version information as per Semantic Versioning
Definition dnnl_types.h:2120
const char * hash
Git hash of the sources (may be absent)
Definition dnnl_types.h:2124
unsigned cpu_runtime
CPU runtime.
Definition dnnl_types.h:2125
int minor
Minor version.
Definition dnnl_types.h:2122
int patch
Patch version.
Definition dnnl_types.h:2123
int major
Major version.
Definition dnnl_types.h:2121
unsigned gpu_runtime
GPU runtime.
Definition dnnl_types.h:2126
Description of tensor of weights for winograd 2x3 convolution.
Definition dnnl_types.h:980