IMPORTANT: To view this page as Markdown, append `.md` to the URL (e.g. /get-started.md). For the complete documentation index, see llms.txt.
Skip to main content
For the complete documentation index, see llms.txt. Markdown versions of all pages are available by appending .md to any URL (e.g. /get-started.md).

Mojo module

fp6_utils

Provides low-level FP6 encode/decode utilities and scale-factor helpers.

The FP6 twin of fp4_utils, covering both OCP MX FP6 encodings (E2M3 and E3M2). Neither FP6 encoding has Inf or NaN: all 64 codes are finite, so decode needs no special-case branch and encode saturates rather than propagating a non-finite input.

Both encodings share the MX block structure with MXFP4 -- 32 consecutive elements along K share one E8M0 scale -- so MXFP6_SF_VECTOR_SIZE and MXFP6_SF_DTYPE match their MXFP4 counterparts exactly.

comptime values​

E2M3_TO_FLOAT32​

comptime E2M3_TO_FLOAT32 = SIMD(SIMD(0), SIMD(0.125), SIMD(0.25), SIMD(0.375), SIMD(0.5), SIMD(0.625), SIMD(0.75), SIMD(0.875), SIMD(1), SIMD(1.125), SIMD(1.25), SIMD(1.375), SIMD(1.5), SIMD(1.625), SIMD(1.75), SIMD(1.875), SIMD(2), SIMD(2.25), SIMD(2.5), SIMD(2.75), SIMD(3), SIMD(3.25), SIMD(3.5), SIMD(3.75), SIMD(4), SIMD(4.5), SIMD(5), SIMD(5.5), SIMD(6), SIMD(6.5), SIMD(7), SIMD(7.5), SIMD(-0.0), SIMD(-0.125), SIMD(-0.25), SIMD(-0.375), SIMD(-0.5), SIMD(-0.625), SIMD(-0.75), SIMD(-0.875), SIMD(-1), SIMD(-1.125), SIMD(-1.25), SIMD(-1.375), SIMD(-1.5), SIMD(-1.625), SIMD(-1.75), SIMD(-1.875), SIMD(-2), SIMD(-2.25), SIMD(-2.5), SIMD(-2.75), SIMD(-3), SIMD(-3.25), SIMD(-3.5), SIMD(-3.75), SIMD(-4), SIMD(-4.5), SIMD(-5), SIMD(-5.5), SIMD(-6), SIMD(-6.5), SIMD(-7), SIMD(-7.5), __list_literal__=NoneType(None))

E3M2_TO_FLOAT32​

comptime E3M2_TO_FLOAT32 = SIMD(SIMD(0), SIMD(0.0625), SIMD(0.125), SIMD(0.1875), SIMD(0.25), SIMD(0.3125), SIMD(0.375), SIMD(0.4375), SIMD(0.5), SIMD(0.625), SIMD(0.75), SIMD(0.875), SIMD(1), SIMD(1.25), SIMD(1.5), SIMD(1.75), SIMD(2), SIMD(2.5), SIMD(3), SIMD(3.5), SIMD(4), SIMD(5), SIMD(6), SIMD(7), SIMD(8), SIMD(10), SIMD(12), SIMD(14), SIMD(16), SIMD(20), SIMD(24), SIMD(28), SIMD(-0.0), SIMD(-0.0625), SIMD(-0.125), SIMD(-0.1875), SIMD(-0.25), SIMD(-0.3125), SIMD(-0.375), SIMD(-0.4375), SIMD(-0.5), SIMD(-0.625), SIMD(-0.75), SIMD(-0.875), SIMD(-1), SIMD(-1.25), SIMD(-1.5), SIMD(-1.75), SIMD(-2), SIMD(-2.5), SIMD(-3), SIMD(-3.5), SIMD(-4), SIMD(-5), SIMD(-6), SIMD(-7), SIMD(-8), SIMD(-10), SIMD(-12), SIMD(-14), SIMD(-16), SIMD(-20), SIMD(-24), SIMD(-28), __list_literal__=NoneType(None))

FP6_BYTES_PER_GROUP​

comptime FP6_BYTES_PER_GROUP = 3

FP6_ELEMENTS_PER_GROUP​

comptime FP6_ELEMENTS_PER_GROUP = 4

MXFP6_SF_DTYPE​

comptime MXFP6_SF_DTYPE = DType.float8_e8m0fnu

MXFP6_SF_VECTOR_SIZE​

comptime MXFP6_SF_VECTOR_SIZE = 32

Structs​

Functions​