Knowledge note
Block Floating Point
Block floating point shares exponent or scale metadata across a group of narrow values so storage and arithmetic can be cheaper than scalar floating point.
Block Floating Point
Block Floating Point is a numeric representation that shares one exponent or scale across a group of narrow element payloads.
Why It Exists
Scalar floating-point values repeat exponent metadata and force hardware to align each product separately. A shared block scale amortizes that metadata and lets a reduction tree use narrower, cheaper arithmetic.
How It Works
A block stores one scale plus several private values. The scale handles the block’s broad magnitude; the private payloads preserve signs and local precision. MX formats use a shared E8M0 scale for 32 private elements, while HiF4 uses an E6M2 base scale and two levels of shared one-bit micro-exponents for 64 S1P2 elements.
Tradeoffs
The shared scale must cover the whole block. An outlier can therefore waste representable range for smaller values, and the hardware must still define block layout, conversion, accumulation precision, and the wider operations around the narrow dot product.
Common Confusions
- Block floating point vs. scalar FP4: Block floating point describes the shared-scale organization, not simply a four-bit payload.
- Block floating point vs. microscaling: Microscaling is a fine-grained block-floating family; different microscaled formats can use different group sizes, scale encodings, and payloads.
Where It Appears
- HiFloat4 (HiF4): 4-Bit Block Floating Point for LLM Inference — Uses a three-level scale hierarchy to preserve precision and simplify 64-wide dot products.
- Microscaling (MX) Formats: Block Floating Point for AI Hardware — Defines the OCP shared-scale block contract and its hardware boundaries.