Intel(R) Math Kernel Library for Deep Neural Networks (Intel(R) MKL-DNN)  0.21.0
Performance library for Deep Learning
mkldnn_types.h
Go to the documentation of this file.
1 /*******************************************************************************
2 * Copyright 2016-2018 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 
17 #ifndef MKLDNN_TYPES_H
18 #define MKLDNN_TYPES_H
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 #ifndef DOXYGEN_SHOULD_SKIP_THIS
25 #include <stddef.h>
26 #include <stdint.h>
27 #endif
28 
29 typedef uint16_t mkldnn_bfloat16_t;
30 
41 typedef struct {
42  int major;
43  int minor;
44  int patch;
45  const char *hash;
47 
49 typedef enum {
70 
72 typedef enum {
82  mkldnn_s8 = 5,
84  mkldnn_u8 = 6,
88 
90 typedef enum {
96 
147 typedef enum {
267 
268  /* Opaque data types, are not to be used explicitly */
269 
270  /* data */
280 
281  /* weights, 3D */
302 
303  /* weights, 4D */
334 
335  /* weights, 5D */
351 
352  /* weights w/ groups, 4D */
378 
379  /* weights w/ groups, 5D */
426 
427  /* weights w/ groups, 6D */
441 
443 
445 
450 
452 typedef enum {
456 
458 typedef enum {
459  /* TODO: suggest renames */
482 
485 typedef enum {
521 
523 typedef enum {
586 
588 typedef enum {
625 
634 #define TENSOR_MAX_DIMS 12
635 
640 
644 typedef struct {
649  mkldnn_strides_t strides[2];
657  ptrdiff_t offset_padding;
659 
660 typedef enum {
670 
672 typedef struct {
674  int r;
675  int alpha;
676  int ic;
677  int oc;
678  int ic_block;
679  int oc_block;
682  float adj_scale;
683  size_t size;
685 
686 typedef enum {
691 
692 /* Maximum number of parts of RNN weights tensor that require separate
693  * computation. */
694 #define MKLDNN_RNN_MAX_N_PARTS 4
695 
697 typedef struct {
699  int n_parts;
700  int n;
702  size_t part_pack_size[MKLDNN_RNN_MAX_N_PARTS];
704  size_t size;
706 
711 typedef void *mkldnn_op_desc_t;
713 typedef const void *const_mkldnn_op_desc_t;
714 
719 typedef struct {
724  int ndims;
745  union {
753  /* ... other descriptions possible */
754  } layout_desc;
756 
760 typedef struct {
794  mkldnn_dims_t padding[2];
800 
803 
805 typedef struct {
816  int axis;
820 
822 typedef struct {
854  float alpha, beta;
856 
858 typedef struct {
872 
874 typedef struct {
900  mkldnn_dims_t padding[2];
906 
908 typedef struct {
927  float lrn_alpha;
929  float lrn_beta;
931  float lrn_k;
933 
935 typedef struct {
962  unsigned flags;
964 
966 typedef struct {
993 
995 typedef enum {
999 
1000 typedef struct {
1009  unsigned int flags;
1012  float alpha;
1015  float clipping;
1017 
1019 typedef enum {
1020  /* Unidirectional execution of RNN primitive from left to right. */
1022  /* Unidirectional execution of RNN primitive from right to left. */
1024  /* Bidirectional execution of RNN primitive with concatenation of the
1025  * results. */
1027  /* Bidirectional execution of RNN primitive with summation of the
1028  * results. */
1032 
1034 typedef struct {
1074 
1081 typedef enum {
1087 
1090 struct mkldnn_engine;
1093 #if 0
1094 /* FIXME: looks like this never happens */
1096 typedef const struct mkldnn_engine *const_mkldnn_engine_t;
1097 #endif
1098 
1107 
1111 
1115 
1123 struct mkldnn_primitive_desc;
1124 
1127 
1130 
1143 struct mkldnn_primitive_attr;
1144 
1148 
1151 
1171 struct mkldnn_post_ops;
1172 
1175 
1178 
1186 struct mkldnn_primitive;
1191 
1193 typedef struct {
1199 
1232 typedef enum {
1248  /* memory and op descriptor section */
1263  /* (memory) primitive descriptor section */
1274 } mkldnn_query_t;
1275 
1282 typedef enum {
1290 
1293 struct mkldnn_stream;
1297 typedef const struct mkldnn_stream *const_mkldnn_stream_t;
1298 
1303 #ifdef __cplusplus
1304 }
1305 #endif
1306 
1307 
1308 #endif
mkldnn_data_type_t accum_data_type
The accumulator data type.
Definition: mkldnn_types.h:991
LRN within a single channel.
Definition: mkldnn_types.h:569
struct mkldnn_post_ops * mkldnn_post_ops_t
A post operation chain handle.
Definition: mkldnn_types.h:1174
mkldnn_padding_kind_t padding_kind
The kind of padding to use.
Definition: mkldnn_types.h:902
size_t size
Definition: mkldnn_types.h:683
A descriptor of a Local Response Normalization (LRN) operation.
Definition: mkldnn_types.h:908
blocked weights format
Definition: mkldnn_types.h:348
blocked weights format
Definition: mkldnn_types.h:355
op descriptor
Definition: mkldnn_types.h:1250
blocked weights format with additional buffer with size equal to the number of output channels multip...
Definition: mkldnn_types.h:393
blocked weights format
Definition: mkldnn_types.h:332
blocked weights format
Definition: mkldnn_types.h:433
A Softmax primitive.
Definition: mkldnn_types.h:509
number of outputs expected
Definition: mkldnn_types.h:1239
blocked weights format
Definition: mkldnn_types.h:438
int alpha
Definition: mkldnn_types.h:675
mkldnn_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: mkldnn_types.h:1068
int minor
Definition: mkldnn_types.h:43
mkldnn_rnn_packed_memory_format_t format
Definition: mkldnn_types.h:698
mkldnn_dims_t dilates
Convolution dilates in each spatial dimension.
Definition: mkldnn_types.h:790
mkldnn_status_t
Status values returned by Intel(R) MKL-DNN functions.
Definition: mkldnn_types.h:49
A descriptor of a convolution operation.
Definition: mkldnn_types.h:760
mkldnn_rnn_direction_t direction
The direction of RNN primitive execution.
Definition: mkldnn_types.h:1044
The operation failed and should be retried.
Definition: mkldnn_types.h:55
blocked weights format
Definition: mkldnn_types.h:292
mkldnn_memory_desc_t dst_layer_desc
Destination layer memory descriptor.
Definition: mkldnn_types.h:1056
int ic_block
Definition: mkldnn_types.h:678
4D RNN bias tensor in the format (num_layers, num_directions, num_gates, output_channels).
Definition: mkldnn_types.h:266
4D data tensor with the physical layout chwn, used in Neon.
Definition: mkldnn_types.h:175
The operation failed because of incorrect function arguments.
Definition: mkldnn_types.h:57
Eltwise: exponent.
Definition: mkldnn_types.h:556
Forward data propagation (alias for mkldnn_forward_inference)
Definition: mkldnn_types.h:470
Definition: mkldnn_types.h:689
An opaque structure to describe an engine.
Backward data propagation.
Definition: mkldnn_types.h:476
blocked weights format
Definition: mkldnn_types.h:326
blocked weights format
Definition: mkldnn_types.h:404
Undefined memory format, used for empty memory descriptors.
Definition: mkldnn_types.h:149
float alpha
alpha is a negative slope parameter (used only if (flags & mkldnn_rnn_cell_with_relu) != 0) ...
Definition: mkldnn_types.h:1012
#define TENSOR_MAX_DIMS
Maximum number of dimensions a tensor can have.
Definition: mkldnn_types.h:634
4D weights tensor with physical layout oihw, used in Caffe.
Definition: mkldnn_types.h:199
A descriptor of a Softmax operation.
Definition: mkldnn_types.h:858
blocked weights format
Definition: mkldnn_types.h:439
mkldnn_padding_kind_t padding_kind
The kind of padding to use.
Definition: mkldnn_types.h:796
blocked weights format
Definition: mkldnn_types.h:440
blocked weights format
Definition: mkldnn_types.h:403
int oc_block
Definition: mkldnn_types.h:679
blocked data format
Definition: mkldnn_types.h:275
A descriptor of an inner product operation.
Definition: mkldnn_types.h:966
3D RNN data tensor in the format (seq_length, batch, input channels).
Definition: mkldnn_types.h:242
An opaque structure for a chain of post operations.
An opaque structure to describe a primitive descriptor.
batch normalization descriptor
Definition: mkldnn_types.h:1259
mkldnn_rnn_direction_t
A direction of RNN primitive execution.
Definition: mkldnn_types.h:1019
mkldnn_memory_desc_t diff_data_scaleshift_desc
Definition: mkldnn_types.h:953
A convolution primitive.
Definition: mkldnn_types.h:503
mkldnn_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: mkldnn_types.h:977
size_t offset_compensation
Definition: mkldnn_types.h:703
int axis
axis for shuffling.
Definition: mkldnn_types.h:816
struct mkldnn_stream * mkldnn_stream_t
An execution stream handle.
Definition: mkldnn_types.h:1295
blocked weights format with additional buffer with size equal to the number of output channels and co...
Definition: mkldnn_types.h:301
blocked data format
Definition: mkldnn_types.h:276
mkldnn_prop_kind_t prop_kind
The kind of propagation.
Definition: mkldnn_types.h:864
blocked weights format
Definition: mkldnn_types.h:429
struct mkldnn_primitive_desc_iterator * mkldnn_primitive_desc_iterator_t
A primitive descriptor iterator handle.
Definition: mkldnn_types.h:1109
blocked weights format
Definition: mkldnn_types.h:339
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:808
Undefined primitive (XXX: why do we have it?).
Definition: mkldnn_types.h:487
An inner product primitive.
Definition: mkldnn_types.h:517
Packed weights format used in RNN.
Definition: mkldnn_types.h:444
Round down.
Definition: mkldnn_types.h:94
4D grouped weights tensor with the physical layout goiw.
Definition: mkldnn_types.h:223
mkldnn_memory_desc_t dst_desc
Destination memory descriptor.
Definition: mkldnn_types.h:784
blocked weights format
Definition: mkldnn_types.h:435
blocked weights format
Definition: mkldnn_types.h:294
mkldnn_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: mkldnn_types.h:888
Tensors of weights for 2x3 winograd convolutions.
Definition: mkldnn_types.h:664
Definition: mkldnn_types.h:565
mkldnn_memory_desc_t diff_desc
Source and Destination of gradient memory descriptor.
Definition: mkldnn_types.h:868
size_t output_index
Desired output index.
Definition: mkldnn_types.h:1197
mkldnn_data_type_t data_type
Data type of the tensor elements.
Definition: mkldnn_types.h:742
mkldnn_rnn_cell_flags_t
Flags for RNN cell.
Definition: mkldnn_types.h:995
mkldnn_dims_t offset_padding_to_data
Per-dimension offset from the padding to actual data, the top-level tensor with offsets applied must ...
Definition: mkldnn_types.h:654
float lrn_beta
LRN beta parameter.
Definition: mkldnn_types.h:929
32-bit signed integer.
Definition: mkldnn_types.h:78
Max pooling.
Definition: mkldnn_types.h:560
int patch
Definition: mkldnn_types.h:44
blocked weights format
Definition: mkldnn_types.h:314
blocked weights format
Definition: mkldnn_types.h:338
execution engine
Definition: mkldnn_types.h:1235
void * mkldnn_op_desc_t
A pointer to any of the operation descriptors.
Definition: mkldnn_types.h:711
3D weights tensor with physical layout owi.
Definition: mkldnn_types.h:193
mkldnn_data_type_t accum_data_type
The accumulator data type.
Definition: mkldnn_types.h:798
blocked weights format
Definition: mkldnn_types.h:322
mkldnn_prop_kind_t prop_kind
The kind of propagation.
Definition: mkldnn_types.h:915
mkldnn_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: mkldnn_types.h:892
Definition: mkldnn_types.h:997
mkldnn_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: mkldnn_types.h:837
float lrn_alpha
LRN alpha parameter.
Definition: mkldnn_types.h:927
struct mkldnn_primitive * mkldnn_primitive_t
A primitive handle.
Definition: mkldnn_types.h:1188
input memory primitive desc
Definition: mkldnn_types.h:1265
blocked weights format
Definition: mkldnn_types.h:341
ptrdiff_t mkldnn_strides_t[TENSOR_MAX_DIMS]
A type to describe strides within a tensor.
Definition: mkldnn_types.h:639
5D grouped weights tensor with the physical layout goihw, used in Caffe.
Definition: mkldnn_types.h:227
const_mkldnn_primitive_t primitive
Primitive to specify the output for.
Definition: mkldnn_types.h:1195
mkldnn_prop_kind_t prop_kind
The kind of propagation.
Definition: mkldnn_types.h:881
int local_size
The number of channels to sum over (for cross-channel LRN) or the side length of the square region to...
Definition: mkldnn_types.h:925
blocked weights format
Definition: mkldnn_types.h:354
ptrdiff_t offset_padding
Offset from memory origin to the current block, non-zero only in a description of a memory sub-block...
Definition: mkldnn_types.h:657
A descriptor of a element-wise operation.
Definition: mkldnn_types.h:822
rnn descriptor
Definition: mkldnn_types.h:1261
An element-wise primitive.
Definition: mkldnn_types.h:507
float beta
Definition: mkldnn_types.h:854
mkldnn_memory_desc_t src_desc
Source memory descriptor.
Definition: mkldnn_types.h:975
blocked weights format
Definition: mkldnn_types.h:331
destination grad.
Definition: mkldnn_types.h:1272
mkldnn_alg_kind_t activation_kind
Activation function used.
Definition: mkldnn_types.h:1007
blocked weights format
Definition: mkldnn_types.h:344
A descriptor for an RNN operation.
Definition: mkldnn_types.h:1034
eltwise descriptor
Definition: mkldnn_types.h:1255
A memory primitive.
Definition: mkldnn_types.h:489
float clipping
clipping parameter (used only if (flags & mkldnn_rnn_cell_with_clipping) != 0)
Definition: mkldnn_types.h:1015
blocked weights format
Definition: mkldnn_types.h:311
blocked weights format
Definition: mkldnn_types.h:325
mkldnn_memory_desc_t bias_desc
Bias memory descriptor.
Definition: mkldnn_types.h:780
Eltwise: soft_relu.
Definition: mkldnn_types.h:552
mkldnn_wino_memory_format_t
Definition: mkldnn_types.h:660
The operation failed due to an out-of-memory condition.
Definition: mkldnn_types.h:53
RNN cell.
Definition: mkldnn_types.h:571
Eltwise: gelu.
Definition: mkldnn_types.h:558
blocked weights format
Definition: mkldnn_types.h:362
Backward weights propagation.
Definition: mkldnn_types.h:478
blocked weights format
Definition: mkldnn_types.h:432
mkldnn_memory_desc_t weights_iter_desc
Weights iteration memory descriptor.
Definition: mkldnn_types.h:1052
stub
Definition: mkldnn_types.h:1249
int ic2_block
Definition: mkldnn_types.h:680
32-bit/single-precision floating point.
Definition: mkldnn_types.h:76
mkldnn_prop_kind_t prop_kind
The kind of propagation.
Definition: mkldnn_types.h:829
const struct mkldnn_primitive_desc_iterator * const_mkldnn_primitive_desc_iterator_t
A constant primitive descriptor iterator handle.
Definition: mkldnn_types.h:1113
blocked weights format
Definition: mkldnn_types.h:288
blocked data format
Definition: mkldnn_types.h:273
2D weights tensor with physical layout oi.
Definition: mkldnn_types.h:184
Just a sentinel, not real memory format.
Definition: mkldnn_types.h:448
Memory descriptor.
Definition: mkldnn_types.h:719
mkldnn_dims_t kernel
Pooling kernel spatial dimensions.
Definition: mkldnn_types.h:896
mkldnn_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: mkldnn_types.h:944
blocked weights format
Definition: mkldnn_types.h:350
mkldnn_convolution_desc_t mkldnn_deconvolution_desc_t
A descriptor of a deconvolution operation.
Definition: mkldnn_types.h:802
mkldnn_batch_normalization_flag_t
Flags for batch-normalization primititve.
Definition: mkldnn_types.h:588
pooling descriptor
Definition: mkldnn_types.h:1257
mkldnn_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: mkldnn_types.h:922
mkldnn_alg_kind_t alg_kind
The kind of pooling algorithm.
Definition: mkldnn_types.h:884
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:763
blocked weights format
Definition: mkldnn_types.h:287
blocked data format
Definition: mkldnn_types.h:277
mkldnn_memory_desc_t dst_desc
Destination memory descriptor.
Definition: mkldnn_types.h:987
3D weights tensor with physical layout wio.
Definition: mkldnn_types.h:196
mkldnn_memory_desc_t weights_layer_desc
Weights layer memory descriptor.
Definition: mkldnn_types.h:1050
blocked weights format
Definition: mkldnn_types.h:414
mkldnn_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: mkldnn_types.h:782
blocked weights format
Definition: mkldnn_types.h:361
unsigned int flags
RNN cell flags.
Definition: mkldnn_types.h:1009
3D data tensor with the physical layout ncw.
Definition: mkldnn_types.h:163
blocked weights format
Definition: mkldnn_types.h:329
The operation was successful.
Definition: mkldnn_types.h:51
mkldnn_memory_desc_t dst_iter_desc
Destination iter memory descriptor.
Definition: mkldnn_types.h:1058
blocked weights format with additional buffer with size equal to the number of groups and containing ...
Definition: mkldnn_types.h:424
blocked weights format
Definition: mkldnn_types.h:386
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:911
blocked weights format
Definition: mkldnn_types.h:400
mkldnn_memory_desc_t src_iter_desc
Source iteration memory descriptor.
Definition: mkldnn_types.h:1048
blocked weights format
Definition: mkldnn_types.h:430
Backward propagation (with respect to all parameters.
Definition: mkldnn_types.h:474
5D data tensor with the physical layout ndhwc, used in TensorFlow.
Definition: mkldnn_types.h:181
softmax descriptor
Definition: mkldnn_types.h:1256
mkldnn_round_mode_t
Rounding mode.
Definition: mkldnn_types.h:90
A deconvolution primitive.
Definition: mkldnn_types.h:505
mkldnn_memory_desc_t data_scaleshift_desc
Scale and shift data and gradient memory descriptors.
Definition: mkldnn_types.h:952
Use global statistics.
Definition: mkldnn_types.h:601
blocked weights format
Definition: mkldnn_types.h:330
no query
Definition: mkldnn_types.h:1233
blocked weights format
Definition: mkldnn_types.h:416
blocked weights format
Definition: mkldnn_types.h:346
mkldnn_memory_desc_t mean_desc
Mean and variance data memory descriptors.
Definition: mkldnn_types.h:958
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:938
blocked weights format
Definition: mkldnn_types.h:365
8-bit unsigned integer.
Definition: mkldnn_types.h:84
blocked weights format
Definition: mkldnn_types.h:428
mkldnn_alg_kind_t alg_kind
LRN algorithm.
Definition: mkldnn_types.h:918
Average pooling include padding.
Definition: mkldnn_types.h:562
Unspecified format.
Definition: mkldnn_types.h:152
mkldnn_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: mkldnn_types.h:774
destination memory primitive desc
Definition: mkldnn_types.h:1271
5D RNN weights tensor in the format (num_layers, num_directions, input_channels, num_gates, output_channels).
Definition: mkldnn_types.h:252
GRU cell with linear before reset.
Definition: mkldnn_types.h:584
Local response normalization (LRN) across multiple channels.
Definition: mkldnn_types.h:567
blocked weights format
Definition: mkldnn_types.h:310
GRU cell.
Definition: mkldnn_types.h:575
Eager stream.
Definition: mkldnn_types.h:1286
implementation name
Definition: mkldnn_types.h:1246
3D weights tensor with physical layout oiw.
Definition: mkldnn_types.h:190
Eltwise: parametric exponential linear unit (elu)
Definition: mkldnn_types.h:540
mkldnn_dims_t padding_dims
Size of the data including padding in each dimension.
Definition: mkldnn_types.h:651
Eltwise: ReLU.
Definition: mkldnn_types.h:536
1D data tensor.
Definition: mkldnn_types.h:158
float lrn_k
LRN k parameter.
Definition: mkldnn_types.h:931
4D weights tensor with physical layout ihwo.
Definition: mkldnn_types.h:208
mkldnn_memory_format_t
Memory format specification.
Definition: mkldnn_types.h:147
Eltwise: square.
Definition: mkldnn_types.h:542
blocked weights format
Definition: mkldnn_types.h:323
mkldnn_prop_kind_t prop_kind
The kind of propagation.
Definition: mkldnn_types.h:973
mkldnn_wino_desc_t wino_desc
Tensor of weights for integer 8bit winograd convolution.
Definition: mkldnn_types.h:750
mkldnn_data_type_t accum_data_type
The accumulator data type.
Definition: mkldnn_types.h:904
int n
Definition: mkldnn_types.h:700
4D data tensor with the physical layout nhwc, used in TensorFlow.
Definition: mkldnn_types.h:172
Description of tensor of packed weights for rnn.
Definition: mkldnn_types.h:697
Backward bias propagation.
Definition: mkldnn_types.h:480
blocked weights format
Definition: mkldnn_types.h:425
Use scale and shift parameters.
Definition: mkldnn_types.h:614
int group_size
number of groups in group convolution
Definition: mkldnn_types.h:818
weights format with additional buffer size equal to the number of output channels multiplied by numbe...
Definition: mkldnn_types.h:384
mkldnn_memory_desc_t weights_desc
Weights memory descriptor.
Definition: mkldnn_types.h:776
blocked weights format
Definition: mkldnn_types.h:309
mkldnn_rnn_cell_desc_t cell_desc
The RNN cell desc.
Definition: mkldnn_types.h:1042
blocked weights format
Definition: mkldnn_types.h:402
A descriptor of a shuffle operation.
Definition: mkldnn_types.h:805
Definition: mkldnn_types.h:1029
mkldnn_memory_desc_t data_desc
Source and destination memory descriptor, and source and destination gradient memory descriptor...
Definition: mkldnn_types.h:814
mkldnn_rnn_packed_memory_format_t
Definition: mkldnn_types.h:686
blocked weights format
Definition: mkldnn_types.h:419
blocked weights format
Definition: mkldnn_types.h:357
Undefined memory format, used for empty memory descriptors.
Definition: mkldnn_types.h:662
int ndims
Number of dimensions.
Definition: mkldnn_types.h:724
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:722
blocked weights format with additional buffer with size equal to the number of groups and containing ...
Definition: mkldnn_types.h:377
5D grouped weights tensor with the physical layout giohw.
Definition: mkldnn_types.h:234
An opaque structure to describe an execution stream.
const struct mkldnn_primitive_attr * const_mkldnn_primitive_attr_t
A constant primitive descriptor attributes handle.
Definition: mkldnn_types.h:1150
Undefined propagation type.
Definition: mkldnn_types.h:461
mkldnn_blocking_desc_t blocking
Description of the data layout for memory formats that use blocking.
Definition: mkldnn_types.h:748
5D data tensor with the physical layout ncdhw.
Definition: mkldnn_types.h:178
5D RNN states tensor in the format (num_layers, num_directions, num_states, batch, state channels).
Definition: mkldnn_types.h:245
mkldnn_dims_t dims
Dimensions in the following order:
Definition: mkldnn_types.h:740
A rnn primitive.
Definition: mkldnn_types.h:519
mkldnn_rnn_packed_desc_t rnn_packed_desc
Tensor of packed weights for RNN.
Definition: mkldnn_types.h:752
mkldnn_dims_t strides
Convolution strides in each spatial dimension.
Definition: mkldnn_types.h:788
blocked weights format
Definition: mkldnn_types.h:340
blocked weights format
Definition: mkldnn_types.h:283
mkldnn_prop_kind_t
Kinds of propagation.
Definition: mkldnn_types.h:458
CPU engine.
Definition: mkldnn_types.h:1085
mkldnn_memory_desc_t bias_desc
Bias memory descriptor.
Definition: mkldnn_types.h:1054
Eltwise: square root.
Definition: mkldnn_types.h:546
mkldnn_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: mkldnn_types.h:866
blocked weights format
Definition: mkldnn_types.h:434
mkldnn_memory_format_t format
Memory format.
Definition: mkldnn_types.h:744
blocked weights format
Definition: mkldnn_types.h:290
mkldnn_stream_kind_t
Kinds of streams.
Definition: mkldnn_types.h:1282
int major
Definition: mkldnn_types.h:42
mkldnn_memory_desc_t src_desc
Source memory descriptor.
Definition: mkldnn_types.h:772
4D weights tensor with physical layout hwio, used in TensorFlow.
Definition: mkldnn_types.h:202
A wrapper structure to specify a particular output of a primitive.
Definition: mkldnn_types.h:1193
Winograd convolution.
Definition: mkldnn_types.h:528
Eltwise: linear.
Definition: mkldnn_types.h:548
bfloat 16-bit.
Definition: mkldnn_types.h:86
mkldnn_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: mkldnn_types.h:946
Eltwise: logistic.
Definition: mkldnn_types.h:554
Direct convolution.
Definition: mkldnn_types.h:526
Primitive iterator passed over last primitive descriptor.
Definition: mkldnn_types.h:64
const struct mkldnn_primitive * const_mkldnn_primitive_t
A constant primitive handle.
Definition: mkldnn_types.h:1190
size_t size
Definition: mkldnn_types.h:704
source gradient memory primitive desc
Definition: mkldnn_types.h:1268
mkldnn_alg_kind_t cell_kind
RNN cell kind.
Definition: mkldnn_types.h:1004
Definition: mkldnn_types.h:1021
An opaque structure for primitive descriptor attributes.
mkldnn_prop_kind_t prop_kind
The kind of propagation.
Definition: mkldnn_types.h:1040
int oc
Definition: mkldnn_types.h:677
blocked data format
Definition: mkldnn_types.h:279
blocked weights format
Definition: mkldnn_types.h:345
float batch_norm_epsilon
Batch normalization epsilon parameter.
Definition: mkldnn_types.h:961
runtime estimation (seconds)
Definition: mkldnn_types.h:1241
blocked weights format
Definition: mkldnn_types.h:418
A (in-place) concat primitive.
Definition: mkldnn_types.h:499
mkldnn_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: mkldnn_types.h:839
blocked weights format
Definition: mkldnn_types.h:312
LSTM cell.
Definition: mkldnn_types.h:573
blocked weights format
Definition: mkldnn_types.h:293
Definition: mkldnn_types.h:1030
mkldnn_memory_desc_t diff_weights_layer_desc
Weights gradient layer memory descriptor.
Definition: mkldnn_types.h:1064
Definition: mkldnn_types.h:665
mkldnn_wino_memory_format_t wino_format
Definition: mkldnn_types.h:673
Undefined data type, used for empty memory descriptors.
Definition: mkldnn_types.h:74
blocked weights format with additional buffer with size equal to the number of output channels multip...
Definition: mkldnn_types.h:372
16-bit signed integer.
Definition: mkldnn_types.h:80
A shuffle primitive.
Definition: mkldnn_types.h:495
blocked weights format with additional buffer with size equal to the number of output channels and co...
Definition: mkldnn_types.h:319
mkldnn_prop_kind_t prop_kind
The kind of propagation.
Definition: mkldnn_types.h:811
mkldnn_memory_desc_t src_layer_desc
Source layer memory descriptor.
Definition: mkldnn_types.h:1046
blocked weights format
Definition: mkldnn_types.h:328
blocked data format
Definition: mkldnn_types.h:271
blocked weights format
Definition: mkldnn_types.h:347
#define MKLDNN_RNN_MAX_N_PARTS
Definition: mkldnn_types.h:694
blocked weights format
Definition: mkldnn_types.h:337
A (out-of-place) concat primitive.
Definition: mkldnn_types.h:497
blocked weights format
Definition: mkldnn_types.h:358
Fuse with ReLU.
Definition: mkldnn_types.h:623
mkldnn_query_t
Primitive descriptor query specification.
Definition: mkldnn_types.h:1232
A descriptor of a Batch Normalization operation.
Definition: mkldnn_types.h:935
Definition: mkldnn_types.h:687
blocked weights format
Definition: mkldnn_types.h:373
const struct mkldnn_stream * const_mkldnn_stream_t
A constant execution stream handle.
Definition: mkldnn_types.h:1297
blocked data format
Definition: mkldnn_types.h:278
blocked weights format
Definition: mkldnn_types.h:289
A sum primitive.
Definition: mkldnn_types.h:501
blocked weights format
Definition: mkldnn_types.h:360
blocked weights format
Definition: mkldnn_types.h:413
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:861
blocked weights format
Definition: mkldnn_types.h:296
unsigned flags
Definition: mkldnn_types.h:962
blocked weights format
Definition: mkldnn_types.h:295
blocked weights format
Definition: mkldnn_types.h:363
Convolution algorithm(either direct or Winograd) is chosen just in time.
Definition: mkldnn_types.h:530
blocked weights format
Definition: mkldnn_types.h:284
blocked weights format
Definition: mkldnn_types.h:420
2D weights tensor with physical layout io.
Definition: mkldnn_types.h:187
memory consumption – extra (scratch) memory, additional to all inputs and outputs memory (bytes) ...
Definition: mkldnn_types.h:1242
blocked weights format
Definition: mkldnn_types.h:353
An batch normalization primitive.
Definition: mkldnn_types.h:515
Definition: mkldnn_types.h:524
A descriptor of a pooling operation.
Definition: mkldnn_types.h:874
mkldnn_dims_t strides
Pooling kernel strides for spatial dimensions.
Definition: mkldnn_types.h:894
deconvolution descriptor
Definition: mkldnn_types.h:1253
blocked weights format
Definition: mkldnn_types.h:366
int softmax_axis
The axis along which to perform the softmax.
Definition: mkldnn_types.h:870
mkldnn_memory_desc_t diff_dst_iter_desc
Destination gradient iteration memory descriptor.
Definition: mkldnn_types.h:1072
8-bit signed integer.
Definition: mkldnn_types.h:82
The data in padding regions is zero.
Definition: mkldnn_types.h:454
mkldnn_memory_desc_t variance_desc
Definition: mkldnn_types.h:959
source memory primitive desc
Definition: mkldnn_types.h:1267
mkldnn_primitive_kind_t
Kinds of primitives.
Definition: mkldnn_types.h:485
Winograd deconvolution.
Definition: mkldnn_types.h:534
number of inputs expected
Definition: mkldnn_types.h:1238
Definition: mkldnn_types.h:688
5D weights tensor with physical layout odhwi.
Definition: mkldnn_types.h:220
struct mkldnn_engine * mkldnn_engine_t
An engine handle.
Definition: mkldnn_types.h:1092
mkldnn_memory_desc_t weights_desc
Weights memory descriptor.
Definition: mkldnn_types.h:979
An unspecified engine.
Definition: mkldnn_types.h:1284
A view primitive.
Definition: mkldnn_types.h:491
Description of tensor of weights for winograd 2x3 convolution.
Definition: mkldnn_types.h:672
blocked weights format
Definition: mkldnn_types.h:327
blocked data format
Definition: mkldnn_types.h:274
Average pooling exclude padding.
Definition: mkldnn_types.h:564
const char * hash
Definition: mkldnn_types.h:45
Definition: mkldnn_types.h:1000
Forward data propagation (inference mode).
Definition: mkldnn_types.h:468
6D grouped weights tensor with the physical layout goidhw, used in Caffe.
Definition: mkldnn_types.h:238
5D weights tensor with physical layout iodhw, used in Caffe.
Definition: mkldnn_types.h:214
Definition: mkldnn_types.h:666
Direct deconvolution.
Definition: mkldnn_types.h:532
Eltwise: abs.
Definition: mkldnn_types.h:544
blocked weights format
Definition: mkldnn_types.h:388
mkldnn_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: mkldnn_types.h:786
blocked weights format
Definition: mkldnn_types.h:313
5D grouped weights tensor with the physical layout hwigo, used in TensorFlow.
Definition: mkldnn_types.h:231
stub
Definition: mkldnn_types.h:1264
int ic
Definition: mkldnn_types.h:676
blocked weights format
Definition: mkldnn_types.h:410
The operation failed because requested functionality is not implemented.
Definition: mkldnn_types.h:62
Eltwise: hyperbolic tangent non-linearity (tanh)
Definition: mkldnn_types.h:538
blocked weights format with additional buffer with size equal to the number of output channels and co...
Definition: mkldnn_types.h:409
blocked weights format
Definition: mkldnn_types.h:401
mkldnn_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: mkldnn_types.h:989
blocked weights format
Definition: mkldnn_types.h:367
blocked weights format
Definition: mkldnn_types.h:364
2D data tensor.
Definition: mkldnn_types.h:160
float adj_scale
Definition: mkldnn_types.h:682
blocked weights format
Definition: mkldnn_types.h:321
Primitive or engine failed on execution.
Definition: mkldnn_types.h:66
memory descriptor for memory and view
Definition: mkldnn_types.h:1251
const struct mkldnn_post_ops * const_mkldnn_post_ops_t
A constant post operation chain handle.
Definition: mkldnn_types.h:1177
An LRN primitive.
Definition: mkldnn_types.h:513
Definition: mkldnn_types.h:1026
mkldnn_padding_kind_t
Kinds of padding.
Definition: mkldnn_types.h:452
mkldnn_memory_desc_t dst_desc
Destination memory descriptor.
Definition: mkldnn_types.h:890
Lazy stream.
Definition: mkldnn_types.h:1288
blocked weights format
Definition: mkldnn_types.h:415
blocked weights format
Definition: mkldnn_types.h:286
uint16_t mkldnn_bfloat16_t
Definition: mkldnn_types.h:29
mkldnn_memory_desc_t diff_src_iter_desc
Source gradient iter memory descriptor.
Definition: mkldnn_types.h:1062
5D RNN weights tensor in the format (num_layers, num_directions, num_gates, output_channels, input_channels).
Definition: mkldnn_types.h:259
blocked weights format
Definition: mkldnn_types.h:356
const struct mkldnn_primitive_desc * const_mkldnn_primitive_desc_t
A constant primitive descriptor handle.
Definition: mkldnn_types.h:1129
shuffle descriptor
Definition: mkldnn_types.h:1254
Forward data propagation (training mode).
Definition: mkldnn_types.h:464
3D data tensor with the physical layout nwc.
Definition: mkldnn_types.h:166
The operation failed because a primitive was not ready for execution.
Definition: mkldnn_types.h:59
Intel(R) MKL-DNN Version type.
Definition: mkldnn_types.h:41
An opaque structure to describe a primitive.
A tensor in a generic format described by the stride and blocking values in each dimension.
Definition: mkldnn_types.h:156
mkldnn_data_type_t
Data type specification.
Definition: mkldnn_types.h:72
convolution descriptor
Definition: mkldnn_types.h:1252
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:1037
mkldnn_memory_desc_t src_desc
Source memory descriptor.
Definition: mkldnn_types.h:886
mkldnn_prop_kind_t prop_kind
The kind of propagation.
Definition: mkldnn_types.h:942
blocked weights format
Definition: mkldnn_types.h:342
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:825
mkldnn_alg_kind_t alg_kind
The kind of eltwise algorithm.
Definition: mkldnn_types.h:835
blocked weights format
Definition: mkldnn_types.h:333
mkldnn_memory_desc_t diff_src_layer_desc
Source gradient layer memory descriptor.
Definition: mkldnn_types.h:1060
Eltwise: bounded_relu.
Definition: mkldnn_types.h:550
mkldnn_memory_desc_t diff_weights_desc
Weights gradient memory descriptor.
Definition: mkldnn_types.h:981
Definition: mkldnn_types.h:1023
mkldnn_prop_kind_t prop_kind
The kind of propagation.
Definition: mkldnn_types.h:767
mkldnn_engine_kind_t
Kinds of engines.
Definition: mkldnn_types.h:1081
Definition: mkldnn_types.h:996
Queried element is not required for given primitive.
Definition: mkldnn_types.h:68
blocked weights format
Definition: mkldnn_types.h:437
blocked weights format
Definition: mkldnn_types.h:385
Weights format used in 8bit Winograd convolution.
Definition: mkldnn_types.h:442
4D weights tensor with physical layout ohwi.
Definition: mkldnn_types.h:205
Generic description of blocked data layout for most memory formats.
Definition: mkldnn_types.h:644
Round nearest.
Definition: mkldnn_types.h:92
blocked weights format
Definition: mkldnn_types.h:436
const void * const_mkldnn_op_desc_t
A pointer to any of the operation descriptors (constant variant).
Definition: mkldnn_types.h:713
blocked weights format
Definition: mkldnn_types.h:285
blocked weights format
Definition: mkldnn_types.h:431
int r
Definition: mkldnn_types.h:674
4D weights tensor with physical layout iohw.
Definition: mkldnn_types.h:211
A reorder primitive.
Definition: mkldnn_types.h:493
blocked weights format
Definition: mkldnn_types.h:411
blocked weights format with additional buffer with size equal to the number of output channels multip...
Definition: mkldnn_types.h:399
blocked weights format
Definition: mkldnn_types.h:336
An unspecified engine.
Definition: mkldnn_types.h:1083
blocked weights format
Definition: mkldnn_types.h:359
blocked weights format
Definition: mkldnn_types.h:412
int oc2_block
Definition: mkldnn_types.h:681
blocked weights format
Definition: mkldnn_types.h:387
mkldnn_alg_kind_t
Kinds of algorithms.
Definition: mkldnn_types.h:523
int mkldnn_dims_t[TENSOR_MAX_DIMS]
A type to describe tensor dimensions.
Definition: mkldnn_types.h:637
inner product descriptor
Definition: mkldnn_types.h:1260
blocked weights format
Definition: mkldnn_types.h:394
mkldnn_memory_desc_t bias_desc
Bias memory descriptor.
Definition: mkldnn_types.h:983
A pooling primitive.
Definition: mkldnn_types.h:511
weights memory primitive descriptor desc
Definition: mkldnn_types.h:1269
output memory primitive desc
Definition: mkldnn_types.h:1266
blocked weights format
Definition: mkldnn_types.h:417
mkldnn_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: mkldnn_types.h:920
blocked weights format
Definition: mkldnn_types.h:349
5D weights tensor with physical layout dhwio, used in TensorFlow.
Definition: mkldnn_types.h:217
blocked weights format
Definition: mkldnn_types.h:324
Forward data propagation (alias for mkldnn_forward_training)
Definition: mkldnn_types.h:472
3D RNN data tensor in the format (batch, seq_length, input channels).
Definition: mkldnn_types.h:240
lrn descriptor
Definition: mkldnn_types.h:1258
struct mkldnn_primitive_desc * mkldnn_primitive_desc_t
A primitive descriptor handle.
Definition: mkldnn_types.h:1126
workspace memory primitive desc
Definition: mkldnn_types.h:1273
mkldnn_memory_desc_t diff_weights_desc
Weights gradient memory descriptor.
Definition: mkldnn_types.h:778
blocked weights format
Definition: mkldnn_types.h:282
blocked weights format
Definition: mkldnn_types.h:291
mkldnn_alg_kind_t alg_kind
The kind of the convolution algorithm.
Definition: mkldnn_types.h:770
blocked weights format
Definition: mkldnn_types.h:343
weights format with additional buffer size equal to the number of output channels and containing the ...
Definition: mkldnn_types.h:308
int n_parts
Definition: mkldnn_types.h:699
weights grad.
Definition: mkldnn_types.h:1270
mkldnn_memory_desc_t diff_dst_layer_desc
Destination gradient layer memory descriptor.
Definition: mkldnn_types.h:1070
4D data tensor with the physical layout nchw, used in Caffe.
Definition: mkldnn_types.h:169
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:877
mkldnn_memory_desc_t diff_weights_iter_desc
Weights gradient iter memory descriptor.
Definition: mkldnn_types.h:1066
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:969
primitive kind
Definition: mkldnn_types.h:1236
blocked data format
Definition: mkldnn_types.h:272
mkldnn_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: mkldnn_types.h:985
mkldnn_dims_t block_dims
Block size for each of the dimensions.
Definition: mkldnn_types.h:646
blocked weights format
Definition: mkldnn_types.h:320
struct mkldnn_primitive_attr * mkldnn_primitive_attr_t
A primitive descriptor attributes handle that controls primitive behavior.
Definition: mkldnn_types.h:1147
An opaque structure to describe a primitive descriptor iterator.
Tensor of weights for 4x3 convolution.
Definition: mkldnn_types.h:668