Intel(R) Math Kernel Library for Deep Neural Networks (Intel(R) MKL-DNN)  0.20.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 {
584 
586 typedef enum {
623 
632 #define TENSOR_MAX_DIMS 12
633 
638 
642 typedef struct {
644  mkldnn_dims_t block_dims;
647  mkldnn_strides_t strides[2];
649  mkldnn_dims_t padding_dims;
652  mkldnn_dims_t offset_padding_to_data;
655  ptrdiff_t offset_padding;
657 
658 typedef enum {
668 
670 typedef struct {
671  mkldnn_wino_memory_format_t wino_format;
672  int r;
673  int alpha;
674  int ic;
675  int oc;
676  int ic_block;
677  int oc_block;
680  float adj_scale;
681  size_t size;
683 
684 typedef enum {
689 
690 /* Maximum number of parts of RNN weights tensor that require separate
691  * computation. */
692 #define MKLDNN_RNN_MAX_N_PARTS 4
693 
695 typedef struct {
696  mkldnn_rnn_packed_memory_format_t format;
697  int n_parts;
698  int n;
700  size_t part_pack_size[MKLDNN_RNN_MAX_N_PARTS];
702  size_t size;
704 
709 typedef void *mkldnn_op_desc_t;
711 typedef const void *const_mkldnn_op_desc_t;
712 
717 typedef struct {
720  mkldnn_primitive_kind_t primitive_kind;
722  int ndims;
738  mkldnn_dims_t dims;
742  mkldnn_memory_format_t format;
743  union {
751  /* ... other descriptions possible */
752  } layout_desc;
754 
758 typedef struct {
761  mkldnn_primitive_kind_t primitive_kind;
786  mkldnn_dims_t strides;
788  mkldnn_dims_t dilates;
792  mkldnn_dims_t padding[2];
794  mkldnn_padding_kind_t padding_kind;
798 
801 
803 typedef struct {
806  mkldnn_primitive_kind_t primitive_kind;
814  int axis;
818 
820 typedef struct {
823  mkldnn_primitive_kind_t primitive_kind;
852  float alpha, beta;
854 
856 typedef struct {
859  mkldnn_primitive_kind_t primitive_kind;
870 
872 typedef struct {
875  mkldnn_primitive_kind_t primitive_kind;
892  mkldnn_dims_t strides;
894  mkldnn_dims_t kernel;
898  mkldnn_dims_t padding[2];
900  mkldnn_padding_kind_t padding_kind;
904 
906 typedef struct {
909  mkldnn_primitive_kind_t primitive_kind;
925  float lrn_alpha;
927  float lrn_beta;
929  float lrn_k;
931 
933 typedef struct {
936  mkldnn_primitive_kind_t primitive_kind;
960  unsigned flags;
962 
964 typedef struct {
967  mkldnn_primitive_kind_t primitive_kind;
991 
993 typedef enum {
997 
998 typedef struct {
1007  unsigned int flags;
1010  float alpha;
1013  float clipping;
1015 
1017 typedef enum {
1018  /* Unidirectional execution of RNN primitive from left to right. */
1020  /* Unidirectional execution of RNN primitive from right to left. */
1022  /* Bidirectional execution of RNN primitive with concatenation of the
1023  * results. */
1025  /* Bidirectional execution of RNN primitive with summation of the
1026  * results. */
1030 
1032 typedef struct {
1035  mkldnn_primitive_kind_t primitive_kind;
1042  mkldnn_rnn_direction_t direction;
1072 
1079 typedef enum {
1085 
1088 struct mkldnn_engine;
1091 #if 0
1092 /* FIXME: looks like this never happens */
1094 typedef const struct mkldnn_engine *const_mkldnn_engine_t;
1095 #endif
1096 
1105 
1109 
1113 
1121 struct mkldnn_primitive_desc;
1122 
1125 
1128 
1141 struct mkldnn_primitive_attr;
1142 
1146 
1149 
1169 struct mkldnn_post_ops;
1170 
1173 
1176 
1184 struct mkldnn_primitive;
1189 
1191 typedef struct {
1193  const_mkldnn_primitive_t primitive;
1197 
1230 typedef enum {
1246  /* memory and op descriptor section */
1261  /* (memory) primitive descriptor section */
1272 } mkldnn_query_t;
1273 
1280 typedef enum {
1288 
1291 struct mkldnn_stream;
1295 typedef const struct mkldnn_stream *const_mkldnn_stream_t;
1296 
1301 #ifdef __cplusplus
1302 }
1303 #endif
1304 
1305 
1306 #endif
mkldnn_data_type_t accum_data_type
The accumulator data type.
Definition: mkldnn_types.h:989
LRN within a single channel.
Definition: mkldnn_types.h:567
struct mkldnn_post_ops * mkldnn_post_ops_t
A post operation chain handle.
Definition: mkldnn_types.h:1172
mkldnn_padding_kind_t padding_kind
The kind of padding to use.
Definition: mkldnn_types.h:900
size_t size
Definition: mkldnn_types.h:681
A descriptor of a Local Response Normalization (LRN) operation.
Definition: mkldnn_types.h:906
blocked weights format
Definition: mkldnn_types.h:348
blocked weights format
Definition: mkldnn_types.h:355
op descriptor
Definition: mkldnn_types.h:1248
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:1237
blocked weights format
Definition: mkldnn_types.h:438
int alpha
Definition: mkldnn_types.h:673
mkldnn_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: mkldnn_types.h:1066
int minor
Definition: mkldnn_types.h:43
mkldnn_rnn_packed_memory_format_t format
Definition: mkldnn_types.h:696
mkldnn_dims_t dilates
Convolution dilates in each spatial dimension.
Definition: mkldnn_types.h:788
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:758
mkldnn_rnn_direction_t direction
The direction of RNN primitive execution.
Definition: mkldnn_types.h:1042
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:1054
int ic_block
Definition: mkldnn_types.h:676
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:687
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:1010
#define TENSOR_MAX_DIMS
Maximum number of dimensions a tensor can have.
Definition: mkldnn_types.h:632
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:856
blocked weights format
Definition: mkldnn_types.h:439
mkldnn_padding_kind_t padding_kind
The kind of padding to use.
Definition: mkldnn_types.h:794
blocked weights format
Definition: mkldnn_types.h:440
blocked weights format
Definition: mkldnn_types.h:403
int oc_block
Definition: mkldnn_types.h:677
blocked data format
Definition: mkldnn_types.h:275
A descriptor of an inner product operation.
Definition: mkldnn_types.h:964
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:1257
mkldnn_rnn_direction_t
A direction of RNN primitive execution.
Definition: mkldnn_types.h:1017
mkldnn_memory_desc_t diff_data_scaleshift_desc
Definition: mkldnn_types.h:951
A convolution primitive.
Definition: mkldnn_types.h:503
mkldnn_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: mkldnn_types.h:975
size_t offset_compensation
Definition: mkldnn_types.h:701
int axis
axis for shuffling.
Definition: mkldnn_types.h:814
struct mkldnn_stream * mkldnn_stream_t
An execution stream handle.
Definition: mkldnn_types.h:1293
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:862
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:1107
blocked weights format
Definition: mkldnn_types.h:339
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:806
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:782
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:886
Tensors of weights for 2x3 winograd convolutions.
Definition: mkldnn_types.h:662
Definition: mkldnn_types.h:563
mkldnn_memory_desc_t diff_desc
Source and Destination of gradient memory descriptor.
Definition: mkldnn_types.h:866
size_t output_index
Desired output index.
Definition: mkldnn_types.h:1195
mkldnn_data_type_t data_type
Data type of the tensor elements.
Definition: mkldnn_types.h:740
mkldnn_rnn_cell_flags_t
Flags for RNN cell.
Definition: mkldnn_types.h:993
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:652
float lrn_beta
LRN beta parameter.
Definition: mkldnn_types.h:927
32-bit signed integer.
Definition: mkldnn_types.h:78
Max pooling.
Definition: mkldnn_types.h:558
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:1233
void * mkldnn_op_desc_t
A pointer to any of the operation descriptors.
Definition: mkldnn_types.h:709
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:796
blocked weights format
Definition: mkldnn_types.h:322
mkldnn_prop_kind_t prop_kind
The kind of propagation.
Definition: mkldnn_types.h:913
mkldnn_memory_desc_t diff_dst_desc
Destination gradient memory descriptor.
Definition: mkldnn_types.h:890
Definition: mkldnn_types.h:995
mkldnn_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: mkldnn_types.h:835
float lrn_alpha
LRN alpha parameter.
Definition: mkldnn_types.h:925
struct mkldnn_primitive * mkldnn_primitive_t
A primitive handle.
Definition: mkldnn_types.h:1186
input memory primitive desc
Definition: mkldnn_types.h:1263
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:637
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:1193
mkldnn_prop_kind_t prop_kind
The kind of propagation.
Definition: mkldnn_types.h:879
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:923
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:655
A descriptor of a element-wise operation.
Definition: mkldnn_types.h:820
rnn descriptor
Definition: mkldnn_types.h:1259
An element-wise primitive.
Definition: mkldnn_types.h:507
float beta
Definition: mkldnn_types.h:852
mkldnn_memory_desc_t src_desc
Source memory descriptor.
Definition: mkldnn_types.h:973
blocked weights format
Definition: mkldnn_types.h:331
destination grad.
Definition: mkldnn_types.h:1270
mkldnn_alg_kind_t activation_kind
Activation function used.
Definition: mkldnn_types.h:1005
blocked weights format
Definition: mkldnn_types.h:344
A descriptor for an RNN operation.
Definition: mkldnn_types.h:1032
eltwise descriptor
Definition: mkldnn_types.h:1253
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:1013
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:778
Eltwise: soft_relu.
Definition: mkldnn_types.h:552
mkldnn_wino_memory_format_t
Definition: mkldnn_types.h:658
The operation failed due to an out-of-memory condition.
Definition: mkldnn_types.h:53
RNN cell.
Definition: mkldnn_types.h:569
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:1050
stub
Definition: mkldnn_types.h:1247
int ic2_block
Definition: mkldnn_types.h:678
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:827
const struct mkldnn_primitive_desc_iterator * const_mkldnn_primitive_desc_iterator_t
A constant primitive descriptor iterator handle.
Definition: mkldnn_types.h:1111
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:717
mkldnn_dims_t kernel
Pooling kernel spatial dimensions.
Definition: mkldnn_types.h:894
mkldnn_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: mkldnn_types.h:942
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:800
mkldnn_batch_normalization_flag_t
Flags for batch-normalization primititve.
Definition: mkldnn_types.h:586
pooling descriptor
Definition: mkldnn_types.h:1255
mkldnn_memory_desc_t diff_data_desc
Source and destination gradient memory descriptor.
Definition: mkldnn_types.h:920
mkldnn_alg_kind_t alg_kind
The kind of pooling algorithm.
Definition: mkldnn_types.h:882
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:761
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:985
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:1048
blocked weights format
Definition: mkldnn_types.h:414
mkldnn_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: mkldnn_types.h:780
blocked weights format
Definition: mkldnn_types.h:361
unsigned int flags
RNN cell flags.
Definition: mkldnn_types.h:1007
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:1056
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:909
blocked weights format
Definition: mkldnn_types.h:400
mkldnn_memory_desc_t src_iter_desc
Source iteration memory descriptor.
Definition: mkldnn_types.h:1046
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:1254
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:950
Use global statistics.
Definition: mkldnn_types.h:599
blocked weights format
Definition: mkldnn_types.h:330
no query
Definition: mkldnn_types.h:1231
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:956
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:936
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:916
Average pooling include padding.
Definition: mkldnn_types.h:560
Unspecified format.
Definition: mkldnn_types.h:152
mkldnn_memory_desc_t diff_src_desc
Source gradient memory descriptor.
Definition: mkldnn_types.h:772
destination memory primitive desc
Definition: mkldnn_types.h:1269
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:582
Local response normalization (LRN) across multiple channels.
Definition: mkldnn_types.h:565
blocked weights format
Definition: mkldnn_types.h:310
GRU cell.
Definition: mkldnn_types.h:573
Eager stream.
Definition: mkldnn_types.h:1284
implementation name
Definition: mkldnn_types.h:1244
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:649
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:929
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:971
mkldnn_wino_desc_t wino_desc
Tensor of weights for integer 8bit winograd convolution.
Definition: mkldnn_types.h:748
mkldnn_data_type_t accum_data_type
The accumulator data type.
Definition: mkldnn_types.h:902
int n
Definition: mkldnn_types.h:698
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:695
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:612
int group_size
number of groups in group convolution
Definition: mkldnn_types.h:816
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:774
blocked weights format
Definition: mkldnn_types.h:309
mkldnn_rnn_cell_desc_t cell_desc
The RNN cell desc.
Definition: mkldnn_types.h:1040
blocked weights format
Definition: mkldnn_types.h:402
A descriptor of a shuffle operation.
Definition: mkldnn_types.h:803
Definition: mkldnn_types.h:1027
mkldnn_memory_desc_t data_desc
Source and destination memory descriptor, and source and destination gradient memory descriptor...
Definition: mkldnn_types.h:812
mkldnn_rnn_packed_memory_format_t
Definition: mkldnn_types.h:684
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:660
int ndims
Number of dimensions.
Definition: mkldnn_types.h:722
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:720
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:1148
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:746
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:738
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:750
mkldnn_dims_t strides
Convolution strides in each spatial dimension.
Definition: mkldnn_types.h:786
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:1083
mkldnn_memory_desc_t bias_desc
Bias memory descriptor.
Definition: mkldnn_types.h:1052
Eltwise: square root.
Definition: mkldnn_types.h:546
mkldnn_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: mkldnn_types.h:864
blocked weights format
Definition: mkldnn_types.h:434
mkldnn_memory_format_t format
Memory format.
Definition: mkldnn_types.h:742
blocked weights format
Definition: mkldnn_types.h:290
mkldnn_stream_kind_t
Kinds of streams.
Definition: mkldnn_types.h:1280
int major
Definition: mkldnn_types.h:42
mkldnn_memory_desc_t src_desc
Source memory descriptor.
Definition: mkldnn_types.h:770
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:1191
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:944
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:1188
size_t size
Definition: mkldnn_types.h:702
source gradient memory primitive desc
Definition: mkldnn_types.h:1266
mkldnn_alg_kind_t cell_kind
RNN cell kind.
Definition: mkldnn_types.h:1002
Definition: mkldnn_types.h:1019
An opaque structure for primitive descriptor attributes.
mkldnn_prop_kind_t prop_kind
The kind of propagation.
Definition: mkldnn_types.h:1038
int oc
Definition: mkldnn_types.h:675
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:959
runtime estimation (seconds)
Definition: mkldnn_types.h:1239
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:837
blocked weights format
Definition: mkldnn_types.h:312
LSTM cell.
Definition: mkldnn_types.h:571
blocked weights format
Definition: mkldnn_types.h:293
Definition: mkldnn_types.h:1028
mkldnn_memory_desc_t diff_weights_layer_desc
Weights gradient layer memory descriptor.
Definition: mkldnn_types.h:1062
Definition: mkldnn_types.h:663
mkldnn_wino_memory_format_t wino_format
Definition: mkldnn_types.h:671
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:809
mkldnn_memory_desc_t src_layer_desc
Source layer memory descriptor.
Definition: mkldnn_types.h:1044
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:692
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:621
mkldnn_query_t
Primitive descriptor query specification.
Definition: mkldnn_types.h:1230
A descriptor of a Batch Normalization operation.
Definition: mkldnn_types.h:933
Definition: mkldnn_types.h:685
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:1295
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:859
blocked weights format
Definition: mkldnn_types.h:296
unsigned flags
Definition: mkldnn_types.h:960
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:1240
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:872
mkldnn_dims_t strides
Pooling kernel strides for spatial dimensions.
Definition: mkldnn_types.h:892
deconvolution descriptor
Definition: mkldnn_types.h:1251
blocked weights format
Definition: mkldnn_types.h:366
int softmax_axis
The axis along which to perform the softmax.
Definition: mkldnn_types.h:868
mkldnn_memory_desc_t diff_dst_iter_desc
Destination gradient iteration memory descriptor.
Definition: mkldnn_types.h:1070
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:957
source memory primitive desc
Definition: mkldnn_types.h:1265
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:1236
Definition: mkldnn_types.h:686
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:1090
mkldnn_memory_desc_t weights_desc
Weights memory descriptor.
Definition: mkldnn_types.h:977
An unspecified engine.
Definition: mkldnn_types.h:1282
A view primitive.
Definition: mkldnn_types.h:491
Description of tensor of weights for winograd 2x3 convolution.
Definition: mkldnn_types.h:670
blocked weights format
Definition: mkldnn_types.h:327
blocked data format
Definition: mkldnn_types.h:274
Average pooling exclude padding.
Definition: mkldnn_types.h:562
const char * hash
Definition: mkldnn_types.h:45
Definition: mkldnn_types.h:998
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:664
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:784
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:1262
int ic
Definition: mkldnn_types.h:674
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:987
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:680
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:1249
const struct mkldnn_post_ops * const_mkldnn_post_ops_t
A constant post operation chain handle.
Definition: mkldnn_types.h:1175
An LRN primitive.
Definition: mkldnn_types.h:513
Definition: mkldnn_types.h:1024
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:888
Lazy stream.
Definition: mkldnn_types.h:1286
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:1060
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:1127
shuffle descriptor
Definition: mkldnn_types.h:1252
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:1250
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:1035
mkldnn_memory_desc_t src_desc
Source memory descriptor.
Definition: mkldnn_types.h:884
mkldnn_prop_kind_t prop_kind
The kind of propagation.
Definition: mkldnn_types.h:940
blocked weights format
Definition: mkldnn_types.h:342
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:823
mkldnn_alg_kind_t alg_kind
The kind of eltwise algorithm.
Definition: mkldnn_types.h:833
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:1058
Eltwise: bounded_relu.
Definition: mkldnn_types.h:550
mkldnn_memory_desc_t diff_weights_desc
Weights gradient memory descriptor.
Definition: mkldnn_types.h:979
Definition: mkldnn_types.h:1021
mkldnn_prop_kind_t prop_kind
The kind of propagation.
Definition: mkldnn_types.h:765
mkldnn_engine_kind_t
Kinds of engines.
Definition: mkldnn_types.h:1079
Definition: mkldnn_types.h:994
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:642
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:711
blocked weights format
Definition: mkldnn_types.h:285
blocked weights format
Definition: mkldnn_types.h:431
int r
Definition: mkldnn_types.h:672
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:1081
blocked weights format
Definition: mkldnn_types.h:359
blocked weights format
Definition: mkldnn_types.h:412
int oc2_block
Definition: mkldnn_types.h:679
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:635
inner product descriptor
Definition: mkldnn_types.h:1258
blocked weights format
Definition: mkldnn_types.h:394
mkldnn_memory_desc_t bias_desc
Bias memory descriptor.
Definition: mkldnn_types.h:981
A pooling primitive.
Definition: mkldnn_types.h:511
weights memory primitive descriptor desc
Definition: mkldnn_types.h:1267
output memory primitive desc
Definition: mkldnn_types.h:1264
blocked weights format
Definition: mkldnn_types.h:417
mkldnn_memory_desc_t data_desc
Source and destination memory descriptor.
Definition: mkldnn_types.h:918
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:1256
struct mkldnn_primitive_desc * mkldnn_primitive_desc_t
A primitive descriptor handle.
Definition: mkldnn_types.h:1124
workspace memory primitive desc
Definition: mkldnn_types.h:1271
mkldnn_memory_desc_t diff_weights_desc
Weights gradient memory descriptor.
Definition: mkldnn_types.h:776
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:768
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:697
weights grad.
Definition: mkldnn_types.h:1268
mkldnn_memory_desc_t diff_dst_layer_desc
Destination gradient layer memory descriptor.
Definition: mkldnn_types.h:1068
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:875
mkldnn_memory_desc_t diff_weights_iter_desc
Weights gradient iter memory descriptor.
Definition: mkldnn_types.h:1064
mkldnn_primitive_kind_t primitive_kind
The kind of primitive.
Definition: mkldnn_types.h:967
primitive kind
Definition: mkldnn_types.h:1234
blocked data format
Definition: mkldnn_types.h:272
mkldnn_memory_desc_t diff_bias_desc
Bias gradient memory descriptor.
Definition: mkldnn_types.h:983
mkldnn_dims_t block_dims
Block size for each of the dimensions.
Definition: mkldnn_types.h:644
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:1145
An opaque structure to describe a primitive descriptor iterator.
Tensor of weights for 4x3 convolution.
Definition: mkldnn_types.h:666