struct dnnl_memory_desc_t

Overview

Memory descriptor. More…

#include <dnnl_types.h>

struct dnnl_memory_desc_t
{
    // fields

    int ndims;
    dnnl_dims_t dims;
    dnnl_data_type_t data_type;
    dnnl_dims_t padded_dims;
    dnnl_dims_t padded_offsets;
    dnnl_dim_t offset0;
    dnnl_format_kind_t format_kind;
    dnnl_blocking_desc_t blocking;
    dnnl_wino_desc_t wino_desc;
    dnnl_rnn_packed_desc_t rnn_packed_desc;
    union dnnl_memory_desc_t::@2 format_desc;
    dnnl_memory_extra_desc_t extra;
};

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.

Fields

int ndims

Number of dimensions.

dnnl_dims_t dims

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}).

Note

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}.

dnnl_data_type_t data_type

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.

dnnl_blocking_desc_t blocking

Description of the data layout for memory formats that use blocking.

dnnl_wino_desc_t wino_desc

Tensor of weights for integer 8bit winograd convolution.

dnnl_rnn_packed_desc_t rnn_packed_desc

Tensor of packed weights for RNN.