Intel(R) Math Kernel Library for Deep Neural Networks (Intel(R) MKL-DNN)  0.16
Performance library for Deep Learning
Enumerations
Generic

Enumerations

enum  mkldnn_status_t {
  mkldnn_success = 0, mkldnn_out_of_memory = 1, mkldnn_try_again = 2, mkldnn_invalid_arguments = 3,
  mkldnn_not_ready = 4, mkldnn_unimplemented = 5, mkldnn_iterator_ends = 6, mkldnn_runtime_error = 7,
  mkldnn_not_required = 8
}
 Status values returned by Intel(R) MKL-DNN functions. More...
 
enum  mkldnn_data_type_t {
  mkldnn_data_type_undef = 0, mkldnn_f32 = 1, mkldnn_s32 = 2, mkldnn_s16 = 4,
  mkldnn_s8 = 5, mkldnn_u8 = 6
}
 Data type specification. More...
 
enum  mkldnn_round_mode_t { mkldnn_round_nearest = 1, mkldnn_round_down = 2 }
 Rounding mode. More...
 
enum  mkldnn_memory_format_t {
  mkldnn_format_undef = 0, mkldnn_any, mkldnn_blocked, mkldnn_x,
  mkldnn_nc, mkldnn_nchw, mkldnn_nhwc, mkldnn_chwn,
  mkldnn_nChw8c, mkldnn_nChw16c, mkldnn_ncdhw, mkldnn_ndhwc,
  mkldnn_nCdhw16c, mkldnn_oi, mkldnn_io, mkldnn_oihw,
  mkldnn_ihwo, mkldnn_hwio, mkldnn_dhwio, mkldnn_oidhw,
  mkldnn_OIdhw16i16o, mkldnn_OIdhw16o16i, mkldnn_Oidhw16o, mkldnn_Odhwi16o,
  mkldnn_OIhw8i8o, mkldnn_OIhw16i16o, mkldnn_OIhw4i16o4i, mkldnn_OIhw8i16o2i,
  mkldnn_OIdhw8i16o2i, mkldnn_OIhw8o16i2o, mkldnn_OIhw8o8i, mkldnn_OIhw16o16i,
  mkldnn_IOhw16o16i, mkldnn_Oihw8o, mkldnn_Oihw16o, mkldnn_Ohwi8o,
  mkldnn_Ohwi16o, mkldnn_OhIw16o4i, mkldnn_goihw, mkldnn_hwigo,
  mkldnn_gOIhw8i8o, mkldnn_gOIhw16i16o, mkldnn_gOIhw4i16o4i, mkldnn_gOIhw8i16o2i,
  mkldnn_gOIdhw8i16o2i, mkldnn_gOIhw8o16i2o, mkldnn_gOIhw8o8i, mkldnn_gOIhw16o16i,
  mkldnn_gIOhw16o16i, mkldnn_gOihw8o, mkldnn_gOihw16o, mkldnn_gOhwi8o,
  mkldnn_gOhwi16o, mkldnn_Goihw8g, mkldnn_Goihw16g, mkldnn_gOhIw16o4i,
  mkldnn_goidhw, mkldnn_gOIdhw16i16o, mkldnn_gOIdhw16o16i, mkldnn_gOidhw16o,
  mkldnn_gOdhwi16o, mkldnn_ntc, mkldnn_tnc, mkldnn_ldsnc,
  mkldnn_ldigo, mkldnn_ldigo_p, mkldnn_ldgoi, mkldnn_ldgoi_p,
  mkldnn_ldgo, mkldnn_wino_fmt, mkldnn_format_last, mkldnn_oIhw8i = mkldnn_nChw8c,
  mkldnn_oIhw16i = mkldnn_nChw16c
}
 Memory format specification. More...
 
enum  mkldnn_padding_kind_t { mkldnn_padding_zero }
 Kinds of padding. More...
 
