[][src]Enum onednn_sys::dnnl_format_tag_t

#[repr(u32)]
#[non_exhaustive]pub enum dnnl_format_tag_t {
    dnnl_format_tag_undef,
    dnnl_format_tag_any,
    dnnl_a,
    dnnl_ab,
    dnnl_abc,
    dnnl_abcd,
    dnnl_abcde,
    dnnl_abcdef,
    dnnl_abdc,
    dnnl_abdec,
    dnnl_acb,
    dnnl_acbde,
    dnnl_acbdef,
    dnnl_acdb,
    dnnl_acdeb,
    dnnl_ba,
    dnnl_bac,
    dnnl_bacd,
    dnnl_bacde,
    dnnl_bca,
    dnnl_bcda,
    dnnl_bcdea,
    dnnl_cba,
    dnnl_cdba,
    dnnl_dcab,
    dnnl_cdeba,
    dnnl_decab,
    dnnl_defcab,
    dnnl_Abc16a,
    dnnl_ABc16a16b,
    dnnl_ABc32a32b,
    dnnl_ABc4a4b,
    dnnl_aBc16b,
    dnnl_ABc16b16a,
    dnnl_Abc4a,
    dnnl_aBc32b,
    dnnl_aBc4b,
    dnnl_ABc4b16a4b,
    dnnl_ABc2b8a4b,
    dnnl_ABc4b4a,
    dnnl_ABc8a16b2a,
    dnnl_ABc8a8b,
    dnnl_ABc8a4b,
    dnnl_aBc8b,
    dnnl_ABc8b16a2b,
    dnnl_BAc8a16b2a,
    dnnl_ABc8b8a,
    dnnl_Abcd16a,
    dnnl_Abcd8a,
    dnnl_ABcd16a16b,
    dnnl_Abcd32a,
    dnnl_ABcd32a32b,
    dnnl_aBcd16b,
    dnnl_ABcd16b16a,
    dnnl_aBCd16b16c,
    dnnl_aBCd16c16b,
    dnnl_Abcd4a,
    dnnl_aBcd32b,
    dnnl_aBcd4b,
    dnnl_ABcd4b16a4b,
    dnnl_ABcd4b4a,
    dnnl_ABcd4a4b,
    dnnl_aBCd2c4b2c,
    dnnl_aBCd4b8c2b,
    dnnl_aBCd4c16b4c,
    dnnl_aBCd2c8b4c,
    dnnl_aBCd4c4b,
    dnnl_aBCd4b4c,
    dnnl_ABcd8a16b2a,
    dnnl_ABcd2b8a4b,
    dnnl_ABcd8a8b,
    dnnl_ABcd8a4b,
    dnnl_aBcd8b,
    dnnl_aBCd4c8b2c,
    dnnl_ABcd8b16a2b,
    dnnl_aBCd8b16c2b,
    dnnl_BAcd8a16b2a,
    dnnl_ABcd8b8a,
    dnnl_aBCd8b8c,
    dnnl_aBCd8b4c,
    dnnl_aBCd8c16b2c,
    dnnl_ABcde8a16b2a,
    dnnl_aCBd8b16c2b,
    dnnl_aBCd8c8b,
    dnnl_Abcde16a,
    dnnl_Abcde32a,
    dnnl_ABcde16a16b,
    dnnl_BAcde8a16b2a,
    dnnl_aBCd2b4c2b,
    dnnl_ABcde4b16a4b,
    dnnl_ABcde2b8a4b,
    dnnl_aBcde16b,
    dnnl_ABcde16b16a,
    dnnl_aBCde16b16c,
    dnnl_aBCde16c16b,
    dnnl_aBCde2c8b4c,
    dnnl_Abcde4a,
    dnnl_aBcde32b,
    dnnl_aBcde4b,
    dnnl_ABcde4b4a,
    dnnl_ABcde4a4b,
    dnnl_aBCde4b4c,
    dnnl_aBCde2c4b2c,
    dnnl_aBCde4b8c2b,
    dnnl_aBCde4c16b4c,
    dnnl_aBCde4c4b,
    dnnl_Abcde8a,
    dnnl_ABcde8a8b,
    dnnl_ABcde8a4b,
    dnnl_BAcde16b16a,
    dnnl_aBcde8b,
    dnnl_ABcde8b16a2b,
    dnnl_aBCde8b16c2b,
    dnnl_aBCde4c8b2c,
    dnnl_aCBde8b16c2b,
    dnnl_ABcde8b8a,
    dnnl_ABcde32a32b,
    dnnl_aBCde8b8c,
    dnnl_aBCde8b4c,
    dnnl_ABc4a8b8a4b,
    dnnl_ABcd4a8b8a4b,
    dnnl_ABcde4a8b8a4b,
    dnnl_BAc4b8a8b4a,
    dnnl_BAcd4b8a8b4a,
    dnnl_BAcde4b8a8b4a,
    dnnl_ABcd2a8b8a2b,
    dnnl_aBCd4b8c8b4c,
    dnnl_aBCde4b8c8b4c,
    dnnl_aBCde2b8c8b2c,
    dnnl_aBCde8c16b2c,
    dnnl_aBCde8c8b,
    dnnl_aBCde2b4c2b,
    dnnl_aBcdef16b,
    dnnl_aBCdef16b16c,
    dnnl_aBCdef16c16b,
    dnnl_aBCdef4c16b4c,
    dnnl_aBCdef2c8b4c,
    dnnl_aBCdef4c8b2c,
    dnnl_aBCdef2b4c2b,
    dnnl_aBcdef4b,
    dnnl_aBCdef4c4b,
    dnnl_aBCdef4b4c,
    dnnl_aBCdef2c4b2c,
    dnnl_aBCdef4b8c2b,
    dnnl_aBCdef8b8c,
    dnnl_aBCdef8b4c,
    dnnl_aBCdef8c16b2c,
    dnnl_aBCdef4b8c8b4c,
    dnnl_aBCdef8b16c2b,
    dnnl_aCBdef8b16c2b,
    dnnl_aBCdef8c8b,
    dnnl_aBdc16b,
    dnnl_aBdC16b2c,
    dnnl_aBdc4b,
    dnnl_aBdc8b,
    dnnl_aBdec16b,
    dnnl_aBdeC16b2c,
    dnnl_aBdec32b,
    dnnl_aBdec4b,
    dnnl_aBdec8b,
    dnnl_aBdefc16b,
    dnnl_aBdefC16b2c,
    dnnl_aCBdef16c16b,
    dnnl_aBdefc4b,
    dnnl_aBdefc8b,
    dnnl_Abcdef16a,
    dnnl_Abcdef32a,
    dnnl_Acb16a,
    dnnl_AcB16a2b,
    dnnl_Acb4a,
    dnnl_Acb8a,
    dnnl_aCBd16b16c,
    dnnl_aCBd16c16b,
    dnnl_aCBde16b16c,
    dnnl_aCBde16c16b,
    dnnl_Acdb16a,
    dnnl_AcdB16a2b,
    dnnl_Acdb32a,
    dnnl_Acdb4a,
    dnnl_Acdb8a,
    dnnl_Acdeb16a,
    dnnl_AcdeB16a2b,
    dnnl_Acdeb4a,
    dnnl_Acdeb8a,
    dnnl_BAc16a16b,
    dnnl_BAc16b16a,
    dnnl_BAcd16a16b,
    dnnl_BAcd16b16a,
    dnnl_aCBd4c8b8c4b,
    dnnl_aCBde4c8b8c4b,
    dnnl_aCBdef4c8b8c4b,
    dnnl_BAcde16a16b,
    dnnl_aCBdef16b16c,
    dnnl_format_tag_last,
}

