Developer Guide and Reference

  • 2022.1
  • 04/11/2022
  • Public Content

struct dnnl_memory_desc_t


Memory descriptor. More…

Detailed Documentation

Memory descriptor.
The description is based on a number of dimensions, dimensions themselves, plus information about elements type and memory format. Additionally, contains format-specific descriptions of the data layout.
int ndims
Number of dimensions.
Dimensions in the following order:
  • CNN data tensors: mini-batch, channel, spatial (
    {N, C, [[D,] H,] W}
  • CNN weight tensors: group (optional), output channel, input channel, spatial (
    {[G,] O, I, [[D,] H,] W}
  • RNN data tensors: time, mini-batch, channels (
    {T, N, C}
    ) or layers, directions, states, mini-batch, channels (
    {L, D, S, N, C}
  • RNN weight tensor: layers, directions, input channel, gates, output channels (
    {L, D, I, G, O}
The order of dimensions does not depend on the memory format, so whether the data is laid out in dnnl_nchw or dnnl_nhwc the dims for 4D CN data tensor would be
{N, C, H, W}
Data type of the tensor elements.
dnnl_dims_t padded_dims
Size of the data including padding in each dimension.
dnnl_dims_t padded_offsets
Per-dimension offset from the padding to actual data, the top-level tensor with offsets applied must lie within the padding area.
dnnl_dim_t offset0
Offset from memory origin to the current block, non-zero only in a description of a memory sub-block.
dnnl_format_kind_t format_kind
Memory format kind.
Description of the data layout for memory formats that use blocking.
Tensor of weights for integer 8bit winograd convolution.
dnnl_rnn_packed_desc_t rnn_packed_desc
Tensor of packed weights for RNN.

Product and Performance Information


Performance varies by use, configuration and other factors. Learn more at