Intel(R) Math Kernel Library for Deep Neural Networks (Intel(R) MKL-DNN)
0.21.0
Performance library for Deep Learning
|
Classes | |
struct | mkldnn_version_t |
Intel(R) MKL-DNN Version type. More... | |
enum mkldnn_status_t |
Status values returned by Intel(R) MKL-DNN functions.
enum mkldnn_data_type_t |
Data type specification.
enum mkldnn_round_mode_t |
Memory format specification.
Intel MKL-DNN formats describe physical data layout. The physical layout is described as a sequence of the dimensions as they are laid out in the memory (from the outer-most to the inner-most). Note that this order doesn't affect the logical order of the dimensions that is kept in the dims
field of the mkldnn_memory_desc_t structure. The logical order of the dimensions is specified by the type of tensor.
For example, CNN 5D tensor always has its logical dimensions in the order (batch, channels, depth, height, width)
, while the physical layout might be mkldnn_ncdhw or mkldnn_ndhwc:
The following notation applies to memory format names:
'n'
denotes the mini-batch dimension'c'
denotes a channels dimension'i'
and 'o'
denote dimensions of input and output channels'd'
, 'h'
, and 'w'
denote spatial depth, height, and width respectively'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.'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_ncw | 3D data tensor with the physical layout Logical dimensions come in the order: (n, c, w) |
mkldnn_nwc | 3D data tensor with the physical layout Logical dimensions come in the order: (n, c, w) |
mkldnn_nchw | 4D data tensor with the physical layout Logical dimensions come in the order: (n, c, h, w) |
mkldnn_nhwc | 4D data tensor with the physical layout Logical dimensions come in the order: (n, c, h, w) |
mkldnn_chwn | 4D data tensor with the physical layout Logical dimensions come in the order: (n, c, h, w) |
mkldnn_ncdhw | 5D data tensor with the physical layout Logical dimensions come in the order: (n, c, d, h, w) |
mkldnn_ndhwc | 5D data tensor with the physical layout Logical dimensions come in the order: (n, c, d, h, w) |
mkldnn_oi | 2D weights tensor with physical layout Logical dimensions come in the order: (o, i) |
mkldnn_io | 2D weights tensor with physical layout Logical dimensions come in the order: (o, i) |
mkldnn_oiw | 3D weights tensor with physical layout Logical dimensions come in the order: (o, i, w) |
mkldnn_owi | 3D weights tensor with physical layout Logical dimensions come in the order: (o, i, w) |
mkldnn_wio | 3D weights tensor with physical layout Logical dimensions come in the order: (o, i, w) |
mkldnn_oihw | 4D weights tensor with physical layout Logical dimensions come in the order: (o, i, h, w) |
mkldnn_hwio | 4D weights tensor with physical layout Logical dimensions come in the order: (o, i, h, w) |
mkldnn_ohwi | 4D weights tensor with physical layout Logical dimensions come in the order: (o, i, h, w) |
mkldnn_ihwo | 4D weights tensor with physical layout Logical dimensions come in the order: (o, i, h, w) |
mkldnn_iohw | 4D weights tensor with physical layout Logical dimensions come in the order: (o, i, h, w) |
mkldnn_oidhw | 5D weights tensor with physical layout Logical dimensions come in the order: (o, i, d, h, w) |
mkldnn_dhwio | 5D weights tensor with physical layout Logical dimensions come in the order: (o, i, d, h, w) |
mkldnn_odhwi | 5D weights tensor with physical layout Logical dimensions come in the order: (o, i, d, h, w) |
mkldnn_goiw | 4D grouped weights tensor with the physical layout Logical dimensions come in the order: (g, o, i, w) |
mkldnn_goihw | 5D grouped weights tensor with the physical layout Logical dimensions come in the order: (g, o, i, h, w) |
mkldnn_hwigo | 5D grouped weights tensor with the physical layout Logical dimensions come in the order: (g, o, i, h, w) |
mkldnn_giohw | 5D grouped weights tensor with the physical layout Logical dimensions come in the order: (g, o, i, h, w) |
mkldnn_goidhw | 6D grouped weights tensor with the physical layout Logical dimensions come in the order: (g, o, i, d, h, w) |
mkldnn_ntc | 3D RNN data tensor in the format (batch, seq_length, input channels). |
mkldnn_tnc | 3D RNN data tensor in the format (seq_length, batch, input channels). |
mkldnn_ldsnc | 5D RNN states tensor in the format (num_layers, num_directions, num_states, batch, state channels). |
mkldnn_ldigo | 5D RNN weights tensor in the format (num_layers, num_directions, input_channels, num_gates, output_channels).
|
mkldnn_ldgoi | 5D RNN weights tensor in the format (num_layers, num_directions, num_gates, output_channels, input_channels).
|
mkldnn_ldgo | 4D RNN bias tensor in the format (num_layers, num_directions, num_gates, output_channels).
|
mkldnn_nCw4c | blocked data format |
mkldnn_nCw8c | blocked data format |
mkldnn_nCw16c | blocked data format |
mkldnn_nChw4c | blocked data format |
mkldnn_nChw8c | blocked data format |
mkldnn_nChw16c | blocked data format |
mkldnn_nCdhw4c | blocked data format |
mkldnn_nCdhw8c | blocked data format |
mkldnn_nCdhw16c | blocked data format |
mkldnn_Owi4o | blocked weights format |
mkldnn_OIw4i4o | blocked weights format |
mkldnn_Owi8o | blocked weights format |
mkldnn_OIw8i8o | blocked weights format |
mkldnn_OIw8o8i | blocked weights format |
mkldnn_OIw16i16o | blocked weights format |
mkldnn_OIw16o16i | blocked weights format |
mkldnn_Oiw4o | blocked weights format |
mkldnn_Oiw16o | blocked weights format |
mkldnn_Owi16o | blocked weights format |
mkldnn_OIw8i16o2i | blocked weights format |
mkldnn_OIw8o16i2o | blocked weights format |
mkldnn_IOw8o16i2o | blocked weights format |
mkldnn_IOw16o16i | blocked weights format |
mkldnn_OIw4i16o4i | blocked weights format |
mkldnn_OIw4i16o4i_s8s8 | blocked weights format with additional buffer with size equal to the number of output channels and containing the values: O[i:0,OC] = -128 * SUM(j:0,IC;w:0,W)(weights(i,j,w)) |
mkldnn_hwio_s8s8 | weights format with additional buffer size equal to the number of output channels and containing the values: O[i:0,OC] = -128 * SUM(j:0,IC;h:0,H;w:0,W)(weights(i,j,h,w)) |
mkldnn_oIhw8i | blocked weights format |
mkldnn_oIhw16i | blocked weights format |
mkldnn_OIhw4i4o | blocked weights format |
mkldnn_OIhw8i8o | blocked weights format |
mkldnn_OIhw16i16o | blocked weights format |
mkldnn_OIhw4i16o4i | blocked weights format |
mkldnn_OIhw4i16o4i_s8s8 | blocked weights format with additional buffer with size equal to the number of output channels and containing the values: O[i:0,OC] = -128 * SUM(j:0,IC;h:0,H;w:0,W)(weights(i,j,h,w)) |
mkldnn_OIhw8i16o2i | blocked weights format |
mkldnn_IOhw8i16o2i | blocked weights format |
mkldnn_OIhw8o16i2o | blocked weights format |
mkldnn_IOhw8o16i2o | blocked weights format |
mkldnn_OIhw8o8i | blocked weights format |
mkldnn_OIhw16o16i | blocked weights format |
mkldnn_IOhw16o16i | blocked weights format |
mkldnn_Oihw8o | blocked weights format |
mkldnn_Oihw4o | blocked weights format |
mkldnn_Oihw16o | blocked weights format |
mkldnn_Ohwi8o | blocked weights format |
mkldnn_Ohwi4o | blocked weights format |
mkldnn_Ohwi16o | blocked weights format |
mkldnn_OhIw16o4i | blocked weights format |
mkldnn_oIdhw8i | blocked weights format |
mkldnn_oIdhw16i | blocked weights format |
mkldnn_OIdhw4i4o | blocked weights format |
mkldnn_Odhwi4o | blocked weights format |
mkldnn_OIdhw8i8o | blocked weights format |
mkldnn_OIdhw8o8i | blocked weights format |
mkldnn_Odhwi8o | blocked weights format |
mkldnn_OIdhw16i16o | blocked weights format |
mkldnn_OIdhw16o16i | blocked weights format |
mkldnn_Oidhw4o | blocked weights format |
mkldnn_Oidhw16o | blocked weights format |
mkldnn_Odhwi16o | blocked weights format |
mkldnn_OIdhw8i16o2i | blocked weights format |
mkldnn_OIdhw8o16i2o | blocked weights format |
mkldnn_IOdhw8o16i2o | blocked weights format |
mkldnn_gOwi4o | blocked weights format |
mkldnn_gOIw4i4o | blocked weights format |
mkldnn_gOwi8o | blocked weights format |
mkldnn_gOIw8o8i | blocked weights format |
mkldnn_gOIw8i8o | blocked weights format |
mkldnn_gOIw16i16o | blocked weights format |
mkldnn_gOIw16o16i | blocked weights format |
mkldnn_gOiw4o | blocked weights format |
mkldnn_gOiw16o | blocked weights format |
mkldnn_gOwi16o | blocked weights format |
mkldnn_gOIw8i16o2i | blocked weights format |
mkldnn_gOIw8o16i2o | blocked weights format |
mkldnn_gIOw8o16i2o | blocked weights format |
mkldnn_gIOw16o16i | blocked weights format |
mkldnn_gOIw4i16o4i | blocked weights format |
mkldnn_gOIw4i16o4i_s8s8 | blocked weights format with additional buffer with size equal to the number of output channels multiplied by number of groups and containing the values: O[i:0,G*OC] = -128 * SUM(j:0,IC;w:0,W)(weights(i,j,w)) |
mkldnn_Goiw16g | blocked weights format |
mkldnn_Goiw16g_s8s8 | blocked weights format with additional buffer with size equal to the number of groups and containing the values: O[i:0,G] = -128 * SUM(w:0,W)(weights(i,i,w)) |
mkldnn_hwigo_s8s8 | weights format with additional buffer size equal to the number of output channels multiplied by number of groups and containing the values: O[i:0,G*OC] = -128 * SUM(j:0,IC;h:0,H;w:0,W)(weights(i,j,h,w)) |
mkldnn_gOIhw4i4o | blocked weights format |
mkldnn_gOIhw8i8o | blocked weights format |
mkldnn_gOIhw16i16o | blocked weights format |
mkldnn_gOIhw4i16o4i | blocked weights format |
mkldnn_gOIhw4i16o4i_s8s8 | blocked weights format with additional buffer with size equal to the number of output channels multiplied by number of groups and containing the values: O[i:0,G*OC] = -128 * SUM(j:0,IC;h:0,H;w:0,W)(weights(i,j,h,w)) |
mkldnn_gOIhw2i8o4i | blocked weights format |
mkldnn_gOIhw2i8o4i_s8s8 | blocked weights format with additional buffer with size equal to the number of output channels multiplied by number of groups and containing the values: O[i:0,G*OC] = -128 * SUM(j:0,IC;h:0,H;w:0,W)(weights(i,j,h,w)) |
mkldnn_gOIhw8i16o2i | blocked weights format |
mkldnn_gIOhw8i16o2i | blocked weights format |
mkldnn_gOIhw8o16i2o | blocked weights format |
mkldnn_gIOhw8o16i2o | blocked weights format |
mkldnn_gOIhw4o4i | blocked weights format |
mkldnn_gOIhw4o4i_s8s8 | blocked weights format with additional buffer with size equal to the number of output channels and containing the values: O[i:0,OC] = -128 * SUM(j:0,IC;h:0,H;w:0,W)(weights(i,j,h,w)) blocked weights format |
mkldnn_gOIhw8o8i | blocked weights format |
mkldnn_gOIhw16o16i | blocked weights format |
mkldnn_gIOhw16o16i | blocked weights format |
mkldnn_gOihw8o | blocked weights format |
mkldnn_gOihw4o | blocked weights format |
mkldnn_gOihw16o | blocked weights format |
mkldnn_gOhwi8o | blocked weights format |
mkldnn_gOhwi4o | blocked weights format |
mkldnn_gOhwi16o | blocked weights format |
mkldnn_Goihw8g | blocked weights format |
mkldnn_Goihw16g | blocked weights format |
mkldnn_Goihw16g_s8s8 | blocked weights format with additional buffer with size equal to the number of groups and containing the values: O[i:0,G] = -128 * SUM(h:0,H;w:0,W)(weights(i,i,h,w)) |
mkldnn_gOhIw16o4i | blocked weights format |
mkldnn_gOIdhw4i4o | blocked weights format |
mkldnn_gOdhwi4o | blocked weights format |
mkldnn_gOIdhw8i8o | blocked weights format |
mkldnn_gOIdhw8o8i | blocked weights format |
mkldnn_gOdhwi8o | blocked weights format |
mkldnn_gOIdhw8i16o2i | blocked weights format |
mkldnn_gOIdhw8o16i2o | blocked weights format |
mkldnn_gIOdhw8o16i2o | blocked weights format |
mkldnn_gOIdhw16i16o | blocked weights format |
mkldnn_gOIdhw16o16i | blocked weights format |
mkldnn_gOidhw4o | blocked weights format |
mkldnn_gOidhw16o | blocked weights format |
mkldnn_gOdhwi16o | blocked weights format |
mkldnn_wino_fmt | Weights format used in 8bit Winograd convolution. |
mkldnn_rnn_packed | Packed weights format used in RNN. |
mkldnn_format_last | Just a sentinel, not real memory format. Must be changed after new format is added. |
enum mkldnn_prop_kind_t |
Kinds of propagation.
Kinds of primitives.
Used to implement a way to extend the library with new primitives without changing the ABI.
enum mkldnn_alg_kind_t |
Kinds of algorithms.
Enumerator | |
---|---|
mkldnn_alg_kind_undef | |
mkldnn_convolution_direct | Direct convolution. |
mkldnn_convolution_winograd | Winograd convolution. |
mkldnn_convolution_auto | Convolution algorithm(either direct or Winograd) is chosen just in time. |
mkldnn_deconvolution_direct | Direct deconvolution. |
mkldnn_deconvolution_winograd | Winograd deconvolution. |
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_eltwise_exp | Eltwise: exponent. |
mkldnn_eltwise_gelu | Eltwise: gelu. |
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_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:
Primitive expects 4 biases on input: |
Flags for batch-normalization primititve.
Enumerator | |
---|---|
mkldnn_use_global_stats | Use global statistics. If specified
If not specified:
|
mkldnn_use_scaleshift | Use scale and shift parameters. If specified:
If no specified:
|
mkldnn_fuse_bn_relu | Fuse with ReLU. If specified:
|