FP6 E3M2 - 6-Bit Floating Point

OCP microscaling format: 3 exponent bits, 2 mantissa bits, no infinity or NaN

Bit Layout

FP6 E3M2 squeezes a floating-point number into just 6 bits. The 3 exponent bits provide a modest range, while the 2 mantissa bits give 4 values per power-of-2 interval.

Overview

FP6 E3M2 is part of the OCP Microscaling (MX) Specification, designed for extreme quantization in machine learning. With only 64 possible bit patterns (6 bits), it represents a tiny subset of real numbers.

This format is never used alone. It's designed to be used within microscaling blocks, where a shared block exponent provides additional range. The 6-bit element captures the relative differences within a block, while the shared exponent positions the entire block on the number line.

FP6 E3M2 has more range than its sibling E2M3 (3 exponent bits vs 2), but less precision (2 mantissa bits vs 3). It does not support infinity or NaN, so all 64 bit patterns represent finite numbers (or zero).

Encoding Rules

Normal Numbers

value = (-1)sign × 2(exponent - 3) × (1 + mantissa / 4)

The bias of 3 is calculated as 2(e-1) - 1, where e is the number of exponent bits (3).

Subnormal Numbers

value = (-1)sign × 2-2 × (mantissa / 4)

Special Values

All patterns are numbers Since FP6 E3M2 has no infinity or NaN, every one of its 64 bit patterns (32 positive, 32 negative including ±0) maps to a real number. The maximum exponent (7) represents normal numbers, not special values.

Interactive Value Visualizer

Click any bit to flip it, drag the slider, or enter a decimal or hex value. The graphs show how values are distributed across the encoding space.

Dynamic Range & Precision

Special Values & Bit Patterns

Format Comparison

Where FP6 E3M2 Is Used

E3M2 vs E2M3 E3M2 has wider range (max 28 vs 7.5) but fewer distinct values per interval (4 vs 8). Choose E3M2 when your values span a wider range; choose E2M3 when you need finer granularity within a narrower range.