enum  mkldnn_prop_kind_t {
  mkldnn_prop_kind_undef = 0, mkldnn_forward_training = 64, mkldnn_forward_inference = 96, mkldnn_forward_scoring = mkldnn_forward_inference,
  mkldnn_forward = mkldnn_forward_training, mkldnn_backward = 128, mkldnn_backward_data = 160, mkldnn_backward_weights = 192,
  mkldnn_backward_bias = 193
}
 Kinds of propagation. More...
 
enum  mkldnn_primitive_kind_t {
  mkldnn_undefined_primitive, mkldnn_memory, mkldnn_view, mkldnn_reorder,
  mkldnn_concat, mkldnn_concat_inplace, mkldnn_sum, mkldnn_convolution,
  mkldnn_deconvolution, mkldnn_eltwise, mkldnn_relu = mkldnn_eltwise, mkldnn_softmax,
  mkldnn_pooling, mkldnn_lrn, mkldnn_batch_normalization, mkldnn_inner_product,
  mkldnn_convolution_relu, mkldnn_rnn
}
 Kinds of primitives. More...
 
enum  mkldnn_alg_kind_t {
  mkldnn_alg_kind_undef, mkldnn_convolution_direct = 1, mkldnn_convolution_winograd = 2, mkldnn_eltwise_relu = 8,
  mkldnn_eltwise_tanh = 9, mkldnn_eltwise_elu = 10, mkldnn_eltwise_square = 11, mkldnn_eltwise_abs = 12,
  mkldnn_eltwise_sqrt = 13, mkldnn_eltwise_linear = 14, mkldnn_eltwise_bounded_relu = 15, mkldnn_eltwise_soft_relu = 16,
  mkldnn_eltwise_logistic = 17, mkldnn_pooling_max = 34, mkldnn_pooling_avg_include_padding = 40, mkldnn_pooling_avg_exclude_padding = 41,
  mkldnn_pooling_avg = mkldnn_pooling_avg_exclude_padding, mkldnn_lrn_across_channels = 65, mkldnn_lrn_within_channel = 66, mkldnn_deconvolution_direct = 71,
  mkldnn_deconvolution_winograd = 72, mkldnn_vanilla_rnn = 80, mkldnn_vanilla_lstm = 81, mkldnn_vanilla_gru = 82,
  mkldnn_gru_linear_before_reset = 83
}
 Kinds of algorithms. More...
 
enum  mkldnn_batch_normalization_flag_t { mkldnn_use_global_stats = 0x1U, mkldnn_use_scaleshift = 0x2U, mkldnn_omit_stats = mkldnn_use_global_stats, mkldnn_fuse_bn_relu = 0x4U }
 Flags for batch-normalization primititve. More...
 

Detailed Description

Enumeration Type Documentation

◆ mkldnn_alg_kind_t

Kinds of algorithms.

Enumerator
mkldnn_alg_kind_undef 
mkldnn_convolution_direct 

Direct convolution.

mkldnn_convolution_winograd 

Winograd convolution.

mkldnn_eltwise_relu 

Eltwise: ReLU.

mkldnn_eltwise_tanh 

Eltwise: hyperbolic tangent non-linearity (tanh)

mkldnn_eltwise_elu 

Eltwise: parametric exponential linear unit (elu)

mkldnn_eltwise_square 

Eltwise: square.

mkldnn_eltwise_abs 

Eltwise: abs.

mkldnn_eltwise_sqrt 

Eltwise: square root.

mkldnn_eltwise_linear 

Eltwise: linear.

mkldnn_eltwise_bounded_relu 

Eltwise: bounded_relu.

mkldnn_eltwise_soft_relu 

Eltwise: soft_relu.

mkldnn_eltwise_logistic 

Eltwise: logistic.

mkldnn_pooling_max 

Max pooling.

mkldnn_pooling_avg_include_padding 

Average pooling include padding.

mkldnn_pooling_avg_exclude_padding 

Average pooling exclude padding.

mkldnn_pooling_avg 
mkldnn_lrn_across_channels 

