MXINT8 - The OCP MX 8-Bit Element Type

Two's complement with an implicit 2-6 scale: one sign bit, one integer bit, six fraction bits

Bit Layout

Sign
S
1 bit
Integer
V
1 bit
Fraction
F
F
F
F
F
F
6 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.

Overview

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.

The scale is implicit, not stored MX Table 6 defines MXINT8 as INT8 bits with an implicit scale of 2-6. Nothing in the encoding records it: the byte 0x40 is the integer 64 read as INT8 and the value 1.0 read as MXINT8.

Encoding Rules

Every Value

value = twos_complement(bits) / 64

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.

Special Values (MX Table 6)

Symmetric range: −2 is left unused MX §5.3.4 allows the most-negative encoding 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.

Interactive Value Visualizer

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.

Dynamic Range & Precision

PropertyMXINT8Unsigned (8-bit, 2^-6 scale)
Total Bits88
Fraction Bits66
Implicit Scale2^-62^-6
Minimum Value-1.9843750
Maximum Value1.9843753.984375
Representable Values256256
Step (ULP)0.0156250.015625
Symmetric RangeYesN/A

Special Values & Bit Patterns

ValueBit PatternSignedUnsigned
Zero0000000000
One (64 raw)0100000011
Max Unsigned11111111-0.0156253.984375
Max Signed011111111.9843751.984375
All Ones (-0.015625)11111111-0.0156253.984375
Min Signed (-1.984375)10000001-1.9843752.015625
Sign Bit Only (unused)10000000-22

Format Comparison

PropertyMXINT8INT8INT4INT16
Total Bits88416
Signed Min-1.984375-128-8-32,768
Signed Max1.984375127732,767
Unsigned Max3.9843752551565,535
Step (ULP)0.015625111
Values2562561665,536

Where MXINT8 Is Used