Two's complement with an implicit 2-6 scale: one sign bit, one integer bit, six fraction bits
MXINT8 stores the same eight two's complement bits as INT8, but the binary point sits after the second bit rather than at the end. The result is a fixed-point format covering ±1.984375 in steps of 1⁄64.
MXINT8 is one of the element types of the OCP Microscaling (MX) Specification v1.0. Thirty-two MXINT8 elements plus one E8M0 shared scale make an MXINT8 block. The elements carry precision near 1.0; the block scale carries the dynamic range.
Because every element in a block sits in a fixed relative range around the shared scale, an element type does not need an exponent field of its own. MXINT8 spends all eight bits on significand, giving it uniform absolute precision across its range — unlike FP8 E4M3, whose precision degrades as magnitude grows.
0x40 is the integer 64 read as INT8 and the value 1.0 read as MXINT8.
The step between adjacent encodings — the ULP — is exactly 1⁄64 = 0.015625 everywhere, which is what makes MXINT8 a fixed-point rather than a floating-point type.
0 0.000000 = 0. There is exactly one zero, with no signed variant.0 1.111111 = +1 63⁄64 = +1.984375, and 1 0.000001 = −1.984375.0 0.000001 = +1⁄64, and 1 1.111111 = −1⁄64.0x80 (−2) to go unused so the positive and negative extremes match and no negative bias is introduced. This converter takes that option: encoding never produces 0x80, and −2 saturates to −1.984375. Decoding 0x80 still reports −2, since decoding is total over the whole bit space.
Click any bit to flip it, or enter a decimal or hex value. Note that the signed column reads the bits as MXINT8 while the unsigned column reads them at the same 1⁄64 scale without a sign bit.
OCP_MXINT8Spec for MXINT8 quantization on ROCm.