Local response normalization (LRN) across multiple channels.

mkldnn_lrn_within_channel 

LRN within a single channel.

mkldnn_deconvolution_direct 

Direct deconvolution.

mkldnn_deconvolution_winograd 

Winograd deconvolution.

mkldnn_vanilla_rnn 

RNN cell.

mkldnn_vanilla_lstm 

LSTM cell.

mkldnn_vanilla_gru 

GRU cell.

mkldnn_gru_linear_before_reset 

GRU cell with linear before reset.

Modification of original GRU cell. Differs from mkldnn_vanilla_gru in how the new memory gate is calculated:

\[ c_t = tanh(W_c*x_t + b_{c_h} + r_t*(U_c*h_{t-1}+b_{c_h})) \]

Primitive expects 4 biases on input: $[b_{u}, b_{r}, b_{c_x}, b_{c_h}]$

◆ mkldnn_batch_normalization_flag_t

Flags for batch-normalization primititve.

Enumerator
mkldnn_use_global_stats 

Use global statistics.

If specified

  • on forward propagation use mean and variance provided by user (input)
  • on backward propagation reduces the amount of computations, since mean and variance are considered as constants

If not specified:

  • on forward propagation mean and variance are computed and stored in output
  • on backward propagation compute full derivative wrt to data
mkldnn_use_scaleshift 

Use scale and shift parameters.

If specified:

  • on forward propagation use scale and shift (aka scale and bias) for the batch normalization results
  • on backward propagation (for prop_kind == mkldnn_backward) compute diff wrt to scale and shift (hence one extra output used)

If no specified:

mkldnn_omit_stats 

Omit statistics.

Deprecated:
use mkldnn_use_global_stats instead

For time being had an affect on backward propagation only which allowed skipping some computations (the same semantics as mkldnn_use_global_stats)

mkldnn_fuse_bn_relu 

Fuse with ReLU.

If specified:

  • on inference this option behaves the same as if the primitive were fused with ReLU via post ops API
  • on training primitive requires workspace (required to be able to perform backward pass)

◆ mkldnn_data_type_t

Data type specification.

Enumerator
mkldnn_data_type_undef 

Undefined data type, used for empty memory descriptors.

mkldnn_f32 

32-bit/single-precision floating point.

mkldnn_s32 

32-bit signed integer.

mkldnn_s16 

16-bit signed integer.

mkldnn_s8 

8-bit signed integer.

mkldnn_u8 

8-bit unsigned integer.

◆ mkldnn_memory_format_t

Memory format specification.

Intel(R) MKL-DNN uses the following notation for memory format names:

  • 'n' denotes the mini-batch dimension
  • 'c' denotes a channels dimension
  • When there are multiple channel dimensions (for example, in convolution weights tensor), 'i' and 'o' denote dimensions of input and output channels
  • 'h' and 'w' denote spatial width and height
  • Upper-case letters indicate that the data is laid out in blocks for a particular dimension. In such cases, the format name contains both upper- and lower-case letters for that dimension with lower-case letter preceded by the block size. For example: 'mkldnn_nChw8c' describes a format where the outermost dimension is mini-batch, followed by the channel block number, followed by the spatial height and width, and finally followed by 8-element channel blocks.
Note
Channel designations can be different. For example: both the 'mkldnn_nc' and 'mkldnn_io' formats can be used to describe a 2D tensor.
Enumerator
mkldnn_format_undef 

Undefined memory format, used for empty memory descriptors.

mkldnn_any 

Unspecified format.

The primitive selects a format automatically.

mkldnn_blocked 

A tensor in a generic format described by the stride and blocking values in each dimension.

See mkldnn_blocking_desc_t for more information.

mkldnn_x 

1D data tensor.

mkldnn_nc 

2D data tensor.

mkldnn_nchw 

4D data tensor in the nchw format typically used in Caffe.

mkldnn_nhwc 

4D data tensor in the nhwc format typically used in TensorFlow.

