enum dnnl_data_type_t

Overview

Data type specification. More…

#include <dnnl_common_types.h>

enum dnnl_data_type_t
{
    dnnl_data_type_undef = 0,
    dnnl_f16             = 1,
    dnnl_bf16            = 2,
    dnnl_f32             = 3,
    dnnl_s32             = 4,
    dnnl_s8              = 5,
    dnnl_u8              = 6,
    dnnl_f64             = 7,
    dnnl_boolean         = 8,
    dnnl_f8_e5m2         = 9,
    dnnl_f8_e4m3         = 10,
    dnnl_s4              = 11,
    dnnl_u4              = 12,
    dnnl_e8m0            = 13,
    dnnl_f4_e2m1         = 14,
    dnnl_f4_e3m0         = 15,
    dnnl_data_type_max   = 0x7fff,
};

Detailed Documentation

Data type specification.

Enum Values

dnnl_data_type_undef

Undefined data type, used for empty memory descriptors.

dnnl_f16

16-bit/half-precision floating point.

dnnl_bf16

non-standard 16-bit (bfloat16 w/ 7 bit mantissa) floating point.

dnnl_f32

32-bit/single-precision floating point.

dnnl_s32

32-bit signed integer.

dnnl_s8

8-bit signed integer.

dnnl_u8

8-bit unsigned integer.

dnnl_f64

64-bit/double-precision floating point.

dnnl_boolean

Boolean data type. Size is C++ implementation defined.

dnnl_f8_e5m2

OFP8 standard 8-bit floating-point with a 5-bit exponent and a 2-bit mantissa.

dnnl_f8_e4m3

OFP8 standard 8-bit floating-point with a 4-bit exponent and a 3-bit mantissa.

dnnl_s4

4-bit signed integer.

dnnl_u4

4-bit unsigned integer.

dnnl_e8m0

MX-compliant 8-bit compliant scale data type with 8-bit exponent.

dnnl_f4_e2m1

MX-compliant 4-bit float data type with 2-bit exponent and 1 bit mantissa.

dnnl_f4_e3m0

4-bit float data type with 3-bit exponent and 0 bit mantissa.

dnnl_data_type_max

Parameter to allow internal only data_types without undefined behavior.

This parameter is chosen to be valid for so long as sizeof(int) >= 2.