Datatypes#
MIOpen contains several datatypes at different levels of support. The enumerated datatypes are shown below:
typedef enum {
miopenHalf = 0,
miopenFloat = 1,
miopenInt32 = 2,
miopenInt8 = 3,
miopenInt8x4 = 4,
miopenBFloat16 = 5,
} miopenDataType_t;
Of these types only miopenFloat
and miopenHalf
are fully supported across all layers in MIOpen. Please see the individual layers in API reference section for specific datatype support and limitations.
Type descriptions:
miopenHalf
- 16-bit floating pointmiopenFloat
- 32-bit floating pointmiopenInt32
- 32-bit integer, used primarily forint8
convolution outputsmiopenInt8
- 8-bit integer, currently only supported byint8
convolution forward path, tensor set, tensor copy, tensor cast, tensor transform, tensor transpose, and im2col.miopenInt8x4
- 8-bit 4 element vector type used primarily withint8
convolutions forward path.miopenBFloat16
- brain float fp-16 (8-bit exponent, 7-bit fraction), currently only supported by convolutions, tensor set, and tensor copy.
Note: In addition to the standard datatypes above, pooling contains its own indexing datatypes:
typedef enum {
miopenIndexUint8 = 0,
miopenIndexUint16 = 1,
miopenIndexUint32 = 2,
miopenIndexUint64 = 3,
} miopenIndexType_t;