mkldnn_chwn 

4D data tensor in the chwn format typically used in Neon.

mkldnn_nChw8c 

4D data tensor in the nchw format with channels data laid out in memory in 8-element blocks.

mkldnn_nChw16c 

4D data tensor in the nchw format with channels data laid out in memory in 16-element blocks.

mkldnn_ncdhw 

5D data tensor in the ncdhw format.

mkldnn_ndhwc 

5D data tensor in the ndhwc format typically used in TensorFlow.

mkldnn_nCdhw16c 

5D data tensor in the ncdhw format with channels data laid out in memory in 16-element blocks.

mkldnn_oi 

2D weights tensor in the format (input channels, output channels).

mkldnn_io 

2D weights tensor in the format (input channels, output channels).

mkldnn_oihw 

4D weights tensor in the format (input channels, output channels, width, height).

mkldnn_ihwo 

4D weights tensor in the format (input channels, height, width, output channels).

mkldnn_hwio 

4D weights tensor in the format (height, width, input channels, output channels).

mkldnn_dhwio 

5D weights tensor in the format (depth, height, width, input channels, output channels).

mkldnn_oidhw 

5D weight tensor in the oidhw format.

mkldnn_OIdhw16i16o 

6D weights tensor in the oidhw format with output channels data laid out in memory in 16-element blocks and input channels data laid out in memory in 4-element blocks blocked by quadruple.

mkldnn_OIdhw16o16i 

6D weights tensor in the oihw format with both input and output channels data laid out in memory in 16-element blocks.

mkldnn_Oidhw16o 

5D weights tensor in the blocked version of oidhw format with output channels data laid out in memory in 16-element blocks.

mkldnn_Odhwi16o 

5D weights tensor in the blocked version of oidhw format with output channels data laid out in memory in 16-element blocks.

mkldnn_OIhw8i8o 

4D weights tensor in the oihw format with both input and output channels data laid out in memory in 8-element blocks.

mkldnn_OIhw16i16o 

4D weights tensor in the oihw format with both input and output channels data laid out in memory in 16-element blocks.

mkldnn_OIhw4i16o4i 

4D weights tensor in the oihw format with output channels data laid out in memory in 16-element blocks and input channels data laid out in memory in 4-element blocks blocked by quadruple.

mkldnn_OIhw8i16o2i 

4D weights tensor in the oihw format with output channels data laid out in memory in 16-element blocks and input channels data laid out in memory in 8-element blocks blocked by pairs.

mkldnn_OIdhw8i16o2i 

5D weights tensor in the oidhw format with output channels data laid out in memory in 16-element blocks and input channels data laid out in memory in 8-element blocks blocked by pairs.

mkldnn_OIhw8o16i2o 

4D weights tensor in the oihw format with input channels data laid out in memory in 16-element blocks and output channels data laid out in memory in 8-element blocks blocked by pairs.

mkldnn_OIhw8o8i 

4D weights tensor in the oihw format with both input and output channels data laid out in memory in 8-element blocks.

mkldnn_OIhw16o16i 

4D weights tensor in the oihw format with both input and output channels data laid out in memory in 16-element blocks.

mkldnn_IOhw16o16i 

4D weights tensor in the oihw format with both input and output channels data laid out in memory in 16-element blocks.

mkldnn_Oihw8o 

4D weights tensor in the format (output channels, input channels, height, width) with output channels data laid out in memory in 8-element blocks.

mkldnn_Oihw16o 

4D weights tensor in the format (output channels, input channels, height, width) with output channels data laid out in memory in 16-element blocks.

mkldnn_Ohwi8o 

4D weights tensor in the format (output channels, width, height, input channels) with output channels data laid out in memory in 8-element blocks.

mkldnn_Ohwi16o 

4D weights tensor in the format (output channels, width, height, input channels) with output channels data laid out in memory in 16-element blocks.

mkldnn_OhIw16o4i 

