Implementing support for E8M0 datatype in ml_dtypes, following the definition in the MX format OCP document.
A few questions still to be solved:
Naming: using float8_e8m0fnu in the PR. Maybeufloat8_e8m0fn? How to indicate there is no zero?
The absence of zero is creating a weirdity in the format, as 2**-127 is a sub-normal in FP32 (whereas all other finite E8M0 values are normal FP32 numbers with zero mantissa bits). It feels having a zero would be more consistent for a floating number format point of view.
Is 2**-127 a sub-normal then? Don't think so personally, but happy to hear a different point of view!
Implementing support for
E8M0
datatype inml_dtypes
, following the definition in the MX format OCP document.A few questions still to be solved:
float8_e8m0fnu
in the PR. Maybeufloat8_e8m0fn
? How to indicate there is no zero?2**-127
is a sub-normal in FP32 (whereas all other finite E8M0 values are normal FP32 numbers with zero mantissa bits). It feels having a zero would be more consistent for a floating number format point of view.2**-127
a sub-normal then? Don't think so personally, but happy to hear a different point of view!