Memory format tag specification.

oneDNN 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 dnnl_memory_desc_t structure. The logical order of the dimensions is specified by the primitive that uses the 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 NCDHW (corresponds to #dnnl_ncdhw format tag) or NDHWC (corresponds to #dnnl_ndhwc format tag).

int batch = 2, channels = 16, depth = 13, height = 13, width = 13;

int ndims = 5; // 5D tensor
dnnl_dims_t dims = {batch, channels, depth, height, width};
dnnl_memory_desc_t data_in_ncdhw;
dnnl_memory_desc_init_by_tag(
     &data_in_ncdhw, 5, dims, dnnl_f32, dnnl_ncdhw);

// note that in both cases dims passed are the same
dnnl_memory_desc_t data_in_ndhwc;
dnnl_memory_desc_init_by_tag(
     &data_in_ndhwc, 5, dims, dnnl_f32, dnnl_ndhwc);

Memory format tags can be further divided into two categories:

  • Domain-agnostic names, i.e. names the do not depend on the tensor usage in the specific primitive. These names use letters from a to l to denote logical dimension from 1 to 12, and form the order in which the dimensions are laid in memory. For instance, #dnnl_ab is used to denote 2D tensor where the second logical dimension (aka b) is the innermost, i.e. has stride = 1, and the first logical dimension (a) laid out in memory with stride equal to the size of second dimension. On the other hand, #dnnl_ba is just transposed version of the same tensor: the first dimension (a) becomes the innermost one.
  • Domain-specific names, i.e. names that make sense only in the context of a certain domain, such as CNN. This names are just aliases to the corresponding domain-agnostic tags and used mostly for the convenience. For example, #dnnl_nc is used to denote 2D CNN activations tensor memory format, where channels are the innermost dimension and batch is an outermost one. Moreover, #dnnl_nc is just an alias to #dnnl_ab, since for oneDNN CNN primitives the logical dimensions of activations tensors come in order: batch, channels, spatial. In other words, batch corresponds to the first logical dimension (a), channels correspond to the second one (b).

The following domain-specific notation applies to memory format tags:

  • @c 'n' denotes the mini-batch dimension
  • @c 'c' denotes a channels dimension
  • When there are multiple channel dimensions (for example, in convolution weights tensor), @c 'i' and @c 'o' denote dimensions of input and output channels
  • @c 'd', @c 'h', and @c 'w' denote spatial depth, height, and width respectively

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 a lower-case letter preceded by the block size. For example: #dnnl_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.

@sa @ref dev_guide_understanding_memory_formats

Variants (Non-exhaustive)

Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
dnnl_format_tag_undef

Undefined memory format tag

dnnl_format_tag_any

Undefined memory format tag. The primitive selects a format automatically.

dnnl_a

< plain 1D tensor

dnnl_ab

< plain 2D tensor

dnnl_abc

< plain 3D tensor

dnnl_abcd

< plain 4D tensor

dnnl_abcde

< plain 5D tensor

dnnl_abcdef

< plain 6D tensor

dnnl_abdc

< permuted 4D tensor

dnnl_abdec

< permuted 5D tensor

dnnl_acb

< permuted 3D tensor

dnnl_acbde

< permuted 5D tensor

dnnl_acbdef

< permuted 6D tensor

dnnl_acdb

< permuted 4D tensor

dnnl_acdeb

< permuted 5D tensor

dnnl_ba

< permuted 2D tensor

dnnl_bac

< permuted 3D tensor

dnnl_bacd

< permuted 4D tensor

dnnl_bacde

< permuted 5D tensor

dnnl_bca

< permuted 3D tensor

dnnl_bcda

< permuted 4D tensor

dnnl_bcdea

< permuted 5D tensor

dnnl_cba

< permuted 3D tensor

dnnl_cdba

< permuted 4D tensor

dnnl_dcab

< permuted 4D tensor

dnnl_cdeba

< permuted 5D tensor

dnnl_decab

< permuted 5D tensor

dnnl_defcab

< permuted 6D tensor

dnnl_Abc16a
dnnl_ABc16a16b
dnnl_ABc32a32b
dnnl_ABc4a4b
dnnl_aBc16b

3D tensor blocked by 2nd dimension with block size 16

dnnl_ABc16b16a

3D tensor blocked by 2nd dimension with block size 16

dnnl_Abc4a

3D tensor blocked by 2nd dimension with block size 16

dnnl_aBc32b

3D tensor blocked by 2nd dimension with block size 32

dnnl_aBc4b

3D tensor blocked by 2nd dimension with block size 4

dnnl_ABc4b16a4b

3D tensor blocked by 2nd dimension with block size 4

dnnl_ABc2b8a4b

3D tensor blocked by 2nd dimension with block size 4

dnnl_ABc4b4a

3D tensor blocked by 2nd dimension with block size 4

dnnl_ABc8a16b2a

3D tensor blocked by 2nd dimension with block size 4

dnnl_ABc8a8b

3D tensor blocked by 2nd dimension with block size 4

dnnl_ABc8a4b

3D tensor blocked by 2nd dimension with block size 4

dnnl_aBc8b

3D tensor blocked by 2nd dimension with block size 8

dnnl_ABc8b16a2b

3D tensor blocked by 2nd dimension with block size 8

dnnl_BAc8a16b2a

3D tensor blocked by 2nd dimension with block size 8

dnnl_ABc8b8a

3D tensor blocked by 2nd dimension with block size 8

dnnl_Abcd16a

3D tensor blocked by 2nd dimension with block size 8

dnnl_Abcd8a

3D tensor blocked by 2nd dimension with block size 8

dnnl_ABcd16a16b

3D tensor blocked by 2nd dimension with block size 8

dnnl_Abcd32a

3D tensor blocked by 2nd dimension with block size 8

dnnl_ABcd32a32b

3D tensor blocked by 2nd dimension with block size 8

dnnl_aBcd16b

4D tensor blocked by 2nd dimension with block size 16

dnnl_ABcd16b16a

4D tensor blocked by 2nd dimension with block size 16

dnnl_aBCd16b16c

4D tensor blocked by 2nd dimension with block size 16

dnnl_aBCd16c16b

4D tensor blocked by 2nd dimension with block size 16

dnnl_Abcd4a

4D tensor blocked by 2nd dimension with block size 16

dnnl_aBcd32b

4D tensor blocked by 2nd dimension with block size 32

dnnl_aBcd4b

4D tensor blocked by 2nd dimension with block size 4

dnnl_ABcd4b16a4b

4D tensor blocked by 2nd dimension with block size 4

dnnl_ABcd4b4a

4D tensor blocked by 2nd dimension with block size 4

dnnl_ABcd4a4b

4D tensor blocked by 2nd dimension with block size 4

dnnl_aBCd2c4b2c

4D tensor blocked by 2nd dimension with block size 4

dnnl_aBCd4b8c2b

4D tensor blocked by 2nd dimension with block size 4

dnnl_aBCd4c16b4c

4D tensor blocked by 2nd dimension with block size 4

dnnl_aBCd2c8b4c

4D tensor blocked by 2nd dimension with block size 4

dnnl_aBCd4c4b

4D tensor blocked by 2nd dimension with block size 4

dnnl_aBCd4b4c

4D tensor blocked by 2nd dimension with block size 4

dnnl_ABcd8a16b2a

4D tensor blocked by 2nd dimension with block size 4

dnnl_ABcd2b8a4b

4D tensor blocked by 2nd dimension with block size 4

dnnl_ABcd8a8b

4D tensor blocked by 2nd dimension with block size 4

dnnl_ABcd8a4b

4D tensor blocked by 2nd dimension with block size 4

dnnl_aBcd8b

4D tensor blocked by 2nd dimension with block size 8

dnnl_aBCd4c8b2c

4D tensor blocked by 2nd dimension with block size 8

dnnl_ABcd8b16a2b

4D tensor blocked by 2nd dimension with block size 8

dnnl_aBCd8b16c2b

4D tensor blocked by 2nd dimension with block size 8

dnnl_BAcd8a16b2a

4D tensor blocked by 2nd dimension with block size 8

dnnl_ABcd8b8a

4D tensor blocked by 1st and 2nd dimension with block size 8

dnnl_aBCd8b8c

4D tensor blocked by 1st and 2nd dimension with block size 8

dnnl_aBCd8b4c

4D tensor blocked by 1st and 2nd dimension with block size 8

dnnl_aBCd8c16b2c

4D tensor blocked by 1st and 2nd dimension with block size 8

dnnl_ABcde8a16b2a

4D tensor blocked by 1st and 2nd dimension with block size 8

dnnl_aCBd8b16c2b

4D tensor blocked by 1st and 2nd dimension with block size 8

dnnl_aBCd8c8b

4D tensor blocked by 1st and 2nd dimension with block size 8

dnnl_Abcde16a

4D tensor blocked by 1st and 2nd dimension with block size 8

dnnl_Abcde32a

4D tensor blocked by 1st and 2nd dimension with block size 8

dnnl_ABcde16a16b

4D tensor blocked by 1st and 2nd dimension with block size 8

dnnl_BAcde8a16b2a

4D tensor blocked by 1st and 2nd dimension with block size 8

dnnl_aBCd2b4c2b

4D tensor blocked by 3rd dimension with block size 4

dnnl_ABcde4b16a4b

5D tensor blocked by 1st dimension with block size 16

dnnl_ABcde2b8a4b

5D tensor blocked by 1st dimension with block size 8

dnnl_aBcde16b

5D tensor blocked by 2nd dimension with block size 16

dnnl_ABcde16b16a

5D tensor blocked by 2nd dimension with block size 16

dnnl_aBCde16b16c

5D tensor blocked by 2nd dimension with block size 16

dnnl_aBCde16c16b

5D tensor blocked by 2nd dimension with block size 16

dnnl_aBCde2c8b4c

5D tensor blocked by 2nd dimension with block size 16

dnnl_Abcde4a

5D tensor blocked by 2nd dimension with block size 16

dnnl_aBcde32b

5D tensor blocked by 2nd dimension with block size 32

dnnl_aBcde4b

5D tensor blocked by 2nd dimension with block size 4

dnnl_ABcde4b4a

5D tensor blocked by 2nd dimension with block size 4

dnnl_ABcde4a4b

5D tensor blocked by 2nd dimension with block size 4

dnnl_aBCde4b4c

5D tensor blocked by 2nd dimension with block size 4

dnnl_aBCde2c4b2c

5D tensor blocked by 2nd dimension with block size 4

dnnl_aBCde4b8c2b

5D tensor blocked by 2nd dimension with block size 4

dnnl_aBCde4c16b4c

5D tensor blocked by 2nd dimension with block size 4

dnnl_aBCde4c4b

5D tensor blocked by 2nd dimension with block size 4

dnnl_Abcde8a

5D tensor blocked by 2nd dimension with block size 4

dnnl_ABcde8a8b

5D tensor blocked by 2nd dimension with block size 4

dnnl_ABcde8a4b

5D tensor blocked by 2nd dimension with block size 4

dnnl_BAcde16b16a

5D tensor blocked by 2nd dimension with block size 4

dnnl_aBcde8b

5D tensor blocked by 2nd dimension with block size 8

dnnl_ABcde8b16a2b

5D tensor blocked by 2nd dimension with block size 8

dnnl_aBCde8b16c2b

5D tensor blocked by 2nd dimension with block size 8

dnnl_aBCde4c8b2c

5D tensor blocked by 2nd dimension with block size 8

dnnl_aCBde8b16c2b

5D tensor blocked by 2nd dimension with block size 8

dnnl_ABcde8b8a

5D tensor blocked by 2nd dimension with block size 8

dnnl_ABcde32a32b

5D tensor blocked by 2nd dimension with block size 8

dnnl_aBCde8b8c

5D tensor blocked by 2nd dimension with block size 8

dnnl_aBCde8b4c

5D tensor blocked by 2nd dimension with block size 8

dnnl_ABc4a8b8a4b

5D tensor blocked by 2nd dimension with block size 8

dnnl_ABcd4a8b8a4b

5D tensor blocked by 2nd dimension with block size 8

dnnl_ABcde4a8b8a4b

5D tensor blocked by 2nd dimension with block size 8

dnnl_BAc4b8a8b4a

5D tensor blocked by 2nd dimension with block size 8

dnnl_BAcd4b8a8b4a

5D tensor blocked by 2nd dimension with block size 8

dnnl_BAcde4b8a8b4a

5D tensor blocked by 2nd dimension with block size 8

dnnl_ABcd2a8b8a2b

5D tensor blocked by 2nd dimension with block size 8

dnnl_aBCd4b8c8b4c

5D tensor blocked by 2nd dimension with block size 8

dnnl_aBCde4b8c8b4c

5D tensor blocked by 2nd dimension with block size 8

dnnl_aBCde2b8c8b2c

5D tensor blocked by 2nd dimension with block size 8

dnnl_aBCde8c16b2c

5D tensor blocked by 2nd dimension with block size 8

dnnl_aBCde8c8b

5D tensor blocked by 2nd dimension with block size 8

dnnl_aBCde2b4c2b

5D tensor blocked by 3rd dimension with block size 4

dnnl_aBcdef16b

6D tensor blocked by 2nd dimension with block size 16

dnnl_aBCdef16b16c

6D tensor blocked by 2nd dimension with block size 16

dnnl_aBCdef16c16b

6D tensor blocked by 2nd dimension with block size 16

dnnl_aBCdef4c16b4c

6D tensor blocked by 2nd dimension with block size 16

dnnl_aBCdef2c8b4c

6D tensor blocked by 2nd dimension with block size 8

dnnl_aBCdef4c8b2c

6D tensor blocked by 2nd dimension with block size 8

dnnl_aBCdef2b4c2b

6D tensor blocked by 3rd dimension with block size 4

dnnl_aBcdef4b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBCdef4c4b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBCdef4b4c

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBCdef2c4b2c

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBCdef4b8c2b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBCdef8b8c

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBCdef8b4c

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBCdef8c16b2c

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBCdef4b8c8b4c

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBCdef8b16c2b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aCBdef8b16c2b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBCdef8c8b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBdc16b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBdC16b2c

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBdc4b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBdc8b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBdec16b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBdeC16b2c

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBdec32b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBdec4b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBdec8b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBdefc16b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBdefC16b2c

6D tensor blocked by 2nd dimension with block size 4

dnnl_aCBdef16c16b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBdefc4b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aBdefc8b

6D tensor blocked by 2nd dimension with block size 4

dnnl_Abcdef16a

6D tensor blocked by 2nd dimension with block size 4

dnnl_Abcdef32a

6D tensor blocked by 2nd dimension with block size 4

dnnl_Acb16a

6D tensor blocked by 2nd dimension with block size 4

dnnl_AcB16a2b

6D tensor blocked by 2nd dimension with block size 4

dnnl_Acb4a

6D tensor blocked by 2nd dimension with block size 4

dnnl_Acb8a

6D tensor blocked by 2nd dimension with block size 4

dnnl_aCBd16b16c

6D tensor blocked by 2nd dimension with block size 4

dnnl_aCBd16c16b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aCBde16b16c

6D tensor blocked by 2nd dimension with block size 4

dnnl_aCBde16c16b

6D tensor blocked by 2nd dimension with block size 4

dnnl_Acdb16a

6D tensor blocked by 2nd dimension with block size 4

dnnl_AcdB16a2b

6D tensor blocked by 2nd dimension with block size 4

dnnl_Acdb32a

6D tensor blocked by 2nd dimension with block size 4

dnnl_Acdb4a

6D tensor blocked by 2nd dimension with block size 4

dnnl_Acdb8a

6D tensor blocked by 2nd dimension with block size 4

dnnl_Acdeb16a

6D tensor blocked by 2nd dimension with block size 4

dnnl_AcdeB16a2b

6D tensor blocked by 2nd dimension with block size 4

dnnl_Acdeb4a

6D tensor blocked by 2nd dimension with block size 4

dnnl_Acdeb8a

6D tensor blocked by 2nd dimension with block size 4

dnnl_BAc16a16b

6D tensor blocked by 2nd dimension with block size 4

dnnl_BAc16b16a

6D tensor blocked by 2nd dimension with block size 4

dnnl_BAcd16a16b

6D tensor blocked by 2nd dimension with block size 4

dnnl_BAcd16b16a

6D tensor blocked by 2nd dimension with block size 4

dnnl_aCBd4c8b8c4b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aCBde4c8b8c4b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aCBdef4c8b8c4b

6D tensor blocked by 2nd dimension with block size 4

dnnl_BAcde16a16b

6D tensor blocked by 2nd dimension with block size 4

dnnl_aCBdef16b16c

6D tensor blocked by 2nd dimension with block size 4

dnnl_format_tag_last

Just a sentinel, not real memory format tag. Must be changed after new format tag is added.

Implementations

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

impl dnnl_format_tag_t[src]

Trait Implementations

impl Clone for dnnl_format_tag_t[src]

impl Copy for dnnl_format_tag_t[src]

impl Debug for dnnl_format_tag_t[src]

impl Eq for dnnl_format_tag_t[src]

impl Hash for dnnl_format_tag_t[src]

impl PartialEq<dnnl_format_tag_t> for dnnl_format_tag_t[src]

impl StructuralEq for dnnl_format_tag_t[src]

impl StructuralPartialEq for dnnl_format_tag_t[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.