4D weights tensor in the oihw format with both input and output channels data laid out in memory in 16-element and 4-element blocks.

mkldnn_goihw 

5D weights tensor in the oihw format with extra outer dimension for groups.

mkldnn_hwigo 

5D weights tensor in the hwio format with extra dimension for groups that comes after the output channels.

mkldnn_gOIhw8i8o 

5D weights tensor in the blocked version of goihw format with both input and output channels data laid out in memory in 8-element blocks.

mkldnn_gOIhw16i16o 

5D weights tensor in the blocked version of goihw format with both input and output channels data laid out in memory in 16-element blocks.

mkldnn_gOIhw4i16o4i 

5D weights tensor in the oihw format with output channels data laid out in memory in 16-element blocks and input channels data laid out in memory in 4-element blocks blocked by quadruple.

mkldnn_gOIhw8i16o2i 

5D weights tensor in the oihw format with output channels data laid out in memory in 16-element blocks and input channels data laid out in memory in 8-element blocks blocked by pairs.

mkldnn_gOIdhw8i16o2i 

6D weights tensor in the oidhw format with output channels data laid out in memory in 16-element blocks and input channels data laid out in memory in 8-element blocks blocked by pairs.

mkldnn_gOIhw8o16i2o 

5D weights tensor in the oihw format with input channels data laid out in memory in 16-element blocks and output channels data laid out in memory in 8-element blocks blocked by pairs.

mkldnn_gOIhw8o8i 

5D weights tensor in the blocked version of goihw format with both input and output channels data laid out in memory in 8-element blocks.

mkldnn_gOIhw16o16i 

5D weights tensor in the blocked version of goihw format with both input and output channels data laid out in memory in 16-element blocks.

mkldnn_gIOhw16o16i 

5D weights tensor in the blocked version of goihw format with both input and output channels data laid out in memory in 16-element blocks.

mkldnn_gOihw8o 

5D weights tensor in the blocked version of goihw format with output channels data laid out in memory in 8-element blocks.

mkldnn_gOihw16o 

5D weights tensor in the blocked version of goihw format with output channels data laid out in memory in 16-element blocks.

mkldnn_gOhwi8o 

5D weights tensor in the blocked version of goihw format with output channels data laid out in memory in 8-element blocks.

mkldnn_gOhwi16o 

5D weights tensor in the blocked version of goihw format with output channels data laid out in memory in 16-element blocks.

mkldnn_Goihw8g 

5D weights tensor in the blocked version of goihw format with group data laid out in memory in 8-element blocks.

mkldnn_Goihw16g 

5D weights tensor in the blocked version of goihw format with group data laid out in memory in 16-element blocks.

mkldnn_gOhIw16o4i 

5D weights tensor in the goihw format with both input and output channels data laid out in memory in 16-element and 4-element blocks.

mkldnn_goidhw 

6D weight tensor in the goidhw format with extra dimension for groups

mkldnn_gOIdhw16i16o 

6D weights tensor in the oidhw format with output channels data laid out in memory in 16-element blocks and input channels data laid out in memory in 4-element blocks blocked by quadruple.

mkldnn_gOIdhw16o16i 

6D weights tensor in the blocked version of goihw format with both input and output channels data laid out in memory in 16-element blocks.

mkldnn_gOidhw16o 

6D weights tensor in the blocked version of goidhw format with output channels data laid out in memory in 16-element blocks.

mkldnn_gOdhwi16o 

6D weights tensor in the blocked version of goidhw format with output channels data laid out in memory in 16-element blocks.

mkldnn_ntc 

3D data tensor in the format (batch, seq_length, input channels).

mkldnn_tnc 

3D data tensor in the format (seq_length, batch, input channels).

mkldnn_ldsnc 

5D states tensor in the format (num_layers, num_directions, num_states, batch, state channels).

mkldnn_ldigo 

5D weights tensor in the format (num_layers, num_directions, input_chanels, num_gates, output_channels).

mkldnn_ldigo_p 

