oneAPI Deep Neural Network Library (oneDNN)  1.4.0
Performance library for Deep Learning
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
24 extern "C" {
25 #endif
26 
28 #include <stddef.h>
29 #include <stdint.h>
31 
34 
37 
39 typedef enum {
55 
57 
60 
62 typedef enum {
66  dnnl_f16 = 1,
68  dnnl_bf16 = 2,
70  dnnl_f32 = 3,
72  dnnl_s32 = 4,
74  dnnl_s8 = 5,
76  dnnl_u8 = 6,
78 
80 typedef enum {
95 
164 typedef enum {
170 
171  // Semantic agnostic section
172  // The physical order of dimensions is defined by the permutation of the
173  // characters, assuming that ab..z defines the natural order.
174 
175  // Plain formats
176 
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 
677 typedef enum {
678  // TODO: suggest renames
701 
704 typedef enum {
746 
748 typedef enum {
749  dnnl_alg_kind_undef,
836  dnnl_lbr_gru = 0x4fff,
838  dnnl_binary_add = 0x1fff0,
840  dnnl_binary_mul = 0x1fff1,
842  dnnl_binary_max = 0x1fff2,
844  dnnl_binary_min = 0x1fff3,
850 
852 typedef enum {
862 
875 
888 
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 
925 static 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 
936 static const int DNNL_RUNTIME_S32_VAL_REP = INT32_MIN;
938 
941 #define DNNL_RUNTIME_S32_VAL DNNL_RUNTIME_S32_VAL_REP
942 
944 typedef int64_t dnnl_dim_t;
945 
948 
952 typedef struct {
956  // Innermost section
957  // ASSUMPTION: the innermost blocks are always dense
966 
968 typedef enum {
971  // Tensors of weights for 2x3 winograd convolutions.
975  // Tensor of weights for 4x3 convolution.
978 
980 typedef 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 
994 typedef 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 
1005 typedef 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 
1019 typedef 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 
1034 typedef struct {
1037  uint64_t flags;
1043  char reserved[64];
1045 
1050 typedef struct {
1052  int ndims;
1068 
1071 
1074 
1078 
1082 
1085  union {
1093  // ... other descriptions possible
1094  } format_desc;
1095 
1098 
1101 struct dnnl_memory;
1102 
1104 typedef struct dnnl_memory *dnnl_memory_t;
1105 
1107 typedef 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 
1120 typedef void *dnnl_op_desc_t;
1122 typedef const void *const_dnnl_op_desc_t;
1123 
1126 
1129 
1132 
1134 typedef struct {
1168  dnnl_dims_t padding[2];
1172 
1174 
1177 
1180 
1182 
1185 
1187 typedef struct {
1198  int axis;
1202 
1204 
1207 
1209 typedef struct {
1252  float alpha, beta;
1254 
1256 
1259 
1261 typedef struct {
1275 
1277 
1280 
1284 
1286 
1289 
1291 typedef struct {
1318  dnnl_dims_t padding[2];
1322 
1324 
1327 
1329 typedef struct {
1347  float lrn_alpha;
1349  float lrn_beta;
1351  float lrn_k;
1352 } dnnl_lrn_desc_t;
1353 
1355 
1358 
1360 typedef struct {
1377  dnnl_memory_desc_t diff_data_scaleshift_desc;
1384  unsigned flags;
1386 
1388 
1391 
1393 typedef struct {
1412  dnnl_memory_desc_t diff_data_scaleshift_desc;
1421  unsigned flags;
1423 
1425 
1428 
1430 typedef struct {
1457 
1459 
1462 
1464 typedef enum {
1468 
1470 typedef enum {
1484 
1486 typedef struct {
1524 
1551 
1553  unsigned int flags;
1557  float alpha;
1558  float beta;
1559 
1560 } dnnl_rnn_desc_t;
1561 
1563 
1566 
1568 typedef struct {
1577  dnnl_memory_desc_t src_desc[2];
1581 
1583 
1586 
1594 typedef struct {
1609 
1611 
1614 
1616 typedef struct {
1635  float factors[DNNL_MAX_NDIMS];
1637 
1639 
1641 
1644 
1646 typedef enum {
1654 
1657 struct dnnl_engine;
1659 typedef struct dnnl_engine *dnnl_engine_t;
1660 #if 0
1661 // FIXME: looks like this never happens
1663 typedef const struct dnnl_engine *const_dnnl_engine_t;
1664 #endif
1665 
1667 
1672 
1676 
1679 
1681 typedef const struct dnnl_primitive_desc_iterator
1683 
1686 struct dnnl_primitive_desc;
1687 
1690 
1693 
1695 
1698 
1700 typedef enum {
1724 
1730 struct dnnl_primitive_attr;
1731 
1735 
1738 
1757 struct dnnl_post_ops;
1758 
1761 
1763 typedef const struct dnnl_post_ops *const_dnnl_post_ops_t;
1764 
1766 
1769 
1772 struct dnnl_primitive;
1777 
1779 #define DNNL_ARG_SRC_0 1
1780 #define DNNL_ARG_SRC DNNL_ARG_SRC_0
1783 #define DNNL_ARG_SRC_LAYER DNNL_ARG_SRC_0
1786 #define DNNL_ARG_FROM DNNL_ARG_SRC_0
1789 
1791 #define DNNL_ARG_SRC_1 2
1792 #define DNNL_ARG_SRC_ITER DNNL_ARG_SRC_1
1795 
1797 #define DNNL_ARG_SRC_2 3
1798 #define DNNL_ARG_SRC_ITER_C DNNL_ARG_SRC_2
1801 
1803 #define DNNL_ARG_DST_0 17
1804 #define DNNL_ARG_DST DNNL_ARG_DST_0
1807 #define DNNL_ARG_TO DNNL_ARG_DST_0
1810 #define DNNL_ARG_DST_LAYER DNNL_ARG_DST_0
1812 
1814 #define DNNL_ARG_DST_1 18
1815 #define DNNL_ARG_DST_ITER DNNL_ARG_DST_1
1818 
1820 #define DNNL_ARG_DST_2 19
1821 #define DNNL_ARG_DST_ITER_C DNNL_ARG_DST_2
1824 
1826 #define DNNL_ARG_WEIGHTS_0 33
1827 #define DNNL_ARG_WEIGHTS DNNL_ARG_WEIGHTS_0
1830 #define DNNL_ARG_SCALE_SHIFT DNNL_ARG_WEIGHTS_0
1833 #define DNNL_ARG_WEIGHTS_LAYER DNNL_ARG_WEIGHTS_0
1836 
1838 #define DNNL_ARG_WEIGHTS_1 34
1839 #define DNNL_ARG_WEIGHTS_ITER DNNL_ARG_WEIGHTS_1
1842 
1844 #define DNNL_ARG_WEIGHTS_2 35
1845 #define DNNL_ARG_WEIGHTS_PEEPHOLE DNNL_ARG_WEIGHTS_2
1848 
1850 #define DNNL_ARG_WEIGHTS_3 36
1851 #define DNNL_ARG_WEIGHTS_PROJECTION DNNL_ARG_WEIGHTS_3
1854 
1856 #define DNNL_ARG_BIAS 41
1857 
1859 #define DNNL_ARG_MEAN 49
1860 #define DNNL_ARG_VARIANCE 50
1862 
1865 #define DNNL_ARG_WORKSPACE 64
1866 #define DNNL_ARG_SCRATCHPAD 80
1868 
1870 #define DNNL_ARG_DIFF_SRC_0 129
1871 #define DNNL_ARG_DIFF_SRC DNNL_ARG_DIFF_SRC_0
1874 #define DNNL_ARG_DIFF_SRC_LAYER DNNL_ARG_DIFF_SRC_0
1877 
1879 #define DNNL_ARG_DIFF_SRC_1 130
1880 #define DNNL_ARG_DIFF_SRC_ITER DNNL_ARG_DIFF_SRC_1
1883 
1885 #define DNNL_ARG_DIFF_SRC_2 131
1886 #define DNNL_ARG_DIFF_SRC_ITER_C DNNL_ARG_DIFF_SRC_2
1889 
1891 #define DNNL_ARG_DIFF_DST_0 145
1892 #define DNNL_ARG_DIFF_DST DNNL_ARG_DIFF_DST_0
1895 #define DNNL_ARG_DIFF_DST_LAYER DNNL_ARG_DIFF_DST_0
1898 
1900 #define DNNL_ARG_DIFF_DST_1 146
1901 #define DNNL_ARG_DIFF_DST_ITER DNNL_ARG_DIFF_DST_1
1904 
1906 #define DNNL_ARG_DIFF_DST_2 147
1907 #define DNNL_ARG_DIFF_DST_ITER_C DNNL_ARG_DIFF_DST_2
1910 
1912 #define DNNL_ARG_DIFF_WEIGHTS_0 161
1913 #define DNNL_ARG_DIFF_WEIGHTS DNNL_ARG_DIFF_WEIGHTS_0
1916 #define DNNL_ARG_DIFF_SCALE_SHIFT DNNL_ARG_DIFF_WEIGHTS_0
1919 #define DNNL_ARG_DIFF_WEIGHTS_LAYER DNNL_ARG_DIFF_WEIGHTS_0
1922 
1924 #define DNNL_ARG_DIFF_WEIGHTS_1 162
1925 #define DNNL_ARG_DIFF_WEIGHTS_ITER DNNL_ARG_DIFF_WEIGHTS_1
1928 
1930 #define DNNL_ARG_DIFF_WEIGHTS_2 163
1931 #define DNNL_ARG_DIFF_WEIGHTS_PEEPHOLE DNNL_ARG_DIFF_WEIGHTS_2
1934 
1936 #define DNNL_ARG_DIFF_WEIGHTS_3 164
1937 #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
1950 #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 
1963 typedef struct {
1964  int arg;
1966 } dnnl_exec_arg_t;
1967 
1969 
1972 
2002 typedef enum {
2004 
2007 
2010 
2013 
2018 
2021 
2024 
2026 
2027  // memory and op descriptor section
2046 
2047  // memory descriptor section
2058 } dnnl_query_t;
2059 
2061 
2063 
2066 
2068 typedef enum {
2079 
2082 struct dnnl_stream;
2084 typedef struct dnnl_stream *dnnl_stream_t;
2086 typedef const struct dnnl_stream *const_dnnl_stream_t;
2087 
2089 struct dnnl_stream_attr;
2091 typedef struct dnnl_stream_attr *dnnl_stream_attr_t;
2093 typedef 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 
2120 typedef struct {
2121  int major;
2122  int minor;
2123  int patch;
2124  const char *hash;
2125  unsigned cpu_runtime;
2126  unsigned gpu_runtime;
2127 } dnnl_version_t;
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 
2150 typedef enum {
2153 
2156 
2159 
2162 
2166 
2170 
2174 
2179 
2184 } dnnl_cpu_isa_t;
2185 
2187 
2189 
2190 #ifdef __cplusplus
2191 }
2192 #endif
2193 
2194 #endif
dnnl_memory_desc_t diff_dst_layer_desc
Destination gradient layer memory descriptor.
Definition: dnnl_types.h:1538
A layer normalization primitive.
Definition: dnnl_types.h:730
destination grad. memory desc
Definition: dnnl_types.h:2054
An element-wise primitive.
Definition: dnnl_types.h:720
dnnl_alg_kind_t activation_kind
Activation function used for vanilla_rnn cell kind.
Definition: dnnl_types.h:1556
dnnl_memory_desc_t weights_layer_desc
Weights layer memory descriptor.
Definition: dnnl_types.h:1505
dnnl_alg_kind_t alg_kind
The kind of pooling algorithm.
Definition: dnnl_types.h:1302
6D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:317
execution engine
Definition: dnnl_types.h:2005
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition: dnnl_types.h:1443
dnnl_memory_desc_t diff_dst_iter_c_desc
Destination gradient iteration memory descriptor for cell state.
Definition: dnnl_types.h:1542
A batch normalization primitive.
Definition: dnnl_types.h:728
Eltwise: bounded_relu.
Definition: dnnl_types.h:775
Undefined memory format tag.
Definition: dnnl_types.h:169
3D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:212
A tensor in a generic format described by the stride and blocking values in each dimension.
Definition: dnnl_types.h:89
4D LSTM projection tensor in the format (num_layers, num_directions, num_channels_in_hidden_state, num_channels_in_recurrent_projection).
Definition: dnnl_types.h:470
CPU engine.
Definition: dnnl_types.h:1650
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1363
Eltwise: ReLU (dst for backward)
Definition: dnnl_types.h:800
destination memory desc
Definition: dnnl_types.h:2053
Direct deconvolution.
Definition: dnnl_types.h:757
struct dnnl_memory * dnnl_memory_t
A memory handle.
Definition: dnnl_types.h:1104
A descriptor for an RNN operation.
Definition: dnnl_types.h:1486
The user manages the scratchpad allocation by querying and providing the scratchpad memory to primiti...
Definition: dnnl_types.h:1722
layer normalization descriptor
Definition: dnnl_types.h:2038
memory consumption – extra
Definition: dnnl_types.h:2012
dnnl_primitive_kind_t
Kinds of primitives.
Definition: dnnl_types.h:704
permuted 3D tensor
Definition: dnnl_types.h:194
Eltwise: linear.
Definition: dnnl_types.h:773
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:1447
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
Internal weights format for 2x3 Winograd.
Definition: dnnl_types.h:973
dnnl_memory_desc_t data_scaleshift_desc
Scale and shift data and gradient memory descriptors.
Definition: dnnl_types.h:1411
void * dnnl_op_desc_t
A pointer to any of the operation descriptors.
Definition: dnnl_types.h:1120
dnnl_alg_kind_t alg_kind
LRN algorithm.
Definition: dnnl_types.h:1338
A resampling primitive.
Definition: dnnl_types.h:744
dnnl_format_kind_t format_kind
Memory format kind.
Definition: dnnl_types.h:1084
An opaque structure to describe a primitive.
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1366
GRU cell with linear before reset.
Definition: dnnl_types.h:836
Any ISA (no restrictions)
Definition: dnnl_types.h:2152
dnnl_dims_t strides
Pooling kernel strides for spatial dimensions.
Definition: dnnl_types.h:1312
4D CNN weights tensor, an alias to dnnl_acdb
Definition: dnnl_types.h:416
Undefined data type, used for empty memory descriptors.
Definition: dnnl_types.h:64
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1605
dnnl_dim_t group_size
Number of groups.
Definition: dnnl_types.h:1200
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:1154
5D CNN weights tensor, an alias to dnnl_acdeb
Definition: dnnl_types.h:426
float scale_adjust
Scale applied to the data.
Definition: dnnl_types.h:1041
dnnl_convolution_desc_t dnnl_deconvolution_desc_t
A descriptor of a deconvolution operation.
Definition: dnnl_types.h:1179
4D CNN weights tensor (incl. groups), an alias to dnnl_abcd
Definition: dnnl_types.h:431
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1264
dnnl_alg_kind_t alg_kind
The kind of the convolution algorithm.
Definition: dnnl_types.h:1144
In-order execution.
Definition: dnnl_types.h:2073
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1170
Use no normalization flags.
Definition: dnnl_types.h:861
scratchpad memory desc
Definition: dnnl_types.h:2056
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1627
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1297
dnnl_memory_t memory
Input/output memory.
Definition: dnnl_types.h:1965
const void * const_dnnl_op_desc_t
A pointer to any of the operation descriptors (constant variant).
Definition: dnnl_types.h:1122
Intel Streaming SIMD Extensions 4.1 (Intel SSE4.1)
Definition: dnnl_types.h:2155
Eltwise: clip.
Definition: dnnl_types.h:794
An opaque structure for primitive descriptor attributes.
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1158
logsoftmax descriptor
Definition: dnnl_types.h:2043
permuted 4D tensor
Definition: dnnl_types.h:191
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1304
float lrn_alpha
LRN alpha parameter.
Definition: dnnl_types.h:1347
dnnl_memory_desc_t diff_weights_desc
Weights gradient memory descriptor.
Definition: dnnl_types.h:1445
dnnl_memory_desc_t dst_iter_c_desc
Destination iter memory descriptor for cell state.
Definition: dnnl_types.h:1515
Primitive iterator passed over last primitive descriptor.
Definition: dnnl_types.h:49
int minor
Minor version.
Definition: dnnl_types.h:2122
2D CNN weights tensor, an alias to dnnl_ab
Definition: dnnl_types.h:400
An opaque structure to describe a memory.
dnnl_memory_desc_t dst_layer_desc
Destination layer memory descriptor.
Definition: dnnl_types.h:1511
permuted 5D tensor
Definition: dnnl_types.h:192
dnnl_engine_kind_t
Kinds of engines.
Definition: dnnl_types.h:1646
struct dnnl_primitive_desc * dnnl_primitive_desc_t
A primitive descriptor handle.
Definition: dnnl_types.h:1689
Eltwise: square root (dst for backward)
Definition: dnnl_types.h:806
non-standard 16-bit (bfloat16 w/ 7 bit mantissa) floating point.
Definition: dnnl_types.h:68
Undefined primitive.
Definition: dnnl_types.h:706
dnnl_dims_t strides
Convolution strides in each spatial dimension.
Definition: dnnl_types.h:1162
int softmax_axis
The axis along which to perform the softmax.
Definition: dnnl_types.h:1273
Unidirectional execution of RNN primitive from left to right.
Definition: dnnl_types.h:1472
The library manages the scratchpad allocation according to the policy specified by the DNNL_ENABLE_CO...
Definition: dnnl_types.h:1717
5D CNN weights tensor (incl. groups), an alias to dnnl_acbde
Definition: dnnl_types.h:439
3D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:216
3D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBc8b ...
Definition: dnnl_types.h:512
dnnl_dims_t dims
Dimensions in the following order:
Definition: dnnl_types.h:1067
const struct dnnl_memory * const_dnnl_memory_t
A constant memory handle.
Definition: dnnl_types.h:1107
4D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcd16b ...
Definition: dnnl_types.h:497
binary descriptor
Definition: dnnl_types.h:2042
dnnl_memory_desc_t diff_weights_iter_desc
Weights gradient iter memory descriptor.
Definition: dnnl_types.h:1534
permuted 4D tensor
Definition: dnnl_types.h:186
Description of tensor of packed weights for rnn.
Definition: dnnl_types.h:1005
A descriptor of a pooling operation.
Definition: dnnl_types.h:1291
2D CNN activations tensor, an alias to dnnl_ab
Definition: dnnl_types.h:377
plain 2D tensor
Definition: dnnl_types.h:178
4D CNN activations tensor, an alias to dnnl_bcda
Definition: dnnl_types.h:393
4D RNN bias tensor in the format (num_layers, num_directions, num_gates, output_channels).
Definition: dnnl_types.h:480
permuted 5D tensor
Definition: dnnl_types.h:198
Undefined memory format kind, used for empty memory descriptors.
Definition: dnnl_types.h:82
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:1603
Bidirectional execution of RNN primitive with summation of the results.
Definition: dnnl_types.h:1480
32-bit signed integer.
Definition: dnnl_types.h:72
dnnl_memory_desc_t diff_src_iter_c_desc
Source gradient iter memory descriptor for cell state.
Definition: dnnl_types.h:1530
int inner_nblks
The number of innermost blocks, e.g. 3 in case of OIhw_4i16o4i_
Definition: dnnl_types.h:959
Direct convolution.
Definition: dnnl_types.h:751
int major
Major version.
Definition: dnnl_types.h:2121
Just a sentinel, not real memory format tag.
Definition: dnnl_types.h:370
5D tensor blocked by 1st dimension with block size 8
Definition: dnnl_types.h:272
An opaque structure to describe a primitive descriptor iterator.
pooling descriptor
Definition: dnnl_types.h:2035
Convolution algorithm(either direct or Winograd) is chosen just in time.
Definition: dnnl_types.h:755
float lrn_beta
LRN beta parameter.
Definition: dnnl_types.h:1349
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1439
Unidirectional execution of RNN primitive from right to left.
Definition: dnnl_types.h:1474
A deconvolution primitive.
Definition: dnnl_types.h:718
dnnl_memory_desc_t src_iter_desc
Source iteration memory descriptor for hidden state.
Definition: dnnl_types.h:1501
5D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:293
8-bit unsigned integer.
Definition: dnnl_types.h:76
dnnl_alg_kind_t alg_kind
The kind of the binary algorithm.
Definition: dnnl_types.h:1575
A descriptor of a matrix multiplication operation.
Definition: dnnl_types.h:1594
permuted 6D tensor
Definition: dnnl_types.h:204
3D RNN data tensor in the format (batch, seq_length, input channels).
Definition: dnnl_types.h:450
dnnl_alg_kind_t cell_kind
RNN cell kind.
Definition: dnnl_types.h:1495
const char * hash
Git hash of the sources (may be absent)
Definition: dnnl_types.h:2124
5D CNN weights tensor, an alias to dnnl_cdeba
Definition: dnnl_types.h:424
4D CNN activations tensor, an alias to dnnl_acdb
Definition: dnnl_types.h:391
dnnl_query_t
Primitive descriptor query specification.
Definition: dnnl_types.h:2002
Intel Advanced Vector Extensions (Intel AVX)
Definition: dnnl_types.h:2158
Intel AVX-512 subset for Intel Xeon Phi processors 7235, 7285, 7295 Series.
Definition: dnnl_types.h:2169
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition: dnnl_types.h:1601
Backward data propagation.
Definition: dnnl_types.h:695
dnnl_memory_desc_t stat_desc
Statistics memory descriptor.
Definition: dnnl_types.h:1381
A descriptor of a binary operation.
Definition: dnnl_types.h:1568
source gradient memory desc
Definition: dnnl_types.h:2050
A binary primitive.
Definition: dnnl_types.h:738
Structure containing version information as per Semantic Versioning
Definition: dnnl_types.h:2120
int arg
An argument index, e.g. DNNL_ARG_SRC.
Definition: dnnl_types.h:1964
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: dnnl_types.h:1449
LSTM cell.
Definition: dnnl_types.h:826
Packed weights format used in RNN.
Definition: dnnl_types.h:93
4D CNN weights tensor, an alias to dnnl_bcda
Definition: dnnl_types.h:418
4D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:232
A reorder primitive.
Definition: dnnl_types.h:708
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition: dnnl_types.h:1150
A descriptor of a convolution operation.
Definition: dnnl_types.h:1134
2D CNN activations tensor, an alias to dnnl_ba
Definition: dnnl_types.h:379
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1455
softmax descriptor
Definition: dnnl_types.h:2034
Intel AVX-512 subset for Intel Xeon Scalable processor family and Intel Core processor family...
Definition: dnnl_types.h:2173
no query
Definition: dnnl_types.h:2003
dnnl_scratchpad_mode_t
Scratchpad mode.
Definition: dnnl_types.h:1700
Fuse with ReLU.
Definition: dnnl_types.h:900
batch normalization descriptor
Definition: dnnl_types.h:2037
dnnl_dims_t padded_dims
Size of the data including padding in each dimension.
Definition: dnnl_types.h:1073
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_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1619
5D CNN weights tensor, an alias to dnnl_abcde
Definition: dnnl_types.h:422
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
Undefined memory format, used for empty memory descriptors.
Definition: dnnl_types.h:970
runtime estimation (seconds)
Definition: dnnl_types.h:2011
Backward propagation (with respect to all parameters).
Definition: dnnl_types.h:693
An unspecified engine.
Definition: dnnl_types.h:1648
5D tensor blocked by 1st dimension with block size 16
Definition: dnnl_types.h:270
Eltwise: ReLU.
Definition: dnnl_types.h:761
GPU engine.
Definition: dnnl_types.h:1652
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1579
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1571
4D RNN states tensor in the format (num_layers, num_directions, batch, state channels).
Definition: dnnl_types.h:453
5D RNN weights tensor in the format (num_layers, num_directions, input_channels, num_gates, output_channels).
Definition: dnnl_types.h:460
6D CNN weights tensor (incl. groups), an alias to dnnl_acbdef
Definition: dnnl_types.h:443
(scratch) memory, additional to all inputs and outputs memory (bytes)
Definition: dnnl_types.h:2017
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1492
Eltwise: pow.
Definition: dnnl_types.h:796
5D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:281
dnnl_memory_extra_flags_t
Flags for memory special features.
Definition: dnnl_types.h:1019
5D RNN weights tensor in the format (num_layers, num_directions, num_gates, output_channels, input_channels).
Definition: dnnl_types.h:467
permuted 4D tensor
Definition: dnnl_types.h:200
An opaque structure to describe an engine.
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1340
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1599
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1146
6D CNN weights tensor (incl. groups), an alias to dnnl_abcdef
Definition: dnnl_types.h:441
Forward data propagation (inference mode).
Definition: dnnl_types.h:687
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1401
Undefined RNN flags.
Definition: dnnl_types.h:1466
A sum primitive.
Definition: dnnl_types.h:714
unsigned cpu_runtime
CPU runtime.
Definition: dnnl_types.h:2125
5D CNN weights tensor (incl. groups), an alias to dnnl_decab
Definition: dnnl_types.h:437
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1215
Intel Advanced Vector Extensions 512 (Intel AVX-512) subset for Intel Xeon Phi processors x200 Series...
Definition: dnnl_types.h:2165
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1269
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1403
A descriptor of a element-wise operation.
Definition: dnnl_types.h:1209
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
A descriptor of a Softmax operation.
Definition: dnnl_types.h:1261
An opaque structure for a chain of post operations.
A descriptor of an inner product operation.
Definition: dnnl_types.h:1430
The operation failed because of incorrect function arguments.
Definition: dnnl_types.h:45
3D RNN data tensor in the format (seq_length, batch, input channels).
Definition: dnnl_types.h:448
dnnl_memory_desc_t diff_weights_projection_desc
Weights gradient projection memory descriptor.
Definition: dnnl_types.h:1550
dnnl_rnn_direction_t
A direction of RNN primitive execution.
Definition: dnnl_types.h:1470
Internal weights format for 2x3 Winograd.
Definition: dnnl_types.h:972
inner product descriptor
Definition: dnnl_types.h:2039
5D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:274
6D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:319
dnnl_status_t
Status values returned by the library functions.
Definition: dnnl_types.h:39
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1308
Binary mul.
Definition: dnnl_types.h:840
dnnl_memory_desc_t dst_iter_desc
Destination iter memory descriptor for hidden state.
Definition: dnnl_types.h:1513
A softmax primitive.
Definition: dnnl_types.h:722
const struct dnnl_primitive_desc * const_dnnl_primitive_desc_t
A constant primitive descriptor handle.
Definition: dnnl_types.h:1692
int64_t dnnl_dim_t
A type to describe tensor dimension.
Definition: dnnl_types.h:944
Forward data propagation (alias for dnnl_forward_training).
Definition: dnnl_types.h:691
primitive kind
Definition: dnnl_types.h:2006
matrix multiplication (matmul) descriptor
Definition: dnnl_types.h:2044
Default stream configuration.
Definition: dnnl_types.h:2077
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1451
dnnl_memory_desc_t stat_desc
Mean and variance data memory descriptors.
Definition: dnnl_types.h:1418
const struct dnnl_primitive * const_dnnl_primitive_t
A constant primitive handle.
Definition: dnnl_types.h:1776
LRN within a single channel.
Definition: dnnl_types.h:822
dnnl_data_type_t
Data type specification.
Definition: dnnl_types.h:62
plain 4D tensor
Definition: dnnl_types.h:180
Generic description of blocked data layout for most memory formats.
Definition: dnnl_types.h:952
plain 6D tensor
Definition: dnnl_types.h:182
Eltwise: exp (dst for backward)
Definition: dnnl_types.h:810
Winograd convolution.
Definition: dnnl_types.h:753
5D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:307
dnnl_wino_desc_t wino_desc
Tensor of weights for integer 8bit winograd convolution.
Definition: dnnl_types.h:1090
dnnl_alg_kind_t alg_kind
The kind of eltwise algorithm.
Definition: dnnl_types.h:1228
dnnl_format_tag_t
Memory format tag specification.
Definition: dnnl_types.h:164
4D LSTM projection tensor in the format (num_layers, num_directions, num_channels_in_recurrent_projec...
Definition: dnnl_types.h:473
Max pooling.
Definition: dnnl_types.h:812
Eltwise: natural logarithm.
Definition: dnnl_types.h:792
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1631
float batch_norm_epsilon
Batch normalization epsilon parameter.
Definition: dnnl_types.h:1383
dnnl_memory_desc_t weights_projection_desc
Weights projection memory descriptor.
Definition: dnnl_types.h:1523
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1399
Description of tensor of weights for winograd 2x3 convolution.
Definition: dnnl_types.h:980
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1267
4D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcd4b ...
Definition: dnnl_types.h:500
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:1509
3D CNN weights tensor, an alias to dnnl_cba
Definition: dnnl_types.h:408
4D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:252
Out-of-order execution.
Definition: dnnl_types.h:2075
Binary min.
Definition: dnnl_types.h:844
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1332
dnnl_format_kind_t
Memory format kind.
Definition: dnnl_types.h:80
permuted 3D tensor
Definition: dnnl_types.h:188
4D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:268
5D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBcde4b ...
Definition: dnnl_types.h:491
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1489
Average pooling (alias for dnnl_pooling_avg_exclude_padding)
Definition: dnnl_types.h:818
dnnl_memory_desc_t diff_src_layer_desc
Source gradient layer memory descriptor.
Definition: dnnl_types.h:1526
int axis
Axis for shuffling.
Definition: dnnl_types.h:1198
dnnl_rnn_packed_desc_t rnn_packed_desc
Tensor of packed weights for RNN.
Definition: dnnl_types.h:1092
3D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:223
Binary add.
Definition: dnnl_types.h:838
3D CNN activations tensor, an alias to dnnl_abc
Definition: dnnl_types.h:385
deconvolution descriptor
Definition: dnnl_types.h:2031
A pooling primitive.
Definition: dnnl_types.h:724
dnnl_dims_t strides
The strides between the outermost blocks.
Definition: dnnl_types.h:955
rnn descriptor
Definition: dnnl_types.h:2040
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1137
Eltwise: logistic.
Definition: dnnl_types.h:779
A descriptor of a shuffle operation.
Definition: dnnl_types.h:1187
const struct dnnl_primitive_desc_iterator * const_dnnl_primitive_desc_iterator_t
A constant primitive descriptor iterator handle.
Definition: dnnl_types.h:1681
dnnl_dims_t kernel
Pooling kernel spatial dimensions.
Definition: dnnl_types.h:1314
Eltwise: hyperbolic tangent non-linearity (tanh) (dst for backward)
Definition: dnnl_types.h:802
Winograd deconvolution.
Definition: dnnl_types.h:759
permuted 4D tensor
Definition: dnnl_types.h:201
number of outputs expected
Definition: dnnl_types.h:2009
#define DNNL_MAX_NDIMS
Maximum number of dimensions a tensor can have.
Definition: dnnl_types.h:912
5D CNN weights tensor (incl. groups), an alias to dnnl_abcde
Definition: dnnl_types.h:435
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1441
float lrn_k
LRN k parameter.
Definition: dnnl_types.h:1351
dnnl_rnn_direction_t direction
The direction of RNN primitive execution.
Definition: dnnl_types.h:1497
6D CNN weights tensor (incl. groups), an alias to dnnl_defcab
Definition: dnnl_types.h:445
GEMM descriptor (internal)
Definition: dnnl_types.h:2041
plain 1D tensor
Definition: dnnl_types.h:177
Bidirectional execution of RNN primitive with concatenation of the results.
Definition: dnnl_types.h:1477
permuted 2D tensor
Definition: dnnl_types.h:193
permuted 5D tensor
Definition: dnnl_types.h:203
permuted 6D tensor
Definition: dnnl_types.h:190
dnnl_memory_desc_t src_iter_c_desc
Source iteration memory descriptor for cell state.
Definition: dnnl_types.h:1503
stub
Definition: dnnl_types.h:2028
dnnl_memory_desc_t diff_desc
Source and Destination of gradient memory descriptor.
Definition: dnnl_types.h:1271
3D CNN weights tensor, an alias to dnnl_bca
Definition: dnnl_types.h:410
5D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcde8b ...
Definition: dnnl_types.h:494
propagation kind
Definition: dnnl_types.h:2025
An inner product primitive.
Definition: dnnl_types.h:732
Use global statistics.
Definition: dnnl_types.h:874
GRU cell.
Definition: dnnl_types.h:828
3D CNN activations tensor, an alias to dnnl_acb
Definition: dnnl_types.h:387
The operation was successful.
Definition: dnnl_types.h:41
A descriptor of a Layer Normalization operation.
Definition: dnnl_types.h:1393
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1190
8-bit signed integer.
Definition: dnnl_types.h:74
convolution descriptor
Definition: dnnl_types.h:2030
dnnl_memory_desc_t weights_peephole_desc
Weights peephole memory descriptor.
Definition: dnnl_types.h:1519
RNN cell.
Definition: dnnl_types.h:824
Alias for dnnl_unidirectional_left2right.
Definition: dnnl_types.h:1482
A (out-of-place) concat primitive.
Definition: dnnl_types.h:712
Internal weights format for 2x3 Winograd.
Definition: dnnl_types.h:974
dnnl_dims_t dilates
Convolution dilates in each spatial dimension.
Definition: dnnl_types.h:1164
const struct dnnl_stream * const_dnnl_stream_t
A constant execution stream handle.
Definition: dnnl_types.h:2086
2D RNN statistics tensor, an alias to dnnl_ba
Definition: dnnl_types.h:383
5D CNN activations tensor, an alias to dnnl_acdeb
Definition: dnnl_types.h:397
Intel AVX-512 and Intel Deep Learning Boost (Intel DL Boost) support for Intel Xeon Scalable processo...
Definition: dnnl_types.h:2178
Undefined memory format tag.
Definition: dnnl_types.h:166
permuted 5D tensor
Definition: dnnl_types.h:189
Eltwise: square root.
Definition: dnnl_types.h:771
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1368
int patch
Patch version.
Definition: dnnl_types.h:2123
permuted 3D tensor
Definition: dnnl_types.h:196
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1342
source memory desc
Definition: dnnl_types.h:2049
Eltwise: swish.
Definition: dnnl_types.h:790
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1335
#define DNNL_RNN_MAX_N_PARTS
Maximum number of parts of RNN weights tensor that require separate computation.
Definition: dnnl_types.h:1002
struct dnnl_stream_attr * dnnl_stream_attr_t
An execution stream attributes handle.
Definition: dnnl_types.h:2091
Memory descriptor.
Definition: dnnl_types.h:1050
dnnl_wino_memory_format_t
Winograd-specific formats.
Definition: dnnl_types.h:968
2D RNN statistics tensor, an alias to dnnl_ab
Definition: dnnl_types.h:381
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1396
dnnl_data_type_t data_type
Data type of the tensor elements.
Definition: dnnl_types.h:1070
A matrix multiplication primitive.
Definition: dnnl_types.h:742
Queried element is not required for given primitive.
Definition: dnnl_types.h:53
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1320
Eltwise: erf-based gelu.
Definition: dnnl_types.h:798
Indicates the weights have an additional buffer, that depends on the compensation_mask.
Definition: dnnl_types.h:1028
dnnl_blocking_desc_t blocking
Description of the data layout for memory formats that use blocking.
Definition: dnnl_types.h:1088
dnnl_dims_t inner_idxs
The logical indices of the blocks, e.g.
Definition: dnnl_types.h:964
The operation failed due to an out-of-memory condition.
Definition: dnnl_types.h:43
Backward weights propagation.
Definition: dnnl_types.h:697
3D CNN weights tensor, an alias to dnnl_acb
Definition: dnnl_types.h:406
dnnl_memory_desc_t diff_weights_desc
Weights gradient memory descriptor.
Definition: dnnl_types.h:1152
Default order execution.
Definition: dnnl_types.h:2071
dnnl_memory_desc_t data_scaleshift_desc
Scale and shift data and gradient memory descriptors.
Definition: dnnl_types.h:1376
workspace memory desc
Definition: dnnl_types.h:2055
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1597
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1160
eltwise descriptor
Definition: dnnl_types.h:2033
number of inputs expected
Definition: dnnl_types.h:2008
const struct dnnl_stream_attr * const_dnnl_stream_attr_t
A constant execution stream attributes handle.
Definition: dnnl_types.h:2093
shuffle descriptor
Definition: dnnl_types.h:2032
Average pooling include padding.
Definition: dnnl_types.h:814
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1370
Weights format used in 8bit Winograd convolution.
Definition: dnnl_types.h:91
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1629
32-bit/single-precision floating point.
Definition: dnnl_types.h:70
permuted 5D tensor
Definition: dnnl_types.h:202
A structure that contains an index and a memory object, and is used to pass arguments to dnnl_primiti...
Definition: dnnl_types.h:1963
Intel AVX-512, Intel DL Boost and bfloat16 support for Intel Xeon Scalable processor family and Intel...
Definition: dnnl_types.h:2183
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1622
4D CNN activations tensor blocked by channels with block size 8, an alias to dnnl_aBcd8b ...
Definition: dnnl_types.h:503
struct dnnl_primitive_attr * dnnl_primitive_attr_t
A primitive descriptor attributes handle that controls primitive behavior.
Definition: dnnl_types.h:1734
lrn descriptor
Definition: dnnl_types.h:2036
dnnl_memory_desc_t src_layer_desc
Source layer memory descriptor.
Definition: dnnl_types.h:1499
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1633
4D tensor blocked by 1st and 2nd dimension with block size 8
Definition: dnnl_types.h:258
A shuffle primitive.
Definition: dnnl_types.h:710
for creating scratchpad memory
Definition: dnnl_types.h:2020
float layer_norm_epsilon
Layer normalization epsilon parameter.
Definition: dnnl_types.h:1420
dnnl_memory_desc_t diff_weights_peephole_desc
Weights gradient peephole memory descriptor.
Definition: dnnl_types.h:1546
struct dnnl_engine * dnnl_engine_t
An engine handle.
Definition: dnnl_types.h:1659
unsigned int flags
RNN cell flags.
Definition: dnnl_types.h:1553
permuted 4D tensor
Definition: dnnl_types.h:197
4D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:238
Binary max.
Definition: dnnl_types.h:842
Unspecified format kind.
Definition: dnnl_types.h:85
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1193
2D CNN weights tensor, an alias to dnnl_ba
Definition: dnnl_types.h:402
Average pooling exclude padding.
Definition: dnnl_types.h:816
3D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBc16b ...
Definition: dnnl_types.h:506
dnnl_alg_kind_t
Kinds of algorithms.
Definition: dnnl_types.h:748
4D CNN weights tensor, an alias to dnnl_cdba
Definition: dnnl_types.h:414
permuted 3D tensor
Definition: dnnl_types.h:199
dnnl_rnn_flags_t
Flags for RNN cell.
Definition: dnnl_types.h:1464
uint64_t flags
The flags contain arbitrary extra information, such as compensation.
Definition: dnnl_types.h:1037
dnnl_memory_desc_t diff_dst_iter_desc
Destination gradient iteration memory descriptor for hidden state.
Definition: dnnl_types.h:1540
Description of extra information stored in memory.
Definition: dnnl_types.h:1034
4D CNN weights tensor (incl. groups), an alias to dnnl_dcab
Definition: dnnl_types.h:433
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1437
An LRN primitive.
Definition: dnnl_types.h:726
A descriptor of a Local Response Normalization (LRN) operation.
Definition: dnnl_types.h:1329
dnnl_softmax_desc_t dnnl_logsoftmax_desc_t
A descriptor of a LogSoftmax operation.
Definition: dnnl_types.h:1283
int ndims
Number of dimensions.
Definition: dnnl_types.h:1052
dnnl_stream_flags_t
Stream flags.
Definition: dnnl_types.h:2068
dnnl_dim_t dnnl_dims_t[DNNL_MAX_NDIMS]
A type to describe tensor dimensions.
Definition: dnnl_types.h:947
Undefined propagation type.
Definition: dnnl_types.h:680
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1232
Primitive or engine failed on execution.
Definition: dnnl_types.h:51
op descriptor
Definition: dnnl_types.h:2029
6D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:314
dnnl_memory_desc_t weights_iter_desc
Weights iteration memory descriptor.
Definition: dnnl_types.h:1507
const struct dnnl_post_ops * const_dnnl_post_ops_t
A constant post operation chain handle.
Definition: dnnl_types.h:1763
Eltwise: exponent.
Definition: dnnl_types.h:781
1D tensor, an alias to dnnl_a
Definition: dnnl_types.h:375
Local response normalization (LRN) across multiple channels.
Definition: dnnl_types.h:820
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1294
resampling descriptor
Definition: dnnl_types.h:2045
const struct dnnl_primitive_attr * const_dnnl_primitive_attr_t
A constant primitive descriptor attributes handle.
Definition: dnnl_types.h:1737
A matrix multiplication primitive (internal).
Definition: dnnl_types.h:736
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: dnnl_types.h:1536
plain 3D tensor
Definition: dnnl_types.h:179
Use scale and shift parameters.
Definition: dnnl_types.h:887
A descriptor of a Batch Normalization operation.
Definition: dnnl_types.h:1360
5D CNN weights tensor, an alias to dnnl_bcdea
Definition: dnnl_types.h:428
struct dnnl_primitive * dnnl_primitive_t
A primitive handle.
Definition: dnnl_types.h:1774
Intel Advanced Vector Extensions 2 (Intel AVX2)
Definition: dnnl_types.h:2161
3D CNN activations tensor blocked by channels with block size 4, an alias to dnnl_aBc4b ...
Definition: dnnl_types.h:509
struct dnnl_stream * dnnl_stream_t
An execution stream handle.
Definition: dnnl_types.h:2084
4D CNN weights tensor, an alias to dnnl_bacd
Definition: dnnl_types.h:420
Eltwise: exponential linear unit (elu) (dst for backward)
Definition: dnnl_types.h:804
Eltwise: exponential linear unit (elu)
Definition: dnnl_types.h:765
Forward data propagation (alias for dnnl_forward_inference).
Definition: dnnl_types.h:689
6D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:309
5D CNN activations tensor blocked by channels with block size 16, an alias to dnnl_aBcde16b ...
Definition: dnnl_types.h:488
An opaque structure to describe a primitive descriptor.
dnnl_prop_kind_t prop_kind
The kind of propagation.
Definition: dnnl_types.h:1141
struct dnnl_primitive_desc_iterator * dnnl_primitive_desc_iterator_t
A primitive descriptor iterator handle.
Definition: dnnl_types.h:1678
Eltwise: abs.
Definition: dnnl_types.h:769
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1230
Internal weights format for 4x3 Winograd.
Definition: dnnl_types.h:976
Forward data propagation (training mode).
Definition: dnnl_types.h:683
permuted 5D tensor
Definition: dnnl_types.h:187
dnnl_memory_desc_t data_desc
Source and destination memory descriptor, and source and destination gradient memory descriptor...
Definition: dnnl_types.h:1196
Eltwise: tanh-based gelu (alias for dnnl_eltwise_gelu_tanh)
Definition: dnnl_types.h:788
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1148
A rnn primitive.
Definition: dnnl_types.h:734
An opaque structure to describe an execution stream.
4D CNN activations tensor, an alias to dnnl_abcd
Definition: dnnl_types.h:389
A logsoftmax primitive.
Definition: dnnl_types.h:740
The operation failed because requested functionality is not implemented.
Definition: dnnl_types.h:47
Eltwise: gelu.
Definition: dnnl_types.h:786
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1607
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 diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1306
Eltwise: hyperbolic tangent non-linearity (tanh)
Definition: dnnl_types.h:763
struct dnnl_post_ops * dnnl_post_ops_t
A post operation chain handle.
Definition: dnnl_types.h:1760
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:1310
dnnl_prop_kind_t
Kinds of propagation.
Definition: dnnl_types.h:677
stub
Definition: dnnl_types.h:2048
Nearest Neighbor Resampling Method.
Definition: dnnl_types.h:846
permuted 4D tensor
Definition: dnnl_types.h:195
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1453
16-bit/half-precision floating point.
Definition: dnnl_types.h:66
source engine
Definition: dnnl_types.h:2022
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: dnnl_types.h:1156
dnnl_alg_kind_t alg_kind
The kind of the resampling algorithm.
Definition: dnnl_types.h:1625
dnnl_normalization_flags_t
Flags for normalization primitives.
Definition: dnnl_types.h:852
weights grad. memory desc
Definition: dnnl_types.h:2052
A convolution primitive.
Definition: dnnl_types.h:716
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1212
memory desc of an execute argument
Definition: dnnl_types.h:2057
Backward bias propagation.
Definition: dnnl_types.h:699
5D CNN activations tensor, an alias to dnnl_abcde
Definition: dnnl_types.h:395
4D CNN weights tensor, an alias to dnnl_abcd
Definition: dnnl_types.h:412
Eltwise: logistic (dst for backward)
Definition: dnnl_types.h:808
dnnl_memory_desc_t diff_weights_layer_desc
Weights gradient layer memory descriptor.
Definition: dnnl_types.h:1532
weights memory descriptor desc
Definition: dnnl_types.h:2051
unsigned gpu_runtime
GPU runtime.
Definition: dnnl_types.h:2126
Linear Resampling Method.
Definition: dnnl_types.h:848
3D CNN weights tensor, an alias to dnnl_abc
Definition: dnnl_types.h:404
dnnl_cpu_isa_t
CPU instruction set flags.
Definition: dnnl_types.h:2150
int compensation_mask
Compensation mask.
Definition: dnnl_types.h:1039
Eltwise: soft_relu.
Definition: dnnl_types.h:777
plain 5D tensor
Definition: dnnl_types.h:181
destination engine
Definition: dnnl_types.h:2023
dnnl_primitive_kind_t primitive_kind
The kind of primitive.
Definition: dnnl_types.h:1433
Eltwise: square.
Definition: dnnl_types.h:767
float alpha
Algorithm specific parameter.
Definition: dnnl_types.h:1252