Knowledge note

Microscaling

A block-floating-point representation that shares one scale across a small group of narrow elements.

Updated September 16, 2026Confidence: High

Microscaling

Microscaling is a block-floating-point representation that applies one shared scale to a small group of same-type narrow elements.

Why It Exists

Scalar floating-point values repeat exponent metadata and force hardware to align products individually. Sharing a scale across a block reduces storage and moves much of that alignment work outside the inner reduction, which is useful for AI matrix multiplication and convolution.

How It Works

An MX block contains one scale X, k private elements P_i, and a chosen block size. OCP MX fixes k=32 and uses an 8-bit E8M0 scale, while choosing FP4, FP6, FP8, or INT8 for the private elements. A block therefore costs w + k*d bits, such as 200 bits for MXFP6.

Tradeoffs

The shared scale must cover the whole block. An outlier can therefore reduce the effective precision of smaller values, and the implementation still has to choose the physical layout, accumulator precision, conversion policy, and operations around the dot product.

Common Confusions

  • Microscaling vs. scalar FP4: Microscaling describes the shared-scale block, not merely the bit width of each private element.
  • OCP MX vs. shared-microexponent MX: The OCP MX Alliance formats use one E8M0 scale plus private elements; the ISCA 2023 BDR work uses a related but distinct hierarchy of shared microexponents.
  • OCP MX vs. HiF4: OCP MX uses a 32-element E8M0 block contract; HiF4 uses 64 S1P2 values with an E6M2 base scale and two shared micro-exponent levels.

Where It Appears