5D weights tensor in the blocked format.

mkldnn_ldgoi 

5D weights tensor in the format (num_layers, num_directions, num_gates, output_channels, input_chanels).

mkldnn_ldgoi_p 

5D weights tensor in the blocked format.

mkldnn_ldgo 

4D bias tensor in the format (num_layers, num_directions, num_gates, output_channels).

mkldnn_wino_fmt 

General tensor format for integer 8bit winograd convolution.

mkldnn_format_last 

Just a sentinel, not real memory format.

Must be changed after new format is added.

mkldnn_oIhw8i 

4D weights tensor in the oihw format with input channels data laid out in memory in 8-element blocks.

mkldnn_oIhw16i 

4D weights tensor in the oihw format with input channels data laid out in memory in 16-element blocks.

◆ mkldnn_padding_kind_t

Kinds of padding.

Define how to interpret the data in padding regions.

Enumerator
mkldnn_padding_zero 

The data in padding regions is zero.

◆ mkldnn_primitive_kind_t

Kinds of primitives.

Used to implement a way to extend the library with new primitives without changing the ABI.

Enumerator
mkldnn_undefined_primitive 

Undefined primitive (XXX: why do we have it?).

mkldnn_memory 

A memory primitive.

mkldnn_view 

A view primitive.

mkldnn_reorder 

A reorder primitive.

mkldnn_concat 

A (out-of-place) concat primitive.

mkldnn_concat_inplace 

A (in-place) concat primitive.

mkldnn_sum 

A sum primitive.

mkldnn_convolution 

A convolution primitive.

mkldnn_deconvolution 

A deconvolution primitive.

mkldnn_eltwise 

An element-wise primitive.

mkldnn_relu 

A ReLU primitive.

Deprecated:
mkldnn_softmax 

A Softmax primitive.

mkldnn_pooling 

A pooling primitive.

mkldnn_lrn 

An LRN primitive.

mkldnn_batch_normalization 

An batch normalization primitive.

mkldnn_inner_product 

An inner product primitive.

mkldnn_convolution_relu 

A convolution primitive merged with ReLU.

Deprecated:
mkldnn_rnn 

A rnn primitive.

◆ mkldnn_prop_kind_t

Kinds of propagation.

Enumerator
mkldnn_prop_kind_undef 

Undefined propagation type.

mkldnn_forward_training 

Forward data propagation (training mode).

In this mode primitives perform computations necessary for subsequent backward propagation.

mkldnn_forward_inference 

Forward data propagation (inference mode).

In this mode primitives only perform computations that are necessary for inference and omit computations that are only necessary for backward propagation.

mkldnn_forward_scoring 

Forward data propagation (alias for mkldnn_forward_inference)

mkldnn_forward 

Forward data propagation (alias for mkldnn_forward_training)

mkldnn_backward 

Backward propagation (with respect to all parameters.

mkldnn_backward_data 

Backward data propagation.

mkldnn_backward_weights 

Backward weights propagation.

mkldnn_backward_bias 

Backward bias propagation.

◆ mkldnn_round_mode_t

Rounding mode.

Enumerator
mkldnn_round_nearest 

Round nearest.

mkldnn_round_down 

Round down.

◆ mkldnn_status_t

Status values returned by Intel(R) MKL-DNN functions.

Enumerator
mkldnn_success 

The operation was successful.

mkldnn_out_of_memory 

The operation failed due to an out-of-memory condition.

mkldnn_try_again 

The operation failed and should be retried.

mkldnn_invalid_arguments 

The operation failed because of incorrect function arguments.

mkldnn_not_ready 

The operation failed because a primitive was not ready for execution.

mkldnn_unimplemented 

The operation failed because requested functionality is not implemented.

mkldnn_iterator_ends 

Primitive iterator passed over last primitive descriptor.

mkldnn_runtime_error 

Primitive or engine failed on execution.

mkldnn_not_required 

Queried element is not required for given primitive.