mxnet
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 
206 
207  // Opaque blocked formats
208 
407 
411 
412  // Aliases
413 
438 
471 
488 
523 
524  // Opaque data types, are not to be used explicitly
525 
526  // data
569 
570  // weights, 3D
594 
595  // weights, 4D
620 
621  // weights, 5D
643 
644  // weights w/ groups, 3D
675 
676  // weights w/ groups, 4D
704 
710 
723 
724  // weights w/ groups, 6D
752 
754 
759 
761 typedef enum {
762  // TODO: suggest renames
785 
788 typedef enum {
829 
834 
836 typedef enum {
926  dnnl_lbr_gru = 0x4fff,
928  dnnl_binary_add = 0x1fff0,
930  dnnl_binary_mul = 0x1fff1,
932  dnnl_binary_max = 0x1fff2,
934  dnnl_binary_min = 0x1fff3,
940 
942 typedef enum {
952 
965 
978 
992 
995 
998 
1002 #define DNNL_MAX_NDIMS 12
1003 
1006 #define DNNL_RUNTIME_DIM_VAL INT64_MIN
1007 
1011 #define DNNL_RUNTIME_SIZE_VAL ((size_t)DNNL_RUNTIME_DIM_VAL)
1012 
1015 static const union {
1016  unsigned u;
1017  float f;
1018 } DNNL_RUNTIME_F32_VAL_REP = {0x7fc000d0};
1020 
1023 #define DNNL_RUNTIME_F32_VAL (DNNL_RUNTIME_F32_VAL_REP.f)
1024 
1026 static const int DNNL_RUNTIME_S32_VAL_REP = INT32_MIN;
1028 
1031 #define DNNL_RUNTIME_S32_VAL DNNL_RUNTIME_S32_VAL_REP
1032 
1034 typedef int64_t dnnl_dim_t;
1035 
1037 typedef dnnl_dim_t dnnl_dims_t[DNNL_MAX_NDIMS];
1038 
1042 typedef struct {
1045  dnnl_dims_t strides;
1046  // Innermost section
1047  // ASSUMPTION: the innermost blocks are always dense
1051  dnnl_dims_t inner_blks;
1054  dnnl_dims_t inner_idxs;
1056 
1058 typedef enum {
1061  // Tensors of weights for 2x3 winograd convolutions.
1065  // Tensor of weights for 4x3 convolution.
1068 
1070 typedef struct {
1071  dnnl_wino_memory_format_t wino_format;
1072  int r;
1073  int alpha;
1074  int ic;
1075  int oc;
1080  float adj_scale;
1081  size_t size;
1083 
1084 typedef enum {
1089 
1092 #define DNNL_RNN_MAX_N_PARTS 4
1093 
1095 typedef struct {
1096  dnnl_rnn_packed_memory_format_t format;
1097  int n_parts;
1098  int n;
1099  int ldb;
1101  size_t part_pack_size[DNNL_RNN_MAX_N_PARTS];
1102  unsigned pack_part[DNNL_RNN_MAX_N_PARTS];
1104  size_t size;
1105  char reserved[200];
1107 
1109 typedef enum {
1122 
1124 typedef struct {
1127  uint64_t flags;
1133  char reserved[64];
1135 
1140 typedef struct {
1142  int ndims;
1157  dnnl_dims_t dims;
1158 
1161 
1163  dnnl_dims_t padded_dims;
1164 
1167  dnnl_dims_t padded_offsets;
1168 
1171  dnnl_dim_t offset0;
1172 
1174  dnnl_format_kind_t format_kind;
1175  union {
1183  // ... other descriptions possible
1184  } format_desc;
1185 
1188 
1191 struct dnnl_memory;
1192 
1194 typedef struct dnnl_memory *dnnl_memory_t;
1195 
1197 typedef const struct dnnl_memory *const_dnnl_memory_t;
1198 
1199 #define DNNL_MEMORY_NONE (NULL)
1200 #define DNNL_MEMORY_ALLOCATE ((void *)(size_t)-1)
1201 
1203 
1208 
1210 typedef void *dnnl_op_desc_t;
1212 typedef const void *const_dnnl_op_desc_t;
1213 
1216 
1219 
1222 
1224 typedef struct {
1252  dnnl_dims_t strides;
1254  dnnl_dims_t dilates;
1258  dnnl_dims_t padding[2];
1262 
1264 
1267 
1270 
1272 
1275 
1277 typedef struct {
1288  int axis;
1290  dnnl_dim_t group_size;
1292 
1294 
1297 
1299 typedef struct {
1343  float alpha, beta;
1345 
1347 
1350 
1352 typedef struct {
1366 
1368 
1371 
1375 
1377 
1380 
1382 typedef struct {
1403  dnnl_dims_t strides;
1405  dnnl_dims_t kernel;
1409  dnnl_dims_t padding[2];
1413 
1415 
1418 
1420 typedef struct {
1436  dnnl_dim_t local_size;
1438  float lrn_alpha;
1440  float lrn_beta;
1442  float lrn_k;
1443 } dnnl_lrn_desc_t;
1444 
1446 
1449 
1451 typedef struct {
1475  unsigned flags;
1477 
1479 
1482 
1484 typedef struct {
1512  unsigned flags;
1514 
1516 
1519 
1521 typedef struct {
1548 
1550 
1553 
1555 typedef enum {
1559 
1561 typedef enum {
1575 
1577 typedef struct {
1588  dnnl_rnn_direction_t direction;
1615 
1642 
1644  unsigned int flags;
1648  float alpha;
1649  float beta;
1650 
1651 } dnnl_rnn_desc_t;
1652 
1654 
1657 
1659 typedef struct {
1668  dnnl_memory_desc_t src_desc[2];
1672 
1674 
1677 
1685 typedef struct {
1700 
1702 
1705 
1707 typedef struct {
1726  float factors[DNNL_MAX_NDIMS];
1728 
1730 
1732 
1735 
1737 typedef enum {
1745 
1748 struct dnnl_engine;
1750 typedef struct dnnl_engine *dnnl_engine_t;
1751 #if 0
1752 // FIXME: looks like this never happens
1754 typedef const struct dnnl_engine *const_dnnl_engine_t;
1755 #endif
1756 
1758 
1763 
1767 
1770 
1772 typedef const struct dnnl_primitive_desc_iterator
1774 
1777 struct dnnl_primitive_desc;
1778 
1781 
1784 
1786 
1789 
1791 typedef enum {
1815 
1821 struct dnnl_primitive_attr;
1822 
1826 
1829 
1848 struct dnnl_post_ops;
1849 
1852 
1854 typedef const struct dnnl_post_ops *const_dnnl_post_ops_t;
1855 
1857 
1860 
1863 struct dnnl_primitive;
1868 
1870 #define DNNL_ARG_SRC_0 1
1871 #define DNNL_ARG_SRC DNNL_ARG_SRC_0
1874 #define DNNL_ARG_SRC_LAYER DNNL_ARG_SRC_0
1877 #define DNNL_ARG_FROM DNNL_ARG_SRC_0
1880 
1882 #define DNNL_ARG_SRC_1 2
1883 #define DNNL_ARG_SRC_ITER DNNL_ARG_SRC_1
1886 
1888 #define DNNL_ARG_SRC_2 3
1889 #define DNNL_ARG_SRC_ITER_C DNNL_ARG_SRC_2
1892 
1894 #define DNNL_ARG_DST_0 17
1895 #define DNNL_ARG_DST DNNL_ARG_DST_0
1898 #define DNNL_ARG_TO DNNL_ARG_DST_0
1901 #define DNNL_ARG_DST_LAYER DNNL_ARG_DST_0
1903 
1905 #define DNNL_ARG_DST_1 18
1906 #define DNNL_ARG_DST_ITER DNNL_ARG_DST_1
1909 
1911 #define DNNL_ARG_DST_2 19
1912 #define DNNL_ARG_DST_ITER_C DNNL_ARG_DST_2
1915 
1917 #define DNNL_ARG_WEIGHTS_0 33
1918 #define DNNL_ARG_WEIGHTS DNNL_ARG_WEIGHTS_0
1921 #define DNNL_ARG_SCALE_SHIFT DNNL_ARG_WEIGHTS_0
1924 #define DNNL_ARG_WEIGHTS_LAYER DNNL_ARG_WEIGHTS_0
1927 
1929 #define DNNL_ARG_WEIGHTS_1 34
1930 #define DNNL_ARG_WEIGHTS_ITER DNNL_ARG_WEIGHTS_1
1933 
1935 #define DNNL_ARG_WEIGHTS_2 35
1936 #define DNNL_ARG_WEIGHTS_PEEPHOLE DNNL_ARG_WEIGHTS_2
1939 
1941 #define DNNL_ARG_WEIGHTS_3 36
1942 #define DNNL_ARG_WEIGHTS_PROJECTION DNNL_ARG_WEIGHTS_3
1945 
1947 #define DNNL_ARG_BIAS 41
1948 
1950 #define DNNL_ARG_MEAN 49
1951 #define DNNL_ARG_VARIANCE 50
1953 
1956 #define DNNL_ARG_WORKSPACE 64
1957 #define DNNL_ARG_SCRATCHPAD 80
1959 
1961 #define DNNL_ARG_DIFF_SRC_0 129
1962 #define DNNL_ARG_DIFF_SRC DNNL_ARG_DIFF_SRC_0
1965 #define DNNL_ARG_DIFF_SRC_LAYER DNNL_ARG_DIFF_SRC_0
1968 
1970 #define DNNL_ARG_DIFF_SRC_1 130
1971 #define DNNL_ARG_DIFF_SRC_ITER DNNL_ARG_DIFF_SRC_1
1974 
1976 #define DNNL_ARG_DIFF_SRC_2 131
1977 #define DNNL_ARG_DIFF_SRC_ITER_C DNNL_ARG_DIFF_SRC_2
1980 
1982 #define DNNL_ARG_DIFF_DST_0 145
1983 #define DNNL_ARG_DIFF_DST DNNL_ARG_DIFF_DST_0
1986 #define DNNL_ARG_DIFF_DST_LAYER DNNL_ARG_DIFF_DST_0
1989 
1991 #define DNNL_ARG_DIFF_DST_1 146
1992 #define DNNL_ARG_DIFF_DST_ITER DNNL_ARG_DIFF_DST_1
1995 
1997 #define DNNL_ARG_DIFF_DST_2 147
1998 #define DNNL_ARG_DIFF_DST_ITER_C DNNL_ARG_DIFF_DST_2
2001 
2003 #define DNNL_ARG_DIFF_WEIGHTS_0 161
2004 #define DNNL_ARG_DIFF_WEIGHTS DNNL_ARG_DIFF_WEIGHTS_0
2007 #define DNNL_ARG_DIFF_SCALE_SHIFT DNNL_ARG_DIFF_WEIGHTS_0
2010 #define DNNL_ARG_DIFF_WEIGHTS_LAYER DNNL_ARG_DIFF_WEIGHTS_0
2013 
2015 #define DNNL_ARG_DIFF_WEIGHTS_1 162
2016 #define DNNL_ARG_DIFF_WEIGHTS_ITER DNNL_ARG_DIFF_WEIGHTS_1
2019 
2021 #define DNNL_ARG_DIFF_WEIGHTS_2 163
2022 #define DNNL_ARG_DIFF_WEIGHTS_PEEPHOLE DNNL_ARG_DIFF_WEIGHTS_2
2025 
2027 #define DNNL_ARG_DIFF_WEIGHTS_3 164
2028 #define DNNL_ARG_DIFF_WEIGHTS_PROJECTION DNNL_ARG_DIFF_WEIGHTS_3
2031 
2033 #define DNNL_ARG_DIFF_BIAS 169
2034 
2036 #define DNNL_ARG_ATTR_OUTPUT_SCALES 513
2037 
2040 #define DNNL_ARG_MULTIPLE_SRC 1024
2041 #define DNNL_ARG_MULTIPLE_DST 2048
2044 
2046 #define DNNL_ARG_ATTR_ZERO_POINTS 4096
2047 
2050 #define DNNL_ARG_ATTR_POST_OP_DW 8192
2051 
2054 typedef struct {
2055  int arg;
2056  dnnl_memory_t memory;
2057 } dnnl_exec_arg_t;
2058 
2060 
2063 
2093 typedef enum {
2095 
2098 
2101 
2104 
2109 
2112 
2115 
2117 
2118  // memory and op descriptor section
2137 
2138  // memory descriptor section
2149 
2150  // Max value to prevent UB for internal use only dnnl_query_t
2151  dnnl_query_max = 0x7fff,
2152 } dnnl_query_t;
2153 
2155 
2157 
2160 
2162 typedef enum {
2173 
2176 struct dnnl_stream;
2178 typedef struct dnnl_stream *dnnl_stream_t;
2180 typedef const struct dnnl_stream *const_dnnl_stream_t;
2181 
2183 struct dnnl_stream_attr;
2185 typedef struct dnnl_stream_attr *dnnl_stream_attr_t;
2187 typedef const struct dnnl_stream_attr *const_dnnl_stream_attr_t;
2188 
2190 
2193 
2195 #define DNNL_RUNTIME_NONE 0u
2196 
2198 #define DNNL_RUNTIME_SEQ 1u
2199 
2201 #define DNNL_RUNTIME_OMP 2u
2202 
2204 #define DNNL_RUNTIME_TBB 4u
2205 
2207 #define DNNL_RUNTIME_THREADPOOL 8u
2208 
2210 #define DNNL_RUNTIME_OCL 256u
2211 
2214 typedef struct {
2215  int major;
2216  int minor;
2217  int patch;
2218  const char *hash;
2219  unsigned cpu_runtime;
2220  unsigned gpu_runtime;
2221 } dnnl_version_t;
2222 
2224 #define DNNL_JIT_PROFILE_NONE 0u
2225 
2227 #define DNNL_JIT_PROFILE_VTUNE 1u
2228 
2230 #define DNNL_JIT_PROFILE_LINUX_PERFMAP 2u
2231 
2233 #define DNNL_JIT_PROFILE_LINUX_JITDUMP 4u
2234 
2237 #define DNNL_JIT_PROFILE_LINUX_JITDUMP_USE_TSC 8u
2238 
2240 #define DNNL_JIT_PROFILE_LINUX_PERF \
2241  (DNNL_JIT_PROFILE_LINUX_JITDUMP | DNNL_JIT_PROFILE_LINUX_PERFMAP)
2242 
2244 typedef enum {
2247 
2250 
2253 
2256 
2260 
2264 
2268 
2273 
2278 
2283 } dnnl_cpu_isa_t;
2284 
2286 
2288 
2289 #ifdef __cplusplus
2290 }
2291 #endif
2292 
2293 #endif
Definition: dnnl_types.h:592
Definition: dnnl_types.h:583
dnnl_memory_desc_t diff_dst_layer_desc
Destination gradient layer memory descriptor.
Definition: dnnl_types.h:1629
A layer normalization primitive.
Definition: dnnl_types.h:814
Definition: dnnl_types.h:735
destination grad. memory desc
Definition: dnnl_types.h:2145
Definition: dnnl_types.h:607
Definition: dnnl_types.h:702
An element-wise primitive.
Definition: dnnl_types.h:804
dnnl_alg_kind_t activation_kind
Definition: dnnl_types.h:1647
dnnl_memory_desc_t weights_layer_desc
Weights layer memory descriptor.
Definition: dnnl_types.h:1596
dnnl_alg_kind_t alg_kind
Definition: dnnl_types.h:1393
6D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:347
Definition: dnnl_types.h:352
Definition: dnnl_types.h:362
execution engine
Definition: dnnl_types.h:2096
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition: dnnl_types.h:1534
Definition: dnnl_types.h:615
dnnl_memory_desc_t diff_dst_iter_c_desc
Destination gradient iteration memory descriptor for cell state.
Definition: dnnl_types.h:1633
A batch normalization primitive.
Definition: dnnl_types.h:812
Definition: dnnl_types.h:358
Eltwise: bounded_relu.
Definition: dnnl_types.h:863
Definition: dnnl_types.h:1087
Definition: dnnl_types.h:169
3D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:214
Definition: dnnl_types.h:89
int r
Definition: dnnl_types.h:1072
Definition: dnnl_types.h:512
CPU engine.
Definition: dnnl_types.h:1741
dnnl_primitive_kind_t primitive_kind
Definition: dnnl_types.h:1454
Eltwise: ReLU (dst for backward)
Definition: dnnl_types.h:890
Definition: dnnl_types.h:588
Definition: dnnl_types.h:697
destination memory desc
Definition: dnnl_types.h:2144
Direct deconvolution.
Definition: dnnl_types.h:845
Definition: dnnl_types.h:738
Definition: dnnl_types.h:384
Definition: dnnl_types.h:632
struct dnnl_memory * dnnl_memory_t
A memory handle.
Definition: dnnl_types.h:1194
A descriptor for an RNN operation.
Definition: dnnl_types.h:1577
Definition: dnnl_types.h:1813
layer normalization descriptor
Definition: dnnl_types.h:2129
Definition: dnnl_types.h:2103
Definition: dnnl_types.h:627
dnnl_primitive_kind_t
Definition: dnnl_types.h:788
Definition: dnnl_types.h:652
permuted 3D tensor
Definition: dnnl_types.h:194
Definition: dnnl_types.h:296
Eltwise: linear.
Definition: dnnl_types.h:861
Definition: dnnl_types.h:660
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:1538
dnnl_dim_t local_size
Definition: dnnl_types.h:1436
Internal weights format for 2x3 Winograd.
Definition: dnnl_types.h:1063
dnnl_memory_desc_t data_scaleshift_desc
Definition: dnnl_types.h:1502
Definition: dnnl_types.h:261
Definition: dnnl_types.h:667
void * dnnl_op_desc_t
A pointer to any of the operation descriptors.
Definition: dnnl_types.h:1210
Definition: dnnl_types.h:215
int n_parts
Definition: dnnl_types.h:1097
Definition: dnnl_types.h:651
dnnl_alg_kind_t alg_kind
Definition: dnnl_types.h:1429
A resampling primitive.
Definition: dnnl_types.h:828
dnnl_format_kind_t format_kind
Memory format kind.
Definition: dnnl_types.h:1174
Definition: dnnl_types.h:749
dnnl_prop_kind_t prop_kind
Definition: dnnl_types.h:1457
Definition: dnnl_types.h:926
Any ISA (excepting those listed as initial support)
Definition: dnnl_types.h:2246
dnnl_dims_t strides
Pooling kernel strides for spatial dimensions.
Definition: dnnl_types.h:1403
int oc
Definition: dnnl_types.h:1075
Definition: dnnl_types.h:1110
4D CNN weights tensor, an alias to dnnl_acdb
Definition: dnnl_types.h:456
Undefined data type, used for empty memory descriptors.
Definition: dnnl_types.h:64
Definition: dnnl_types.h:690
Definition: dnnl_types.h:1085
Definition: dnnl_types.h:370
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1696
dnnl_dim_t group_size
Number of groups.
Definition: dnnl_types.h:1290
Definition: dnnl_types.h:209
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:1244
Definition: dnnl_types.h:666
Definition: dnnl_types.h:355
5D CNN weights tensor, an alias to dnnl_acdeb
Definition: dnnl_types.h:468
float scale_adjust
Scale applied to the data.
Definition: dnnl_types.h:1131
dnnl_convolution_desc_t dnnl_deconvolution_desc_t
A descriptor of a deconvolution operation.
Definition: dnnl_types.h:1269
Definition: dnnl_types.h:274
4D CNN weights tensor (incl. groups), an alias to dnnl_abcd
Definition: dnnl_types.h:473
dnnl_primitive_kind_t primitive_kind
Definition: dnnl_types.h:1355
dnnl_alg_kind_t alg_kind
Definition: dnnl_types.h:1234
Definition: dnnl_types.h:280
In-order execution.
Definition: dnnl_types.h:2167
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1260
Definition: dnnl_types.h:263
Definition: dnnl_types.h:951
scratchpad memory desc
Definition: dnnl_types.h:2147
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1718
Definition: dnnl_types.h:302
dnnl_prop_kind_t prop_kind
Definition: dnnl_types.h:1388
dnnl_memory_t memory
Input/output memory.
Definition: dnnl_types.h:2056
const void * const_dnnl_op_desc_t
A pointer to any of the operation descriptors (constant variant).
Definition: dnnl_types.h:1212
Intel Streaming SIMD Extensions 4.1 (Intel SSE4.1)
Definition: dnnl_types.h:2249
Eltwise: clip.
Definition: dnnl_types.h:882
Definition: dnnl_types.h:576
Definition: dnnl_types.h:365
Definition: dnnl_types.h:275
Definition: dnnl_types.h:706
Definition: dnnl_types.h:2282
Definition: dnnl_types.h:645
An opaque structure for primitive descriptor attributes.
Definition: dnnl_types.h:574
Definition: dnnl_types.h:316
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1248
Definition: dnnl_types.h:321
logsoftmax descriptor
Definition: dnnl_types.h:2134
Definition: dnnl_types.h:684
permuted 4D tensor
Definition: dnnl_types.h:191
Definition: dnnl_types.h:292
Definition: dnnl_types.h:577
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1395
Definition: dnnl_types.h:361
float lrn_alpha
LRN alpha parameter.
Definition: dnnl_types.h:1438
dnnl_memory_desc_t diff_weights_desc
Weights gradient memory descriptor.
Definition: dnnl_types.h:1536
dnnl_memory_desc_t dst_iter_c_desc
Destination iter memory descriptor for cell state.
Definition: dnnl_types.h:1606
Primitive iterator passed over last primitive descriptor.
Definition: dnnl_types.h:49
int minor
Minor version.
Definition: dnnl_types.h:2216
Definition: dnnl_types.h:395
float alpha
Definition: dnnl_types.h:1648
Definition: dnnl_types.h:320
2D CNN weights tensor, an alias to dnnl_ab
Definition: dnnl_types.h:440
Definition: dnnl_types.h:722
dnnl_memory_desc_t dst_layer_desc
Destination layer memory descriptor.
Definition: dnnl_types.h:1602
permuted 5D tensor
Definition: dnnl_types.h:192
dnnl_engine_kind_t
Kinds of engines.
Definition: dnnl_types.h:1737
Definition: dnnl_types.h:610
struct dnnl_primitive_desc * dnnl_primitive_desc_t
A primitive descriptor handle.
Definition: dnnl_types.h:1780
Definition: dnnl_types.h:249
Definition: dnnl_types.h:714
Definition: dnnl_types.h:587
Eltwise: square root (dst for backward)
Definition: dnnl_types.h:896
non-standard 16-bit (bfloat16 w/ 7 bit mantissa) floating point.
Definition: dnnl_types.h:68
Definition: dnnl_types.h:832
Definition: dnnl_types.h:360
Undefined primitive.
Definition: dnnl_types.h:790
Definition: dnnl_types.h:585
Definition: dnnl_types.h:385
Definition: dnnl_types.h:605
int ldb
Definition: dnnl_types.h:1099
dnnl_dims_t strides
Convolution strides in each spatial dimension.
Definition: dnnl_types.h:1252
Definition: dnnl_types.h:566
int softmax_axis
The axis along which to perform the softmax.
Definition: dnnl_types.h:1364
Unidirectional execution of RNN primitive from left to right.
Definition: dnnl_types.h:1563
Definition: dnnl_types.h:1808
Definition: dnnl_types.h:737
Definition: dnnl_types.h:717
Definition: dnnl_types.h:680
Definition: dnnl_types.h:236
Definition: dnnl_types.h:637
Definition: dnnl_types.h:657
Definition: dnnl_types.h:393
5D CNN weights tensor (incl. groups), an alias to dnnl_acbde
Definition: dnnl_types.h:481
Definition: dnnl_types.h:695
3D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:220
Definition: dnnl_types.h:326
Definition: dnnl_types.h:562
Definition: dnnl_types.h:388
dnnl_dims_t dims
Definition: dnnl_types.h:1157
const struct dnnl_memory * const_dnnl_memory_t
A constant memory handle.
Definition: dnnl_types.h:1197
Definition: dnnl_types.h:380
Definition: dnnl_types.h:270
Definition: dnnl_types.h:544
binary descriptor
Definition: dnnl_types.h:2133
dnnl_memory_desc_t diff_weights_iter_desc
Weights gradient iter memory descriptor.
Definition: dnnl_types.h:1625
Definition: dnnl_types.h:572
Definition: dnnl_types.h:242
permuted 4D tensor
Definition: dnnl_types.h:186
Definition: dnnl_types.h:310
Definition: dnnl_types.h:670
Definition: dnnl_types.h:2151
Description of tensor of packed weights for rnn.
Definition: dnnl_types.h:1095
dnnl_wino_memory_format_t wino_format
Definition: dnnl_types.h:1071
A descriptor of a pooling operation.
Definition: dnnl_types.h:1382
2D CNN activations tensor, an alias to dnnl_ab
Definition: dnnl_types.h:417
plain 2D tensor
Definition: dnnl_types.h:178
4D CNN activations tensor, an alias to dnnl_bcda
Definition: dnnl_types.h:433
Definition: dnnl_types.h:522
Definition: dnnl_types.h:399
permuted 5D tensor
Definition: dnnl_types.h:199
Definition: dnnl_types.h:728
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:1694
Definition: dnnl_types.h:624
Definition: dnnl_types.h:318
Definition: dnnl_types.h:375
Definition: dnnl_types.h:1571
32-bit signed integer.
Definition: dnnl_types.h:72
dnnl_memory_extra_desc_t extra
Definition: dnnl_types.h:1186
dnnl_memory_desc_t diff_src_iter_c_desc
Source gradient iter memory descriptor for cell state.
Definition: dnnl_types.h:1621
int n
Definition: dnnl_types.h:1098
Definition: dnnl_types.h:340
int inner_nblks
The number of innermost blocks, e.g. 3 in case of OIhw_4i16o4i_
Definition: dnnl_types.h:1049
Direct convolution.
Definition: dnnl_types.h:839
int major
Major version.
Definition: dnnl_types.h:2215
Definition: dnnl_types.h:682
Definition: dnnl_types.h:410
5D tensor blocked by 1st dimension with block size 8
Definition: dnnl_types.h:289
Definition: dnnl_types.h:390
An opaque structure to describe a primitive descriptor iterator.
pooling descriptor
Definition: dnnl_types.h:2126
Convolution algorithm(either direct or Winograd) is chosen just in time.
Definition: dnnl_types.h:843
Definition: dnnl_types.h:406
Definition: dnnl_types.h:668
Definition: dnnl_types.h:699
Definition: dnnl_types.h:254
Definition: dnnl_types.h:389
float lrn_beta
LRN beta parameter.
Definition: dnnl_types.h:1440
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1530
Definition: dnnl_types.h:661
Definition: dnnl_types.h:226
Unidirectional execution of RNN primitive from right to left.
Definition: dnnl_types.h:1565
Definition: dnnl_types.h:616
A deconvolution primitive.
Definition: dnnl_types.h:802
Definition: dnnl_types.h:662
Definition: dnnl_types.h:612
Definition: dnnl_types.h:705
Definition: dnnl_types.h:392
dnnl_memory_desc_t src_iter_desc
Source iteration memory descriptor for hidden state.
Definition: dnnl_types.h:1592
5D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:315
8-bit unsigned integer.
Definition: dnnl_types.h:76
dnnl_alg_kind_t alg_kind
Definition: dnnl_types.h:1666
Definition: dnnl_types.h:1685
Definition: dnnl_types.h:628
permuted 6D tensor
Definition: dnnl_types.h:205
3D RNN data tensor in the format (batch, seq_length, input channels).
Definition: dnnl_types.h:492
Definition: dnnl_types.h:698
dnnl_alg_kind_t cell_kind
Definition: dnnl_types.h:1586
const char * hash
Git hash of the sources (may be absent)
Definition: dnnl_types.h:2218
5D CNN weights tensor, an alias to dnnl_cdeba
Definition: dnnl_types.h:466
Definition: dnnl_types.h:581
4D CNN activations tensor, an alias to dnnl_acdb
Definition: dnnl_types.h:431
dnnl_query_t
Definition: dnnl_types.h:2093
Intel Advanced Vector Extensions (Intel AVX)
Definition: dnnl_types.h:2252
Definition: dnnl_types.h:2263
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition: dnnl_types.h:1692
Backward data propagation.
Definition: dnnl_types.h:779
Definition: dnnl_types.h:241
Definition: dnnl_types.h:691
Definition: dnnl_types.h:739
dnnl_memory_desc_t stat_desc
Definition: dnnl_types.h:1472
Definition: dnnl_types.h:329
A descriptor of a binary operation.
Definition: dnnl_types.h:1659
Definition: dnnl_types.h:255
Definition: dnnl_types.h:591
source gradient memory desc
Definition: dnnl_types.h:2141
Definition: dnnl_types.h:603
A binary primitive.
Definition: dnnl_types.h:822
Definition: dnnl_types.h:2214
Definition: dnnl_types.h:379
Definition: dnnl_types.h:703
4D tensor blocked by 2nd dimension with block size 32
Definition: dnnl_types.h:246
int arg
An argument index, e.g. DNNL_ARG_SRC.
Definition: dnnl_types.h:2055
Definition: dnnl_types.h:673
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: dnnl_types.h:1540
Definition: dnnl_types.h:322
LSTM cell.
Definition: dnnl_types.h:916
Packed weights format used in RNN.
Definition: dnnl_types.h:93
Definition: dnnl_types.h:324
Definition: dnnl_types.h:685
4D CNN weights tensor, an alias to dnnl_bcda
Definition: dnnl_types.h:458
4D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:240
Definition: dnnl_types.h:252
float beta
Definition: dnnl_types.h:1343
A reorder primitive.
Definition: dnnl_types.h:792
Definition: dnnl_types.h:658
dnnl_memory_desc_t weights_desc
Weights memory descriptor.
Definition: dnnl_types.h:1240
A descriptor of a convolution operation.
Definition: dnnl_types.h:1224
Definition: dnnl_types.h:626
2D CNN activations tensor, an alias to dnnl_ba
Definition: dnnl_types.h:419
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1546
softmax descriptor
Definition: dnnl_types.h:2125
Definition: dnnl_types.h:222
Definition: dnnl_types.h:688
Definition: dnnl_types.h:2267
no query
Definition: dnnl_types.h:2094
Definition: dnnl_types.h:750
Definition: dnnl_types.h:589
Definition: dnnl_types.h:404
dnnl_scratchpad_mode_t
Scratchpad mode.
Definition: dnnl_types.h:1791
Definition: dnnl_types.h:990
Definition: dnnl_types.h:279
Definition: dnnl_types.h:260
batch normalization descriptor
Definition: dnnl_types.h:2128
dnnl_dims_t padded_dims
Size of the data including padding in each dimension.
Definition: dnnl_types.h:1163
Definition: dnnl_types.h:330
Definition: dnnl_types.h:579
dnnl_dim_t offset0
Definition: dnnl_types.h:1171
Definition: dnnl_types.h:387
dnnl_primitive_kind_t primitive_kind
Definition: dnnl_types.h:1710
Definition: dnnl_types.h:726
5D CNN weights tensor, an alias to dnnl_abcde
Definition: dnnl_types.h:462
Definition: dnnl_types.h:727
Definition: dnnl_types.h:596
Definition: dnnl_types.h:281
float beta
Definition: dnnl_types.h:1649
dnnl_dims_t padded_offsets
Definition: dnnl_types.h:1167
Undefined memory format, used for empty memory descriptors.
Definition: dnnl_types.h:1060
Definition: dnnl_types.h:382
runtime estimation (seconds)
Definition: dnnl_types.h:2102
Backward propagation (with respect to all parameters).
Definition: dnnl_types.h:777
An unspecified engine.
Definition: dnnl_types.h:1739
5D tensor blocked by 1st dimension with block size 16
Definition: dnnl_types.h:287
Eltwise: ReLU.
Definition: dnnl_types.h:849
GPU engine.
Definition: dnnl_types.h:1743
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1670
Definition: dnnl_types.h:311
dnnl_primitive_kind_t primitive_kind
Definition: dnnl_types.h:1662
Definition: dnnl_types.h:495
Definition: dnnl_types.h:564
Definition: dnnl_types.h:502
6D CNN weights tensor (incl. groups), an alias to dnnl_acbdef
Definition: dnnl_types.h:485
3D tensor blocked by 2nd dimension with block size 32
Definition: dnnl_types.h:218
Definition: dnnl_types.h:692
Definition: dnnl_types.h:2108
dnnl_prop_kind_t prop_kind
Definition: dnnl_types.h:1583
Definition: dnnl_types.h:578
Eltwise: pow.
Definition: dnnl_types.h:884
Definition: dnnl_types.h:328
5D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:300
dnnl_memory_extra_flags_t
Flags for memory special features.
Definition: dnnl_types.h:1109
Definition: dnnl_types.h:509
Definition: dnnl_types.h:563
permuted 4D tensor
Definition: dnnl_types.h:201
An opaque structure to describe an engine.
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1431
Definition: dnnl_types.h:335
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1690
Definition: dnnl_types.h:687
Definition: dnnl_types.h:373
dnnl_memory_desc_t src_desc
Source memory descriptor.
Definition: dnnl_types.h:1236
Definition: dnnl_types.h:357
6D CNN weights tensor (incl. groups), an alias to dnnl_abcdef
Definition: dnnl_types.h:483
dnnl_memory_desc_t diff_data_scaleshift_desc
Definition: dnnl_types.h:1503
Definition: dnnl_types.h:629
Definition: dnnl_types.h:708
Definition: dnnl_types.h:233
Definition: dnnl_types.h:244
Definition: dnnl_types.h:771
int alpha
Definition: dnnl_types.h:1073
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1492
Undefined RNN flags.
Definition: dnnl_types.h:1557
A sum primitive.
Definition: dnnl_types.h:798
unsigned flags
Definition: dnnl_types.h:1475
unsigned cpu_runtime
CPU runtime.
Definition: dnnl_types.h:2219
Definition: dnnl_types.h:716
5D CNN weights tensor (incl. groups), an alias to dnnl_decab
Definition: dnnl_types.h:479
Definition: dnnl_types.h:707
dnnl_prop_kind_t prop_kind
Definition: dnnl_types.h:1305
Definition: dnnl_types.h:238
Definition: dnnl_types.h:250
Definition: dnnl_types.h:2259
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1360
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1494
A descriptor of a element-wise operation.
Definition: dnnl_types.h:1299
dnnl_dims_t inner_blks
The size of the blocks, e.g. {4, 16, 4} in case of OIhw_4i16o4i
Definition: dnnl_types.h:1051
Definition: dnnl_types.h:701
A descriptor of a Softmax operation.
Definition: dnnl_types.h:1352
Definition: dnnl_types.h:237
An opaque structure for a chain of post operations.
A descriptor of an inner product operation.
Definition: dnnl_types.h:1521
Eltwise: round.
Definition: dnnl_types.h:888
Definition: dnnl_types.h:323
The operation failed because of incorrect function arguments.
Definition: dnnl_types.h:45
Definition: dnnl_types.h:223
Definition: dnnl_types.h:719
Definition: dnnl_types.h:597
Definition: dnnl_types.h:397
Definition: dnnl_types.h:345
3D RNN data tensor in the format (seq_length, batch, input channels).
Definition: dnnl_types.h:490
dnnl_memory_desc_t diff_weights_projection_desc
Definition: dnnl_types.h:1641
dnnl_rnn_direction_t
A direction of RNN primitive execution.
Definition: dnnl_types.h:1561
Internal weights format for 2x3 Winograd.
Definition: dnnl_types.h:1062
inner product descriptor
Definition: dnnl_types.h:2130
Definition: dnnl_types.h:377
Definition: dnnl_types.h:565
5D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:291
6D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:349
Definition: dnnl_types.h:700
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:1399
Binary mul.
Definition: dnnl_types.h:930
dnnl_memory_desc_t dst_iter_desc
Destination iter memory descriptor for hidden state.
Definition: dnnl_types.h:1604
int ic_block
Definition: dnnl_types.h:1076
Definition: dnnl_types.h:221
A softmax primitive.
Definition: dnnl_types.h:806
Definition: dnnl_types.h:227
const struct dnnl_primitive_desc * const_dnnl_primitive_desc_t
A constant primitive descriptor handle.
Definition: dnnl_types.h:1783
Definition: dnnl_types.h:718
int64_t dnnl_dim_t
A type to describe tensor dimension.
Definition: dnnl_types.h:1034
Forward data propagation (alias for dnnl_forward_training).
Definition: dnnl_types.h:775
Definition: dnnl_types.h:748
primitive kind
Definition: dnnl_types.h:2097
matrix multiplication (matmul) descriptor
Definition: dnnl_types.h:2135
Default stream configuration.
Definition: dnnl_types.h:2171
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1542
dnnl_memory_desc_t stat_desc
Definition: dnnl_types.h:1509
const struct dnnl_primitive * const_dnnl_primitive_t
A constant primitive handle.
Definition: dnnl_types.h:1867
LRN within a single channel.
Definition: dnnl_types.h:912
dnnl_data_type_t
Data type specification.
Definition: dnnl_types.h:62
Definition: dnnl_types.h:383
plain 4D tensor
Definition: dnnl_types.h:180
Definition: dnnl_types.h:1042
Definition: dnnl_types.h:235
plain 6D tensor
Definition: dnnl_types.h:182
Definition: dnnl_types.h:308
Eltwise: exp (dst for backward)
Definition: dnnl_types.h:900
size_t offset_compensation
Definition: dnnl_types.h:1103
Definition: dnnl_types.h:582
Winograd convolution.
Definition: dnnl_types.h:841
5D tensor blocked by 3rd dimension with block size 4
Definition: dnnl_types.h:337
Definition: dnnl_types.h:650
Definition: dnnl_types.h:721
Definition: dnnl_types.h:720
dnnl_wino_desc_t wino_desc
Tensor of weights for integer 8bit winograd convolution.
Definition: dnnl_types.h:1180
dnnl_alg_kind_t alg_kind
Definition: dnnl_types.h:1318
Definition: dnnl_types.h:350
Definition: dnnl_types.h:398
dnnl_format_tag_t
Definition: dnnl_types.h:164
Definition: dnnl_types.h:515
Max pooling.
Definition: dnnl_types.h:902
Eltwise: natural logarithm.
Definition: dnnl_types.h:880
dnnl_memory_desc_t dst_desc
Destination memory descriptor.
Definition: dnnl_types.h:1722
Definition: dnnl_types.h:599
Definition: dnnl_types.h:366
float batch_norm_epsilon
Batch normalization epsilon parameter.
Definition: dnnl_types.h:1474
Definition: dnnl_types.h:258
Definition: dnnl_types.h:618
Definition: dnnl_types.h:334
Definition: dnnl_types.h:623
Definition: dnnl_types.h:386
dnnl_memory_desc_t weights_projection_desc
Definition: dnnl_types.h:1614
dnnl_prop_kind_t prop_kind
Definition: dnnl_types.h:1490
Description of tensor of weights for winograd 2x3 convolution.
Definition: dnnl_types.h:1070
dnnl_prop_kind_t prop_kind
Definition: dnnl_types.h:1358
Definition: dnnl_types.h:547
Definition: dnnl_types.h:689
dnnl_memory_desc_t bias_desc
Bias memory descriptor.
Definition: dnnl_types.h:1600
3D CNN weights tensor, an alias to dnnl_cba
Definition: dnnl_types.h:448
4D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:267
Out-of-order execution.
Definition: dnnl_types.h:2169
Binary min.
Definition: dnnl_types.h:934
dnnl_primitive_kind_t primitive_kind
Definition: dnnl_types.h:1423
Definition: dnnl_types.h:634
Definition: dnnl_types.h:319
Definition: dnnl_types.h:646
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:285
Definition: dnnl_types.h:681
Definition: dnnl_types.h:535
dnnl_primitive_kind_t primitive_kind
Definition: dnnl_types.h:1580
Average pooling (alias for dnnl_pooling_avg_exclude_padding)
Definition: dnnl_types.h:908
Definition: dnnl_types.h:232
dnnl_memory_desc_t diff_src_layer_desc
Source gradient layer memory descriptor.
Definition: dnnl_types.h:1617
Definition: dnnl_types.h:231
int axis
Axis for shuffling.
Definition: dnnl_types.h:1288
Definition: dnnl_types.h:210
dnnl_rnn_packed_desc_t rnn_packed_desc
Tensor of packed weights for RNN.
Definition: dnnl_types.h:1182
3D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:230
Binary add.
Definition: dnnl_types.h:928
3D CNN activations tensor, an alias to dnnl_abc
Definition: dnnl_types.h:425
deconvolution descriptor
Definition: dnnl_types.h:2122
A pooling primitive.
Definition: dnnl_types.h:808
Definition: dnnl_types.h:593
dnnl_dims_t strides
Definition: dnnl_types.h:1045
Definition: dnnl_types.h:271
rnn descriptor
Definition: dnnl_types.h:2131
Definition: dnnl_types.h:265
Definition: dnnl_types.h:617
dnnl_primitive_kind_t primitive_kind
Definition: dnnl_types.h:1227
Definition: dnnl_types.h:649
Definition: dnnl_types.h:590
Eltwise: logistic.
Definition: dnnl_types.h:867
dnnl_memory_desc_t diff_data_scaleshift_desc
Definition: dnnl_types.h:1468
A descriptor of a shuffle operation.
Definition: dnnl_types.h:1277
Definition: dnnl_types.h:262
const struct dnnl_primitive_desc_iterator * const_dnnl_primitive_desc_iterator_t
A constant primitive descriptor iterator handle.
Definition: dnnl_types.h:1772
dnnl_dims_t kernel
Pooling kernel spatial dimensions.
Definition: dnnl_types.h:1405
Definition: dnnl_types.h:614
int oc_block
Definition: dnnl_types.h:1077
Eltwise: hyperbolic tangent non-linearity (tanh) (dst for backward)
Definition: dnnl_types.h:892
Definition: dnnl_types.h:656
Winograd deconvolution.
Definition: dnnl_types.h:847
Definition: dnnl_types.h:712
permuted 4D tensor
Definition: dnnl_types.h:202
Definition: dnnl_types.h:664
number of outputs expected
Definition: dnnl_types.h:2100
Definition: dnnl_types.h:305
Definition: dnnl_types.h:293
Definition: dnnl_types.h:251
#define DNNL_MAX_NDIMS
Definition: dnnl_types.h:1002
Definition: dnnl_types.h:304
Definition: dnnl_types.h:709
5D CNN weights tensor (incl. groups), an alias to dnnl_abcde
Definition: dnnl_types.h:477
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1532
float lrn_k
LRN k parameter.
Definition: dnnl_types.h:1442
Definition: dnnl_types.h:309
Definition: dnnl_types.h:622
dnnl_rnn_direction_t direction
The direction of RNN primitive execution.
Definition: dnnl_types.h:1588
Definition: dnnl_types.h:674
6D CNN weights tensor (incl. groups), an alias to dnnl_defcab
Definition: dnnl_types.h:487
GEMM descriptor (internal)
Definition: dnnl_types.h:2132
plain 1D tensor
Definition: dnnl_types.h:177
Definition: dnnl_types.h:1568
permuted 2D tensor
Definition: dnnl_types.h:193
permuted 5D tensor
Definition: dnnl_types.h:204
Definition: dnnl_types.h:369
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:1594
stub
Definition: dnnl_types.h:2119
dnnl_memory_desc_t diff_desc
Source and Destination of gradient memory descriptor.
Definition: dnnl_types.h:1362
3D CNN weights tensor, an alias to dnnl_bca
Definition: dnnl_types.h:450
Definition: dnnl_types.h:538
propagation kind
Definition: dnnl_types.h:2116
An inner product primitive.
Definition: dnnl_types.h:816
Definition: dnnl_types.h:243
Definition: dnnl_types.h:679
Definition: dnnl_types.h:964
Definition: dnnl_types.h:730
Definition: dnnl_types.h:359
Definition: dnnl_types.h:638
Definition: dnnl_types.h:729
Definition: dnnl_types.h:529
GRU cell.
Definition: dnnl_types.h:918
Definition: dnnl_types.h:294
3D CNN activations tensor, an alias to dnnl_acb
Definition: dnnl_types.h:427
The operation was successful.
Definition: dnnl_types.h:41
Definition: dnnl_types.h:580
Definition: dnnl_types.h:568
Definition: dnnl_types.h:630
A descriptor of a Layer Normalization operation.
Definition: dnnl_types.h:1484
dnnl_primitive_kind_t primitive_kind
Definition: dnnl_types.h:1280
8-bit signed integer.
Definition: dnnl_types.h:74
convolution descriptor
Definition: dnnl_types.h:2121
dnnl_memory_desc_t weights_peephole_desc
Definition: dnnl_types.h:1610
RNN cell.
Definition: dnnl_types.h:914
float adj_scale
Definition: dnnl_types.h:1080
Alias for dnnl_unidirectional_left2right.
Definition: dnnl_types.h:1573
A (out-of-place) concat primitive.
Definition: dnnl_types.h:796
Definition: dnnl_types.h:307
Definition: dnnl_types.h:639
Internal weights format for 2x3 Winograd.
Definition: dnnl_types.h:1064
Definition: dnnl_types.h:600
Definition: dnnl_types.h:405
dnnl_dims_t dilates
Convolution dilates in each spatial dimension.
Definition: dnnl_types.h:1254
const struct dnnl_stream * const_dnnl_stream_t
A constant execution stream handle.
Definition: dnnl_types.h:2180
2D RNN statistics tensor, an alias to dnnl_ba
Definition: dnnl_types.h:423
5D CNN activations tensor, an alias to dnnl_acdeb
Definition: dnnl_types.h:437
Definition: dnnl_types.h:2272
Undefined memory format tag.
Definition: dnnl_types.h:166
permuted 5D tensor
Definition: dnnl_types.h:189
Eltwise: square root.
Definition: dnnl_types.h:859
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1459
Definition: dnnl_types.h:663
Definition: dnnl_types.h:573
Definition: dnnl_types.h:736
Definition: dnnl_types.h:715
Definition: dnnl_types.h:264
int patch
Patch version.
Definition: dnnl_types.h:2217
Definition: dnnl_types.h:694
Definition: dnnl_types.h:746
Definition: dnnl_types.h:376
Definition: dnnl_types.h:837
Definition: dnnl_types.h:541
permuted 3D tensor
Definition: dnnl_types.h:197
Definition: dnnl_types.h:228
Definition: dnnl_types.h:683
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1433
Definition: dnnl_types.h:306
Definition: dnnl_types.h:633
source memory desc
Definition: dnnl_types.h:2140
Eltwise: swish.
Definition: dnnl_types.h:878
dnnl_prop_kind_t prop_kind
Definition: dnnl_types.h:1426
#define DNNL_RNN_MAX_N_PARTS
Definition: dnnl_types.h:1092
Definition: dnnl_types.h:655
Definition: dnnl_types.h:571
Definition: dnnl_types.h:333
Definition: dnnl_types.h:295
Definition: dnnl_types.h:341
Definition: dnnl_types.h:268
struct dnnl_stream_attr * dnnl_stream_attr_t
An execution stream attributes handle.
Definition: dnnl_types.h:2185
Definition: dnnl_types.h:1140
Definition: dnnl_types.h:259
dnnl_wino_memory_format_t
Winograd-specific formats.
Definition: dnnl_types.h:1058
2D RNN statistics tensor, an alias to dnnl_ab
Definition: dnnl_types.h:421
dnnl_primitive_kind_t primitive_kind
Definition: dnnl_types.h:1487
dnnl_data_type_t data_type
Data type of the tensor elements.
Definition: dnnl_types.h:1160
Definition: dnnl_types.h:282
A matrix multiplication primitive.
Definition: dnnl_types.h:826
Queried element is not required for given primitive.
Definition: dnnl_types.h:53
Definition: dnnl_types.h:394
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1411
Eltwise: erf-based gelu.
Definition: dnnl_types.h:886
dnnl_blocking_desc_t blocking
Definition: dnnl_types.h:1178
dnnl_dims_t inner_idxs
Definition: dnnl_types.h:1054
Definition: dnnl_types.h:635
Definition: dnnl_types.h:608
The operation failed due to an out-of-memory condition.
Definition: dnnl_types.h:43
Backward weights propagation.
Definition: dnnl_types.h:781
size_t size
Definition: dnnl_types.h:1104
5D tensor blocked by 2nd dimension with block size 32
Definition: dnnl_types.h:298
3D CNN weights tensor, an alias to dnnl_acb
Definition: dnnl_types.h:446
Definition: dnnl_types.h:743
Definition: dnnl_types.h:303
dnnl_memory_desc_t diff_weights_desc
Weights gradient memory descriptor.
Definition: dnnl_types.h:1242
Definition: dnnl_types.h:283
Definition: dnnl_types.h:2165
dnnl_memory_desc_t data_scaleshift_desc
Definition: dnnl_types.h:1467
workspace memory desc
Definition: dnnl_types.h:2146
Definition: dnnl_types.h:598
dnnl_primitive_kind_t primitive_kind
Definition: dnnl_types.h:1688
Definition: dnnl_types.h:363
Definition: dnnl_types.h:368
Definition: dnnl_types.h:741
Definition: dnnl_types.h:641
size_t size
Definition: dnnl_types.h:1081
Definition: dnnl_types.h:642
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1250
eltwise descriptor
Definition: dnnl_types.h:2124
Definition: dnnl_types.h:648
number of inputs expected
Definition: dnnl_types.h:2099
const struct dnnl_stream_attr * const_dnnl_stream_attr_t
A constant execution stream attributes handle.
Definition: dnnl_types.h:2187
shuffle descriptor
Definition: dnnl_types.h:2123
Definition: dnnl_types.h:396
Average pooling include padding.
Definition: dnnl_types.h:904
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1461
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:1720
32-bit/single-precision floating point.
Definition: dnnl_types.h:70
permuted 5D tensor
Definition: dnnl_types.h:203
Definition: dnnl_types.h:2054
Definition: dnnl_types.h:2277
Definition: dnnl_types.h:611
dnnl_prop_kind_t prop_kind
Definition: dnnl_types.h:1713
Definition: dnnl_types.h:550
struct dnnl_primitive_attr * dnnl_primitive_attr_t
A primitive descriptor attributes handle that controls primitive behavior.
Definition: dnnl_types.h:1825
Definition: dnnl_types.h:378
lrn descriptor
Definition: dnnl_types.h:2127
dnnl_memory_desc_t src_layer_desc
Source layer memory descriptor.
Definition: dnnl_types.h:1590
Definition: dnnl_types.h:225
Definition: dnnl_types.h:575
Definition: dnnl_types.h:740
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1724
4D tensor blocked by 1st and 2nd dimension with block size 8
Definition: dnnl_types.h:273
Definition: dnnl_types.h:312
A shuffle primitive.
Definition: dnnl_types.h:794
for creating scratchpad memory
Definition: dnnl_types.h:2111
Definition: dnnl_types.h:372
Definition: dnnl_types.h:211
float layer_norm_epsilon
Layer normalization epsilon parameter.
Definition: dnnl_types.h:1511
dnnl_memory_desc_t diff_weights_peephole_desc
Definition: dnnl_types.h:1637
struct dnnl_engine * dnnl_engine_t
An engine handle.
Definition: dnnl_types.h:1750
Definition: dnnl_types.h:602
Definition: dnnl_types.h:625
Definition: dnnl_types.h:672
unsigned int flags
RNN cell flags.
Definition: dnnl_types.h:1644
permuted 4D tensor
Definition: dnnl_types.h:198
Definition: dnnl_types.h:371
4D tensor blocked by 2nd dimension with block size 4
Definition: dnnl_types.h:248
Binary max.
Definition: dnnl_types.h:932
Definition: dnnl_types.h:747
Definition: dnnl_types.h:647
Definition: dnnl_types.h:85
dnnl_prop_kind_t prop_kind
Definition: dnnl_types.h:1283
Definition: dnnl_types.h:224
2D CNN weights tensor, an alias to dnnl_ba
Definition: dnnl_types.h:442
Average pooling exclude padding.
Definition: dnnl_types.h:906
Definition: dnnl_types.h:1086
Definition: dnnl_types.h:640
Definition: dnnl_types.h:556
dnnl_alg_kind_t
Kinds of algorithms.
Definition: dnnl_types.h:836
4D CNN weights tensor, an alias to dnnl_cdba
Definition: dnnl_types.h:454
Definition: dnnl_types.h:745
5D CNN weights tensor, an alias to dnnl_bacde
Definition: dnnl_types.h:464
permuted 3D tensor
Definition: dnnl_types.h:200
dnnl_rnn_flags_t
Flags for RNN cell.
Definition: dnnl_types.h:1555
uint64_t flags
Definition: dnnl_types.h:1127
dnnl_memory_desc_t diff_dst_iter_desc
Destination gradient iteration memory descriptor for hidden state.
Definition: dnnl_types.h:1631
Description of extra information stored in memory.
Definition: dnnl_types.h:1124
int ic2_block
Definition: dnnl_types.h:1078
4D CNN weights tensor (incl. groups), an alias to dnnl_dcab
Definition: dnnl_types.h:475
Definition: dnnl_types.h:216
Definition: dnnl_types.h:686
Definition: dnnl_types.h:731
Definition: dnnl_types.h:317
dnnl_prop_kind_t prop_kind
Definition: dnnl_types.h:1528
Definition: dnnl_types.h:744
Definition: dnnl_types.h:381
An LRN primitive.
Definition: dnnl_types.h:810
Definition: dnnl_types.h:331
Definition: dnnl_types.h:403
A descriptor of a Local Response Normalization (LRN) operation.
Definition: dnnl_types.h:1420
Definition: dnnl_types.h:269
Definition: dnnl_types.h:256
dnnl_softmax_desc_t dnnl_logsoftmax_desc_t
Definition: dnnl_types.h:1374
int ndims
Number of dimensions.
Definition: dnnl_types.h:1142
dnnl_stream_flags_t
Stream flags.
Definition: dnnl_types.h:2162
dnnl_dim_t dnnl_dims_t[DNNL_MAX_NDIMS]
A type to describe tensor dimensions.
Definition: dnnl_types.h:1037
Undefined propagation type.
Definition: dnnl_types.h:764
dnnl_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: dnnl_types.h:1322
Definition: dnnl_types.h:677
Primitive or engine failed on execution.
Definition: dnnl_types.h:51
Definition: dnnl_types.h:353
Definition: dnnl_types.h:665
op descriptor
Definition: dnnl_types.h:2120
6D tensor blocked by 2nd dimension with block size 8
Definition: dnnl_types.h:344
int ic
Definition: dnnl_types.h:1074
Definition: dnnl_types.h:584
dnnl_memory_desc_t weights_iter_desc
Weights iteration memory descriptor.
Definition: dnnl_types.h:1598
const struct dnnl_post_ops * const_dnnl_post_ops_t
A constant post operation chain handle.
Definition: dnnl_types.h:1854
Definition: dnnl_types.h:696
Eltwise: exponent.
Definition: dnnl_types.h:869
Definition: dnnl_types.h:402
1D tensor, an alias to dnnl_a
Definition: dnnl_types.h:415
Local response normalization (LRN) across multiple channels.
Definition: dnnl_types.h:910
Definition: dnnl_types.h:212
dnnl_primitive_kind_t primitive_kind
Definition: dnnl_types.h:1385
resampling descriptor
Definition: dnnl_types.h:2136
const struct dnnl_primitive_attr * const_dnnl_primitive_attr_t
A constant primitive descriptor attributes handle.
Definition: dnnl_types.h:1828
Definition: dnnl_types.h:678
A matrix multiplication primitive (internal).
Definition: dnnl_types.h:820
Definition: dnnl_types.h:327
Definition: dnnl_types.h:276
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: dnnl_types.h:1627
Definition: dnnl_types.h:351
plain 3D tensor
Definition: dnnl_types.h:179
Definition: dnnl_types.h:977
Definition: dnnl_types.h:553
A descriptor of a Batch Normalization operation.
Definition: dnnl_types.h:1451
5D CNN weights tensor, an alias to dnnl_bcdea
Definition: dnnl_types.h:470
struct dnnl_primitive * dnnl_primitive_t
A primitive handle.
Definition: dnnl_types.h:1865
Definition: dnnl_types.h:653
Intel Advanced Vector Extensions 2 (Intel AVX2)
Definition: dnnl_types.h:2255
Definition: dnnl_types.h:559
struct dnnl_stream * dnnl_stream_t
An execution stream handle.
Definition: dnnl_types.h:2178
4D CNN weights tensor, an alias to dnnl_bacd
Definition: dnnl_types.h:460
Eltwise: exponential linear unit (elu) (dst for backward)
Definition: dnnl_types.h:894
Eltwise: exponential linear unit (elu)
Definition: dnnl_types.h:853
Forward data propagation (alias for dnnl_forward_inference).
Definition: dnnl_types.h:773
6D tensor blocked by 2nd dimension with block size 16
Definition: dnnl_types.h:339
Definition: dnnl_types.h:631
Definition: dnnl_types.h:725
Definition: dnnl_types.h:532
Definition: dnnl_types.h:364
An opaque structure to describe a primitive descriptor.
dnnl_prop_kind_t prop_kind
Definition: dnnl_types.h:1231
struct dnnl_primitive_desc_iterator * dnnl_primitive_desc_iterator_t
A primitive descriptor iterator handle.
Definition: dnnl_types.h:1769
Eltwise: abs.
Definition: dnnl_types.h:857
Definition: dnnl_types.h:654
dnnl_rnn_packed_memory_format_t format
Definition: dnnl_types.h:1096
dnnl_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: dnnl_types.h:1320
Internal weights format for 4x3 Winograd.
Definition: dnnl_types.h:1066
Definition: dnnl_types.h:767
Definition: dnnl_types.h:356
Definition: dnnl_types.h:713
permuted 5D tensor
Definition: dnnl_types.h:187
dnnl_memory_desc_t data_desc
Definition: dnnl_types.h:1286
Eltwise: tanh-based gelu (alias for dnnl_eltwise_gelu_tanh)
Definition: dnnl_types.h:876
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1238
Definition: dnnl_types.h:734
A rnn primitive.
Definition: dnnl_types.h:818
4D CNN activations tensor, an alias to dnnl_abcd
Definition: dnnl_types.h:429
A logsoftmax primitive.
Definition: dnnl_types.h:824
Definition: dnnl_types.h:342
permuted 5D tensor
Definition: dnnl_types.h:196
The operation failed because requested functionality is not implemented.
Definition: dnnl_types.h:47
Definition: dnnl_types.h:874
dnnl_data_type_t accum_data_type
The accumulator data type. Initialized automatically.
Definition: dnnl_types.h:1698
Definition: dnnl_types.h:401
dnnl_memory_desc_t diff_src_iter_desc
Source gradient iter memory descriptor for hidden state.
Definition: dnnl_types.h:1619
dnnl_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: dnnl_types.h:1397
Eltwise: hyperbolic tangent non-linearity (tanh)
Definition: dnnl_types.h:851
Definition: dnnl_types.h:693
struct dnnl_post_ops * dnnl_post_ops_t
A post operation chain handle.
Definition: dnnl_types.h:1851
A descriptor of resampling operation.
Definition: dnnl_types.h:1707
Definition: dnnl_types.h:234
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1401
Definition: dnnl_types.h:606
Definition: dnnl_types.h:586
Definition: dnnl_types.h:567
dnnl_prop_kind_t
Kinds of propagation.
Definition: dnnl_types.h:761
Definition: dnnl_types.h:1119
stub
Definition: dnnl_types.h:2139
int oc2_block
Definition: dnnl_types.h:1079
Definition: dnnl_types.h:277
Definition: dnnl_types.h:374
Nearest Neighbor Resampling Method.
Definition: dnnl_types.h:936
permuted 4D tensor
Definition: dnnl_types.h:195
Definition: dnnl_types.h:732
dnnl_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: dnnl_types.h:1544
Definition: dnnl_types.h:711
Definition: dnnl_types.h:613
Definition: dnnl_types.h:604
Definition: dnnl_types.h:354
16-bit/half-precision floating point.
Definition: dnnl_types.h:66
Definition: dnnl_types.h:671
Definition: dnnl_types.h:733
dnnl_rnn_packed_memory_format_t
Definition: dnnl_types.h:1084
source engine
Definition: dnnl_types.h:2113
dnnl_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: dnnl_types.h:1246
dnnl_alg_kind_t alg_kind
Definition: dnnl_types.h:1716
Definition: dnnl_types.h:601
Definition: dnnl_types.h:313
Definition: dnnl_types.h:278
Definition: dnnl_types.h:332
Definition: dnnl_types.h:301
dnnl_normalization_flags_t
Flags for normalization primitives.
Definition: dnnl_types.h:942
weights grad. memory desc
Definition: dnnl_types.h:2143
Definition: dnnl_types.h:400
Definition: dnnl_types.h:742
A convolution primitive.
Definition: dnnl_types.h:800
dnnl_primitive_kind_t primitive_kind
Definition: dnnl_types.h:1302
memory desc of an execute argument
Definition: dnnl_types.h:2148
Definition: dnnl_types.h:659
Backward bias propagation.
Definition: dnnl_types.h:783
5D CNN activations tensor, an alias to dnnl_abcde
Definition: dnnl_types.h:435
4D CNN weights tensor, an alias to dnnl_abcd
Definition: dnnl_types.h:452
Eltwise: logistic (dst for backward)
Definition: dnnl_types.h:898
Definition: dnnl_types.h:325
dnnl_memory_desc_t diff_weights_layer_desc
Weights gradient layer memory descriptor.
Definition: dnnl_types.h:1623
weights memory descriptor desc
Definition: dnnl_types.h:2142
unsigned flags
Definition: dnnl_types.h:1512
Definition: dnnl_types.h:257
Definition: dnnl_types.h:391
Definition: dnnl_types.h:636
unsigned gpu_runtime
GPU runtime.
Definition: dnnl_types.h:2220
Linear Resampling Method.
Definition: dnnl_types.h:938
3D CNN weights tensor, an alias to dnnl_abc
Definition: dnnl_types.h:444
dnnl_cpu_isa_t
CPU instruction set flags.
Definition: dnnl_types.h:2244
int compensation_mask
Compensation mask.
Definition: dnnl_types.h:1129
Eltwise: soft_relu.
Definition: dnnl_types.h:865
plain 5D tensor
Definition: dnnl_types.h:181
Definition: dnnl_types.h:669
destination engine
Definition: dnnl_types.h:2114
dnnl_primitive_kind_t primitive_kind
Definition: dnnl_types.h:1524
Definition: dnnl_types.h:367
Definition: dnnl_types.h:609
Eltwise: square.
Definition: dnnl_types.h:855
Definition: dnnl_types.h:619
Definition: dnnl_types.h:253