From fd1ae531bde3fa8ee045c6c234cec774c42aed0b Mon Sep 17 00:00:00 2001 From: gHashTag Date: Wed, 10 Jun 2026 11:45:01 +0000 Subject: [PATCH 1/2] fix(codegen): handle bias formulas in numeric format SSOT (closes #1064) The bias field in formats_catalog.t27 can carry either a literal int or a rule-derived formula like 2^N-1. Two formats use the formula form: gf512: bias = 2^194-1 gf1024: bias = 2^390-1 Both were added by PR #1051 as limit-of-ladder phi-aligned formats. The parser did int(bias_str) unconditionally, which raised ValueError, so both rows were silently dropped with a "malformed CATALOG line" warning. This is why count drifted: committed gen/ JSON shipped 77 (pre-#1051), post-#1051 SSOT carries 83 raw lines, codegen yielded 81 even after a fresh re-run, paper #3 (arXiv:2606.09686) claims 84. Four sources of truth, none matching. See issue #1064 for the full audit. Fix: - parse_bias(s) helper: tries int(); falls back to evaluating simple 2^N+offset forms within int64 range; otherwise returns sentinel -2 with the raw string in a new bias_formula field - Format dataclass: adds bias_formula: str (preserves the raw SSOT string for every row, including the literal-int cases for symmetry) - All existing emitters (Rust struct, C header, TS interface, Python, Markdown table, etc.) continue to render the int bias field as before; bias_formula appears only in JSON and python emitter where asdict() picks it up automatically -- non-breaking for the typed emitters that hardcode their Format schema. Verification after fix: $ python3 tools/gen_formats_catalog.py specs/numeric/formats_catalog.t27 gen/numeric/ $ python3 -c "import json; print(json.load(open('gen/numeric/formats_catalog.json'))['count'])" 83 gf512 and gf1024 now appear in the JSON with bias=-2 and the formula preserved in bias_formula. Downstream tools that need the actual i64 value can carry the string forward and evaluate at use-site (mpmath or big-int arithmetic) without losing provenance. This does NOT yet reconcile SSOT 83 vs paper #3 claim of 84; that delta is the MXFP6 split + standalone E8M0 in Table 1 vs the SSOT's collapsed mxfp6 row + Microscaling cluster layout. See #1064 for the follow-up plan. The CI invariant (raw line count == JSON count) will land in a separate PR. Refs: #1051 (GF ladder expansion), #1063 (HF Discovery thread), #1064 --- gen/numeric/FormatsCatalog.hs | 14 +- gen/numeric/FormatsCatalog.java | 14 +- gen/numeric/FormatsCatalog.jl | 14 +- gen/numeric/formats_catalog.go | 14 +- gen/numeric/formats_catalog.h | 16 ++- gen/numeric/formats_catalog.hpp | 16 ++- gen/numeric/formats_catalog.json | 227 +++++++++++++++++++++++++++--- gen/numeric/formats_catalog.kt | 14 +- gen/numeric/formats_catalog.md | 16 ++- gen/numeric/formats_catalog.ml | 14 +- gen/numeric/formats_catalog.py | 14 +- gen/numeric/formats_catalog.rs | 16 ++- gen/numeric/formats_catalog.swift | 14 +- gen/numeric/formats_catalog.ts | 14 +- gen/numeric/formats_catalog.vh | 40 +++++- gen/numeric/formats_catalog.zig | 14 +- tools/gen_formats_catalog.py | 38 ++++- 17 files changed, 421 insertions(+), 88 deletions(-) diff --git a/gen/numeric/FormatsCatalog.hs b/gen/numeric/FormatsCatalog.hs index 2bfc1bcf0..943eb769a 100644 --- a/gen/numeric/FormatsCatalog.hs +++ b/gen/numeric/FormatsCatalog.hs @@ -67,12 +67,18 @@ formats = , Format "gf12" "GF12" 12 1 4 7 7 (0.047) "u16" "GoldenFloat" "Verified" "this work; L0/F3" "mid-range / audio" "self" "BENCH-007 (specs/numeric/gf12.t27)" , Format "gf16" "GF16" 16 1 6 9 31 (0.049) "u16" "GoldenFloat" "Verified" "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7" "training and inference (production)" "self" "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)" , Format "gf20" "GF20" 20 1 7 12 63 (0.035) "u32" "GoldenFloat" "Experimental" "this work; 17-squared empirical PHI_BIAS=289" "high-precision edge" "self" "specs/numeric/gf20.t27 (spec only)" - , Format "gf24" "GF24" 24 1 9 14 255 (0.025) "u32" "GoldenFloat" "Experimental" "this work; L15 PHI_BIAS=1364" "server inference" "self" "specs/numeric/gf24.t27 (spec only)" + , Format "gf24" "GF24" 24 1 9 14 255 (0.025) "u32" "GoldenFloat" "Experimental" "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN" "server inference" "self" "specs/numeric/gf24.t27 (spec only)" , Format "gf32" "GF32" 32 1 12 19 2047 (0.014) "u32" "GoldenFloat" "Verified" "this work; F0 resolved" "fp32 drop-in" "self" "BENCH-012 (specs/numeric/gf32.t27)" , Format "gf64" "GF64" 64 1 24 39 8388607 (0.003) "u64" "GoldenFloat" "Verified" "this work; EXP_MAX - BIAS" "scientific / double" "self" "BENCH-007b (specs/numeric/gf64.t27)" - , Format "gf6" "GF6 (predicted)" 6 1 2 3 1 (0.05) "u8_packed" "GoldenFloat" "Experimental" "this work; e=round(5/phi^2)=2, fills FP6 gap" "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint" "experimental" "section12.5" - , Format "gf128" "GF128 (predicted)" 128 1 48 79 0 (0.008) "u128" "GoldenFloat" "Experimental" "this work; e=round(127/phi^2)=48 (Open: bias TBD)" "OPEN R&D: phi-aligned binary128 alternative" "experimental" "section12.5" - , Format "gf256" "GF256 (predicted)" 256 1 97 158 0 (0.005) "u256_software" "GoldenFloat" "Experimental" "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)" "OPEN R&D: phi-aligned binary256 alternative" "experimental" "section12.5; bias Open per skill" + , Format "gf6" "GF6 (rule-derived)" 6 1 2 3 1 (0.049) "u8_packed" "GoldenFloat" "Open" "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge" "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint" "experimental" "specs/numeric/gf6.t27" + , Format "gf10" "GF10 (rule-derived)" 10 1 3 6 3 (0.118) "u16" "GoldenFloat" "Open" "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12" "OPEN R&D: tight-precision activations" "experimental" "specs/numeric/gf10.t27" + , Format "gf14" "GF14 (rule-derived)" 14 1 5 8 15 (0.007) "u16" "GoldenFloat" "Open" "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48" "OPEN R&D: drop-in for fp16 with tighter phi alignment" "experimental" "specs/numeric/gf14.t27" + , Format "gf48" "GF48 (rule-derived)" 48 1 18 29 131071 (0.003) "u64_padded" "GoldenFloat" "Open" "this work; rule e=round(47/phi^2)=18" "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs" "experimental" "specs/numeric/gf48.t27" + , Format "gf96" "GF96 (rule-derived)" 96 1 36 59 34359738367 (0.008) "u128_padded" "GoldenFloat" "Open" "this work; rule e=round(95/phi^2)=36" "OPEN R&D: between GF64 and GF128 (phi-aligned extended)" "experimental" "specs/numeric/gf96.t27" + , Format "gf128" "GF128 (rule-derived)" 128 1 49 78 281474976710655 (0.01) "u128" "GoldenFloat" "Open" "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)" "OPEN R&D: phi-aligned binary128 alternative" "experimental" "specs/numeric/gf128.t27" + , Format "gf256" "GF256 (rule-derived)" 256 1 97 158 79228162514264337593543950335 (0.004) "u256_software" "GoldenFloat" "Open" "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1" "OPEN R&D: phi-aligned binary256 alternative" "experimental" "specs/numeric/gf256.t27" + , Format "gf512" "GF512 (rule-derived)" 512 1 195 316 -2 (0.0009) "u512_software" "GoldenFloat" "Open" "this work; rule e=round(511/phi^2)=195" "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)" "experimental" "specs/numeric/gf512.t27" + , Format "gf1024" "GF1024 (rule-derived)" 1024 1 391 632 -2 (0.0006) "u1024_software" "GoldenFloat" "Open" "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder" "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)" "experimental" "specs/numeric/gf1024.t27" , Format "gf8_bfp" "GF8-BFP (block FP atop GF8)" 8 1 3 4 3 (0.132) "u8_plus_shared_exp" "GoldenFloat" "Experimental" "this work; per-tile shared exponent" "OPEN R&D: LLM-quantization-friendly GF8" "experimental" "section12.5" , Format "gf_lns_hybrid" "GF + LNS hybrid (dual-space)" 16 1 6 9 31 (0.049) "u16_plus_lns_path" "GoldenFloat" "Experimental" "this work; mul in log-space, accumulate Lucas-closed" "OPEN R&D: dual-space arithmetic" "experimental" "section12.5" , Format "mxgf6" "MXGF6 (microscaling GF6)" 6 1 2 3 1 (0.05) "u8_packed_plus_e8m0" "GoldenFloat" "Experimental" "this work; OCP MX block + GF6" "OPEN R&D: phi-aligned MX-6 candidate" "experimental" "section12.5" diff --git a/gen/numeric/FormatsCatalog.java b/gen/numeric/FormatsCatalog.java index 2aeac815d..147f3807d 100644 --- a/gen/numeric/FormatsCatalog.java +++ b/gen/numeric/FormatsCatalog.java @@ -86,12 +86,18 @@ public Format(String id, String name, new Format("gf12", "GF12", 12L, 1L, 4L, 7L, 7L, 0.047, "u16", "GoldenFloat", "Verified", "this work; L0/F3", "mid-range / audio", "self", "BENCH-007 (specs/numeric/gf12.t27)"), new Format("gf16", "GF16", 16L, 1L, 6L, 9L, 31L, 0.049, "u16", "GoldenFloat", "Verified", "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", "training and inference (production)", "self", "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)"), new Format("gf20", "GF20", 20L, 1L, 7L, 12L, 63L, 0.035, "u32", "GoldenFloat", "Experimental", "this work; 17-squared empirical PHI_BIAS=289", "high-precision edge", "self", "specs/numeric/gf20.t27 (spec only)"), - new Format("gf24", "GF24", 24L, 1L, 9L, 14L, 255L, 0.025, "u32", "GoldenFloat", "Experimental", "this work; L15 PHI_BIAS=1364", "server inference", "self", "specs/numeric/gf24.t27 (spec only)"), + new Format("gf24", "GF24", 24L, 1L, 9L, 14L, 255L, 0.025, "u32", "GoldenFloat", "Experimental", "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", "server inference", "self", "specs/numeric/gf24.t27 (spec only)"), new Format("gf32", "GF32", 32L, 1L, 12L, 19L, 2047L, 0.014, "u32", "GoldenFloat", "Verified", "this work; F0 resolved", "fp32 drop-in", "self", "BENCH-012 (specs/numeric/gf32.t27)"), new Format("gf64", "GF64", 64L, 1L, 24L, 39L, 8388607L, 0.003, "u64", "GoldenFloat", "Verified", "this work; EXP_MAX - BIAS", "scientific / double", "self", "BENCH-007b (specs/numeric/gf64.t27)"), - new Format("gf6", "GF6 (predicted)", 6L, 1L, 2L, 3L, 1L, 0.05, "u8_packed", "GoldenFloat", "Experimental", "this work; e=round(5/phi^2)=2, fills FP6 gap", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "section12.5"), - new Format("gf128", "GF128 (predicted)", 128L, 1L, 48L, 79L, 0L, 0.008, "u128", "GoldenFloat", "Experimental", "this work; e=round(127/phi^2)=48 (Open: bias TBD)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "section12.5"), - new Format("gf256", "GF256 (predicted)", 256L, 1L, 97L, 158L, 0L, 0.005, "u256_software", "GoldenFloat", "Experimental", "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "section12.5; bias Open per skill"), + new Format("gf6", "GF6 (rule-derived)", 6L, 1L, 2L, 3L, 1L, 0.049, "u8_packed", "GoldenFloat", "Open", "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "specs/numeric/gf6.t27"), + new Format("gf10", "GF10 (rule-derived)", 10L, 1L, 3L, 6L, 3L, 0.118, "u16", "GoldenFloat", "Open", "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", "OPEN R&D: tight-precision activations", "experimental", "specs/numeric/gf10.t27"), + new Format("gf14", "GF14 (rule-derived)", 14L, 1L, 5L, 8L, 15L, 0.007, "u16", "GoldenFloat", "Open", "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", "OPEN R&D: drop-in for fp16 with tighter phi alignment", "experimental", "specs/numeric/gf14.t27"), + new Format("gf48", "GF48 (rule-derived)", 48L, 1L, 18L, 29L, 131071L, 0.003, "u64_padded", "GoldenFloat", "Open", "this work; rule e=round(47/phi^2)=18", "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", "experimental", "specs/numeric/gf48.t27"), + new Format("gf96", "GF96 (rule-derived)", 96L, 1L, 36L, 59L, 34359738367L, 0.008, "u128_padded", "GoldenFloat", "Open", "this work; rule e=round(95/phi^2)=36", "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", "experimental", "specs/numeric/gf96.t27"), + new Format("gf128", "GF128 (rule-derived)", 128L, 1L, 49L, 78L, 281474976710655L, 0.01, "u128", "GoldenFloat", "Open", "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "specs/numeric/gf128.t27"), + new Format("gf256", "GF256 (rule-derived)", 256L, 1L, 97L, 158L, 79228162514264337593543950335L, 0.004, "u256_software", "GoldenFloat", "Open", "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "specs/numeric/gf256.t27"), + new Format("gf512", "GF512 (rule-derived)", 512L, 1L, 195L, 316L, -2L, 0.0009, "u512_software", "GoldenFloat", "Open", "this work; rule e=round(511/phi^2)=195", "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", "experimental", "specs/numeric/gf512.t27"), + new Format("gf1024", "GF1024 (rule-derived)", 1024L, 1L, 391L, 632L, -2L, 0.0006, "u1024_software", "GoldenFloat", "Open", "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", "experimental", "specs/numeric/gf1024.t27"), new Format("gf8_bfp", "GF8-BFP (block FP atop GF8)", 8L, 1L, 3L, 4L, 3L, 0.132, "u8_plus_shared_exp", "GoldenFloat", "Experimental", "this work; per-tile shared exponent", "OPEN R&D: LLM-quantization-friendly GF8", "experimental", "section12.5"), new Format("gf_lns_hybrid", "GF + LNS hybrid (dual-space)", 16L, 1L, 6L, 9L, 31L, 0.049, "u16_plus_lns_path", "GoldenFloat", "Experimental", "this work; mul in log-space, accumulate Lucas-closed", "OPEN R&D: dual-space arithmetic", "experimental", "section12.5"), new Format("mxgf6", "MXGF6 (microscaling GF6)", 6L, 1L, 2L, 3L, 1L, 0.05, "u8_packed_plus_e8m0", "GoldenFloat", "Experimental", "this work; OCP MX block + GF6", "OPEN R&D: phi-aligned MX-6 candidate", "experimental", "section12.5"), diff --git a/gen/numeric/FormatsCatalog.jl b/gen/numeric/FormatsCatalog.jl index 50d2d84f0..035221085 100644 --- a/gen/numeric/FormatsCatalog.jl +++ b/gen/numeric/FormatsCatalog.jl @@ -65,12 +65,18 @@ const FORMATS = Format[ Format("gf12", "GF12", UInt32(12), UInt32(1), UInt32(4), UInt32(7), Int64(7), 0.047, "u16", "GoldenFloat", "Verified", "this work; L0/F3", "mid-range / audio", "self", "BENCH-007 (specs/numeric/gf12.t27)"), Format("gf16", "GF16", UInt32(16), UInt32(1), UInt32(6), UInt32(9), Int64(31), 0.049, "u16", "GoldenFloat", "Verified", "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", "training and inference (production)", "self", "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)"), Format("gf20", "GF20", UInt32(20), UInt32(1), UInt32(7), UInt32(12), Int64(63), 0.035, "u32", "GoldenFloat", "Experimental", "this work; 17-squared empirical PHI_BIAS=289", "high-precision edge", "self", "specs/numeric/gf20.t27 (spec only)"), - Format("gf24", "GF24", UInt32(24), UInt32(1), UInt32(9), UInt32(14), Int64(255), 0.025, "u32", "GoldenFloat", "Experimental", "this work; L15 PHI_BIAS=1364", "server inference", "self", "specs/numeric/gf24.t27 (spec only)"), + Format("gf24", "GF24", UInt32(24), UInt32(1), UInt32(9), UInt32(14), Int64(255), 0.025, "u32", "GoldenFloat", "Experimental", "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", "server inference", "self", "specs/numeric/gf24.t27 (spec only)"), Format("gf32", "GF32", UInt32(32), UInt32(1), UInt32(12), UInt32(19), Int64(2047), 0.014, "u32", "GoldenFloat", "Verified", "this work; F0 resolved", "fp32 drop-in", "self", "BENCH-012 (specs/numeric/gf32.t27)"), Format("gf64", "GF64", UInt32(64), UInt32(1), UInt32(24), UInt32(39), Int64(8388607), 0.003, "u64", "GoldenFloat", "Verified", "this work; EXP_MAX - BIAS", "scientific / double", "self", "BENCH-007b (specs/numeric/gf64.t27)"), - Format("gf6", "GF6 (predicted)", UInt32(6), UInt32(1), UInt32(2), UInt32(3), Int64(1), 0.05, "u8_packed", "GoldenFloat", "Experimental", "this work; e=round(5/phi^2)=2, fills FP6 gap", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "section12.5"), - Format("gf128", "GF128 (predicted)", UInt32(128), UInt32(1), UInt32(48), UInt32(79), Int64(0), 0.008, "u128", "GoldenFloat", "Experimental", "this work; e=round(127/phi^2)=48 (Open: bias TBD)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "section12.5"), - Format("gf256", "GF256 (predicted)", UInt32(256), UInt32(1), UInt32(97), UInt32(158), Int64(0), 0.005, "u256_software", "GoldenFloat", "Experimental", "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "section12.5; bias Open per skill"), + Format("gf6", "GF6 (rule-derived)", UInt32(6), UInt32(1), UInt32(2), UInt32(3), Int64(1), 0.049, "u8_packed", "GoldenFloat", "Open", "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "specs/numeric/gf6.t27"), + Format("gf10", "GF10 (rule-derived)", UInt32(10), UInt32(1), UInt32(3), UInt32(6), Int64(3), 0.118, "u16", "GoldenFloat", "Open", "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", "OPEN R&D: tight-precision activations", "experimental", "specs/numeric/gf10.t27"), + Format("gf14", "GF14 (rule-derived)", UInt32(14), UInt32(1), UInt32(5), UInt32(8), Int64(15), 0.007, "u16", "GoldenFloat", "Open", "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", "OPEN R&D: drop-in for fp16 with tighter phi alignment", "experimental", "specs/numeric/gf14.t27"), + Format("gf48", "GF48 (rule-derived)", UInt32(48), UInt32(1), UInt32(18), UInt32(29), Int64(131071), 0.003, "u64_padded", "GoldenFloat", "Open", "this work; rule e=round(47/phi^2)=18", "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", "experimental", "specs/numeric/gf48.t27"), + Format("gf96", "GF96 (rule-derived)", UInt32(96), UInt32(1), UInt32(36), UInt32(59), Int64(34359738367), 0.008, "u128_padded", "GoldenFloat", "Open", "this work; rule e=round(95/phi^2)=36", "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", "experimental", "specs/numeric/gf96.t27"), + Format("gf128", "GF128 (rule-derived)", UInt32(128), UInt32(1), UInt32(49), UInt32(78), Int64(281474976710655), 0.01, "u128", "GoldenFloat", "Open", "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "specs/numeric/gf128.t27"), + Format("gf256", "GF256 (rule-derived)", UInt32(256), UInt32(1), UInt32(97), UInt32(158), Int64(79228162514264337593543950335), 0.004, "u256_software", "GoldenFloat", "Open", "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "specs/numeric/gf256.t27"), + Format("gf512", "GF512 (rule-derived)", UInt32(512), UInt32(1), UInt32(195), UInt32(316), Int64(-2), 0.0009, "u512_software", "GoldenFloat", "Open", "this work; rule e=round(511/phi^2)=195", "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", "experimental", "specs/numeric/gf512.t27"), + Format("gf1024", "GF1024 (rule-derived)", UInt32(1024), UInt32(1), UInt32(391), UInt32(632), Int64(-2), 0.0006, "u1024_software", "GoldenFloat", "Open", "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", "experimental", "specs/numeric/gf1024.t27"), Format("gf8_bfp", "GF8-BFP (block FP atop GF8)", UInt32(8), UInt32(1), UInt32(3), UInt32(4), Int64(3), 0.132, "u8_plus_shared_exp", "GoldenFloat", "Experimental", "this work; per-tile shared exponent", "OPEN R&D: LLM-quantization-friendly GF8", "experimental", "section12.5"), Format("gf_lns_hybrid", "GF + LNS hybrid (dual-space)", UInt32(16), UInt32(1), UInt32(6), UInt32(9), Int64(31), 0.049, "u16_plus_lns_path", "GoldenFloat", "Experimental", "this work; mul in log-space, accumulate Lucas-closed", "OPEN R&D: dual-space arithmetic", "experimental", "section12.5"), Format("mxgf6", "MXGF6 (microscaling GF6)", UInt32(6), UInt32(1), UInt32(2), UInt32(3), Int64(1), 0.05, "u8_packed_plus_e8m0", "GoldenFloat", "Experimental", "this work; OCP MX block + GF6", "OPEN R&D: phi-aligned MX-6 candidate", "experimental", "section12.5"), diff --git a/gen/numeric/formats_catalog.go b/gen/numeric/formats_catalog.go index 02f2856d0..36884b504 100644 --- a/gen/numeric/formats_catalog.go +++ b/gen/numeric/formats_catalog.go @@ -65,12 +65,18 @@ var Formats = []Format{ { ID: "gf12", Name: "GF12", Bits: 12, SBits: 1, EBits: 4, MBits: 7, Bias: 7, PhiDistance: 0.047, Storage: "u16", Cluster: "GoldenFloat", Status: "Verified", Standard: "this work; L0/F3", UseCase: "mid-range / audio", GFRelation: "self", Source: "BENCH-007 (specs/numeric/gf12.t27)" }, { ID: "gf16", Name: "GF16", Bits: 16, SBits: 1, EBits: 6, MBits: 9, Bias: 31, PhiDistance: 0.049, Storage: "u16", Cluster: "GoldenFloat", Status: "Verified", Standard: "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", UseCase: "training and inference (production)", GFRelation: "self", Source: "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)" }, { ID: "gf20", Name: "GF20", Bits: 20, SBits: 1, EBits: 7, MBits: 12, Bias: 63, PhiDistance: 0.035, Storage: "u32", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; 17-squared empirical PHI_BIAS=289", UseCase: "high-precision edge", GFRelation: "self", Source: "specs/numeric/gf20.t27 (spec only)" }, - { ID: "gf24", Name: "GF24", Bits: 24, SBits: 1, EBits: 9, MBits: 14, Bias: 255, PhiDistance: 0.025, Storage: "u32", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; L15 PHI_BIAS=1364", UseCase: "server inference", GFRelation: "self", Source: "specs/numeric/gf24.t27 (spec only)" }, + { ID: "gf24", Name: "GF24", Bits: 24, SBits: 1, EBits: 9, MBits: 14, Bias: 255, PhiDistance: 0.025, Storage: "u32", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", UseCase: "server inference", GFRelation: "self", Source: "specs/numeric/gf24.t27 (spec only)" }, { ID: "gf32", Name: "GF32", Bits: 32, SBits: 1, EBits: 12, MBits: 19, Bias: 2047, PhiDistance: 0.014, Storage: "u32", Cluster: "GoldenFloat", Status: "Verified", Standard: "this work; F0 resolved", UseCase: "fp32 drop-in", GFRelation: "self", Source: "BENCH-012 (specs/numeric/gf32.t27)" }, { ID: "gf64", Name: "GF64", Bits: 64, SBits: 1, EBits: 24, MBits: 39, Bias: 8388607, PhiDistance: 0.003, Storage: "u64", Cluster: "GoldenFloat", Status: "Verified", Standard: "this work; EXP_MAX - BIAS", UseCase: "scientific / double", GFRelation: "self", Source: "BENCH-007b (specs/numeric/gf64.t27)" }, - { ID: "gf6", Name: "GF6 (predicted)", Bits: 6, SBits: 1, EBits: 2, MBits: 3, Bias: 1, PhiDistance: 0.05, Storage: "u8_packed", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; e=round(5/phi^2)=2, fills FP6 gap", UseCase: "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", GFRelation: "experimental", Source: "section12.5" }, - { ID: "gf128", Name: "GF128 (predicted)", Bits: 128, SBits: 1, EBits: 48, MBits: 79, Bias: 0, PhiDistance: 0.008, Storage: "u128", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; e=round(127/phi^2)=48 (Open: bias TBD)", UseCase: "OPEN R&D: phi-aligned binary128 alternative", GFRelation: "experimental", Source: "section12.5" }, - { ID: "gf256", Name: "GF256 (predicted)", Bits: 256, SBits: 1, EBits: 97, MBits: 158, Bias: 0, PhiDistance: 0.005, Storage: "u256_software", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", UseCase: "OPEN R&D: phi-aligned binary256 alternative", GFRelation: "experimental", Source: "section12.5; bias Open per skill" }, + { ID: "gf6", Name: "GF6 (rule-derived)", Bits: 6, SBits: 1, EBits: 2, MBits: 3, Bias: 1, PhiDistance: 0.049, Storage: "u8_packed", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", UseCase: "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", GFRelation: "experimental", Source: "specs/numeric/gf6.t27" }, + { ID: "gf10", Name: "GF10 (rule-derived)", Bits: 10, SBits: 1, EBits: 3, MBits: 6, Bias: 3, PhiDistance: 0.118, Storage: "u16", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", UseCase: "OPEN R&D: tight-precision activations", GFRelation: "experimental", Source: "specs/numeric/gf10.t27" }, + { ID: "gf14", Name: "GF14 (rule-derived)", Bits: 14, SBits: 1, EBits: 5, MBits: 8, Bias: 15, PhiDistance: 0.007, Storage: "u16", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", UseCase: "OPEN R&D: drop-in for fp16 with tighter phi alignment", GFRelation: "experimental", Source: "specs/numeric/gf14.t27" }, + { ID: "gf48", Name: "GF48 (rule-derived)", Bits: 48, SBits: 1, EBits: 18, MBits: 29, Bias: 131071, PhiDistance: 0.003, Storage: "u64_padded", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(47/phi^2)=18", UseCase: "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", GFRelation: "experimental", Source: "specs/numeric/gf48.t27" }, + { ID: "gf96", Name: "GF96 (rule-derived)", Bits: 96, SBits: 1, EBits: 36, MBits: 59, Bias: 34359738367, PhiDistance: 0.008, Storage: "u128_padded", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(95/phi^2)=36", UseCase: "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", GFRelation: "experimental", Source: "specs/numeric/gf96.t27" }, + { ID: "gf128", Name: "GF128 (rule-derived)", Bits: 128, SBits: 1, EBits: 49, MBits: 78, Bias: 281474976710655, PhiDistance: 0.01, Storage: "u128", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", UseCase: "OPEN R&D: phi-aligned binary128 alternative", GFRelation: "experimental", Source: "specs/numeric/gf128.t27" }, + { ID: "gf256", Name: "GF256 (rule-derived)", Bits: 256, SBits: 1, EBits: 97, MBits: 158, Bias: 79228162514264337593543950335, PhiDistance: 0.004, Storage: "u256_software", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", UseCase: "OPEN R&D: phi-aligned binary256 alternative", GFRelation: "experimental", Source: "specs/numeric/gf256.t27" }, + { ID: "gf512", Name: "GF512 (rule-derived)", Bits: 512, SBits: 1, EBits: 195, MBits: 316, Bias: -2, PhiDistance: 0.0009, Storage: "u512_software", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(511/phi^2)=195", UseCase: "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", GFRelation: "experimental", Source: "specs/numeric/gf512.t27" }, + { ID: "gf1024", Name: "GF1024 (rule-derived)", Bits: 1024, SBits: 1, EBits: 391, MBits: 632, Bias: -2, PhiDistance: 0.0006, Storage: "u1024_software", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", UseCase: "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", GFRelation: "experimental", Source: "specs/numeric/gf1024.t27" }, { ID: "gf8_bfp", Name: "GF8-BFP (block FP atop GF8)", Bits: 8, SBits: 1, EBits: 3, MBits: 4, Bias: 3, PhiDistance: 0.132, Storage: "u8_plus_shared_exp", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; per-tile shared exponent", UseCase: "OPEN R&D: LLM-quantization-friendly GF8", GFRelation: "experimental", Source: "section12.5" }, { ID: "gf_lns_hybrid", Name: "GF + LNS hybrid (dual-space)", Bits: 16, SBits: 1, EBits: 6, MBits: 9, Bias: 31, PhiDistance: 0.049, Storage: "u16_plus_lns_path", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; mul in log-space, accumulate Lucas-closed", UseCase: "OPEN R&D: dual-space arithmetic", GFRelation: "experimental", Source: "section12.5" }, { ID: "mxgf6", Name: "MXGF6 (microscaling GF6)", Bits: 6, SBits: 1, EBits: 2, MBits: 3, Bias: 1, PhiDistance: 0.05, Storage: "u8_packed_plus_e8m0", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; OCP MX block + GF6", UseCase: "OPEN R&D: phi-aligned MX-6 candidate", GFRelation: "experimental", Source: "section12.5" }, diff --git a/gen/numeric/formats_catalog.h b/gen/numeric/formats_catalog.h index 406d4394a..cbc24bca6 100644 --- a/gen/numeric/formats_catalog.h +++ b/gen/numeric/formats_catalog.h @@ -24,7 +24,7 @@ typedef struct { const char *source; } t27_format_t; -#define T27_FORMAT_COUNT 77 +#define T27_FORMAT_COUNT 83 static const t27_format_t T27_FORMATS[T27_FORMAT_COUNT] = { { "binary16", "binary16 (fp16, half)", 16u, 1u, 5u, 10u, 15, 0.118, "u16", "Ieee754Binary", "Verified", "IEEE 754-2008", "GPU activations, inference", "competitor", "IEEE 754-2008" }, @@ -68,12 +68,18 @@ static const t27_format_t T27_FORMATS[T27_FORMAT_COUNT] = { { "gf12", "GF12", 12u, 1u, 4u, 7u, 7, 0.047, "u16", "GoldenFloat", "Verified", "this work; L0/F3", "mid-range / audio", "self", "BENCH-007 (specs/numeric/gf12.t27)" }, { "gf16", "GF16", 16u, 1u, 6u, 9u, 31, 0.049, "u16", "GoldenFloat", "Verified", "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", "training and inference (production)", "self", "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)" }, { "gf20", "GF20", 20u, 1u, 7u, 12u, 63, 0.035, "u32", "GoldenFloat", "Experimental", "this work; 17-squared empirical PHI_BIAS=289", "high-precision edge", "self", "specs/numeric/gf20.t27 (spec only)" }, - { "gf24", "GF24", 24u, 1u, 9u, 14u, 255, 0.025, "u32", "GoldenFloat", "Experimental", "this work; L15 PHI_BIAS=1364", "server inference", "self", "specs/numeric/gf24.t27 (spec only)" }, + { "gf24", "GF24", 24u, 1u, 9u, 14u, 255, 0.025, "u32", "GoldenFloat", "Experimental", "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", "server inference", "self", "specs/numeric/gf24.t27 (spec only)" }, { "gf32", "GF32", 32u, 1u, 12u, 19u, 2047, 0.014, "u32", "GoldenFloat", "Verified", "this work; F0 resolved", "fp32 drop-in", "self", "BENCH-012 (specs/numeric/gf32.t27)" }, { "gf64", "GF64", 64u, 1u, 24u, 39u, 8388607, 0.003, "u64", "GoldenFloat", "Verified", "this work; EXP_MAX - BIAS", "scientific / double", "self", "BENCH-007b (specs/numeric/gf64.t27)" }, - { "gf6", "GF6 (predicted)", 6u, 1u, 2u, 3u, 1, 0.05, "u8_packed", "GoldenFloat", "Experimental", "this work; e=round(5/phi^2)=2, fills FP6 gap", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "section12.5" }, - { "gf128", "GF128 (predicted)", 128u, 1u, 48u, 79u, 0, 0.008, "u128", "GoldenFloat", "Experimental", "this work; e=round(127/phi^2)=48 (Open: bias TBD)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "section12.5" }, - { "gf256", "GF256 (predicted)", 256u, 1u, 97u, 158u, 0, 0.005, "u256_software", "GoldenFloat", "Experimental", "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "section12.5; bias Open per skill" }, + { "gf6", "GF6 (rule-derived)", 6u, 1u, 2u, 3u, 1, 0.049, "u8_packed", "GoldenFloat", "Open", "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "specs/numeric/gf6.t27" }, + { "gf10", "GF10 (rule-derived)", 10u, 1u, 3u, 6u, 3, 0.118, "u16", "GoldenFloat", "Open", "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", "OPEN R&D: tight-precision activations", "experimental", "specs/numeric/gf10.t27" }, + { "gf14", "GF14 (rule-derived)", 14u, 1u, 5u, 8u, 15, 0.007, "u16", "GoldenFloat", "Open", "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", "OPEN R&D: drop-in for fp16 with tighter phi alignment", "experimental", "specs/numeric/gf14.t27" }, + { "gf48", "GF48 (rule-derived)", 48u, 1u, 18u, 29u, 131071, 0.003, "u64_padded", "GoldenFloat", "Open", "this work; rule e=round(47/phi^2)=18", "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", "experimental", "specs/numeric/gf48.t27" }, + { "gf96", "GF96 (rule-derived)", 96u, 1u, 36u, 59u, 34359738367, 0.008, "u128_padded", "GoldenFloat", "Open", "this work; rule e=round(95/phi^2)=36", "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", "experimental", "specs/numeric/gf96.t27" }, + { "gf128", "GF128 (rule-derived)", 128u, 1u, 49u, 78u, 281474976710655, 0.01, "u128", "GoldenFloat", "Open", "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "specs/numeric/gf128.t27" }, + { "gf256", "GF256 (rule-derived)", 256u, 1u, 97u, 158u, 79228162514264337593543950335, 0.004, "u256_software", "GoldenFloat", "Open", "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "specs/numeric/gf256.t27" }, + { "gf512", "GF512 (rule-derived)", 512u, 1u, 195u, 316u, -2, 0.0009, "u512_software", "GoldenFloat", "Open", "this work; rule e=round(511/phi^2)=195", "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", "experimental", "specs/numeric/gf512.t27" }, + { "gf1024", "GF1024 (rule-derived)", 1024u, 1u, 391u, 632u, -2, 0.0006, "u1024_software", "GoldenFloat", "Open", "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", "experimental", "specs/numeric/gf1024.t27" }, { "gf8_bfp", "GF8-BFP (block FP atop GF8)", 8u, 1u, 3u, 4u, 3, 0.132, "u8_plus_shared_exp", "GoldenFloat", "Experimental", "this work; per-tile shared exponent", "OPEN R&D: LLM-quantization-friendly GF8", "experimental", "section12.5" }, { "gf_lns_hybrid", "GF + LNS hybrid (dual-space)", 16u, 1u, 6u, 9u, 31, 0.049, "u16_plus_lns_path", "GoldenFloat", "Experimental", "this work; mul in log-space, accumulate Lucas-closed", "OPEN R&D: dual-space arithmetic", "experimental", "section12.5" }, { "mxgf6", "MXGF6 (microscaling GF6)", 6u, 1u, 2u, 3u, 1, 0.05, "u8_packed_plus_e8m0", "GoldenFloat", "Experimental", "this work; OCP MX block + GF6", "OPEN R&D: phi-aligned MX-6 candidate", "experimental", "section12.5" }, diff --git a/gen/numeric/formats_catalog.hpp b/gen/numeric/formats_catalog.hpp index 9f97ccd62..ad10d9442 100644 --- a/gen/numeric/formats_catalog.hpp +++ b/gen/numeric/formats_catalog.hpp @@ -25,7 +25,7 @@ struct Format { std::string_view source; }; -inline constexpr std::array FORMATS = {{ +inline constexpr std::array FORMATS = {{ Format{ "binary16", "binary16 (fp16, half)", 16u, 1u, 5u, 10u, 15, 0.118, "u16", "Ieee754Binary", "Verified", "IEEE 754-2008", "GPU activations, inference", "competitor", "IEEE 754-2008" }, Format{ "binary32", "binary32 (fp32, single)", 32u, 1u, 8u, 23u, 127, 0.27, "u32", "Ieee754Binary", "Verified", "IEEE 754-1985", "industry default", "competitor", "IEEE 754-1985" }, Format{ "binary64", "binary64 (fp64, double)", 64u, 1u, 11u, 52u, 1023, 0.406, "u64", "Ieee754Binary", "Verified", "IEEE 754-1985", "scientific computing", "competitor", "IEEE 754-1985" }, @@ -67,12 +67,18 @@ inline constexpr std::array FORMATS = {{ Format{ "gf12", "GF12", 12u, 1u, 4u, 7u, 7, 0.047, "u16", "GoldenFloat", "Verified", "this work; L0/F3", "mid-range / audio", "self", "BENCH-007 (specs/numeric/gf12.t27)" }, Format{ "gf16", "GF16", 16u, 1u, 6u, 9u, 31, 0.049, "u16", "GoldenFloat", "Verified", "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", "training and inference (production)", "self", "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)" }, Format{ "gf20", "GF20", 20u, 1u, 7u, 12u, 63, 0.035, "u32", "GoldenFloat", "Experimental", "this work; 17-squared empirical PHI_BIAS=289", "high-precision edge", "self", "specs/numeric/gf20.t27 (spec only)" }, - Format{ "gf24", "GF24", 24u, 1u, 9u, 14u, 255, 0.025, "u32", "GoldenFloat", "Experimental", "this work; L15 PHI_BIAS=1364", "server inference", "self", "specs/numeric/gf24.t27 (spec only)" }, + Format{ "gf24", "GF24", 24u, 1u, 9u, 14u, 255, 0.025, "u32", "GoldenFloat", "Experimental", "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", "server inference", "self", "specs/numeric/gf24.t27 (spec only)" }, Format{ "gf32", "GF32", 32u, 1u, 12u, 19u, 2047, 0.014, "u32", "GoldenFloat", "Verified", "this work; F0 resolved", "fp32 drop-in", "self", "BENCH-012 (specs/numeric/gf32.t27)" }, Format{ "gf64", "GF64", 64u, 1u, 24u, 39u, 8388607, 0.003, "u64", "GoldenFloat", "Verified", "this work; EXP_MAX - BIAS", "scientific / double", "self", "BENCH-007b (specs/numeric/gf64.t27)" }, - Format{ "gf6", "GF6 (predicted)", 6u, 1u, 2u, 3u, 1, 0.05, "u8_packed", "GoldenFloat", "Experimental", "this work; e=round(5/phi^2)=2, fills FP6 gap", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "section12.5" }, - Format{ "gf128", "GF128 (predicted)", 128u, 1u, 48u, 79u, 0, 0.008, "u128", "GoldenFloat", "Experimental", "this work; e=round(127/phi^2)=48 (Open: bias TBD)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "section12.5" }, - Format{ "gf256", "GF256 (predicted)", 256u, 1u, 97u, 158u, 0, 0.005, "u256_software", "GoldenFloat", "Experimental", "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "section12.5; bias Open per skill" }, + Format{ "gf6", "GF6 (rule-derived)", 6u, 1u, 2u, 3u, 1, 0.049, "u8_packed", "GoldenFloat", "Open", "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "specs/numeric/gf6.t27" }, + Format{ "gf10", "GF10 (rule-derived)", 10u, 1u, 3u, 6u, 3, 0.118, "u16", "GoldenFloat", "Open", "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", "OPEN R&D: tight-precision activations", "experimental", "specs/numeric/gf10.t27" }, + Format{ "gf14", "GF14 (rule-derived)", 14u, 1u, 5u, 8u, 15, 0.007, "u16", "GoldenFloat", "Open", "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", "OPEN R&D: drop-in for fp16 with tighter phi alignment", "experimental", "specs/numeric/gf14.t27" }, + Format{ "gf48", "GF48 (rule-derived)", 48u, 1u, 18u, 29u, 131071, 0.003, "u64_padded", "GoldenFloat", "Open", "this work; rule e=round(47/phi^2)=18", "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", "experimental", "specs/numeric/gf48.t27" }, + Format{ "gf96", "GF96 (rule-derived)", 96u, 1u, 36u, 59u, 34359738367, 0.008, "u128_padded", "GoldenFloat", "Open", "this work; rule e=round(95/phi^2)=36", "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", "experimental", "specs/numeric/gf96.t27" }, + Format{ "gf128", "GF128 (rule-derived)", 128u, 1u, 49u, 78u, 281474976710655, 0.01, "u128", "GoldenFloat", "Open", "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "specs/numeric/gf128.t27" }, + Format{ "gf256", "GF256 (rule-derived)", 256u, 1u, 97u, 158u, 79228162514264337593543950335, 0.004, "u256_software", "GoldenFloat", "Open", "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "specs/numeric/gf256.t27" }, + Format{ "gf512", "GF512 (rule-derived)", 512u, 1u, 195u, 316u, -2, 0.0009, "u512_software", "GoldenFloat", "Open", "this work; rule e=round(511/phi^2)=195", "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", "experimental", "specs/numeric/gf512.t27" }, + Format{ "gf1024", "GF1024 (rule-derived)", 1024u, 1u, 391u, 632u, -2, 0.0006, "u1024_software", "GoldenFloat", "Open", "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", "experimental", "specs/numeric/gf1024.t27" }, Format{ "gf8_bfp", "GF8-BFP (block FP atop GF8)", 8u, 1u, 3u, 4u, 3, 0.132, "u8_plus_shared_exp", "GoldenFloat", "Experimental", "this work; per-tile shared exponent", "OPEN R&D: LLM-quantization-friendly GF8", "experimental", "section12.5" }, Format{ "gf_lns_hybrid", "GF + LNS hybrid (dual-space)", 16u, 1u, 6u, 9u, 31, 0.049, "u16_plus_lns_path", "GoldenFloat", "Experimental", "this work; mul in log-space, accumulate Lucas-closed", "OPEN R&D: dual-space arithmetic", "experimental", "section12.5" }, Format{ "mxgf6", "MXGF6 (microscaling GF6)", 6u, 1u, 2u, 3u, 1, 0.05, "u8_packed_plus_e8m0", "GoldenFloat", "Experimental", "this work; OCP MX block + GF6", "OPEN R&D: phi-aligned MX-6 candidate", "experimental", "section12.5" }, diff --git a/gen/numeric/formats_catalog.json b/gen/numeric/formats_catalog.json index 08f22450b..dbd074e91 100644 --- a/gen/numeric/formats_catalog.json +++ b/gen/numeric/formats_catalog.json @@ -1,5 +1,5 @@ { - "count": 77, + "count": 83, "formats": [ { "id": "binary16", @@ -9,6 +9,7 @@ "e_bits": 5, "m_bits": 10, "bias": 15, + "bias_formula": "15", "phi_distance": 0.118, "storage": "u16", "cluster": "Ieee754Binary", @@ -26,6 +27,7 @@ "e_bits": 8, "m_bits": 23, "bias": 127, + "bias_formula": "127", "phi_distance": 0.27, "storage": "u32", "cluster": "Ieee754Binary", @@ -43,6 +45,7 @@ "e_bits": 11, "m_bits": 52, "bias": 1023, + "bias_formula": "1023", "phi_distance": 0.406, "storage": "u64", "cluster": "Ieee754Binary", @@ -60,6 +63,7 @@ "e_bits": 15, "m_bits": 112, "bias": 16383, + "bias_formula": "16383", "phi_distance": 0.484, "storage": "u128", "cluster": "Ieee754Binary", @@ -77,6 +81,7 @@ "e_bits": 19, "m_bits": 236, "bias": 262143, + "bias_formula": "262143", "phi_distance": 0.538, "storage": "u256_software", "cluster": "Ieee754Binary", @@ -94,6 +99,7 @@ "e_bits": 11, "m_bits": 20, "bias": 101, + "bias_formula": "101", "phi_distance": -1.0, "storage": "u32", "cluster": "Ieee754Decimal", @@ -111,6 +117,7 @@ "e_bits": 13, "m_bits": 50, "bias": 398, + "bias_formula": "398", "phi_distance": -1.0, "storage": "u64", "cluster": "Ieee754Decimal", @@ -128,6 +135,7 @@ "e_bits": 17, "m_bits": 110, "bias": 6176, + "bias_formula": "6176", "phi_distance": -1.0, "storage": "u128", "cluster": "Ieee754Decimal", @@ -145,6 +153,7 @@ "e_bits": 15, "m_bits": 64, "bias": 16383, + "bias_formula": "16383", "phi_distance": -1.0, "storage": "u80_padded", "cluster": "ExtendedFloat", @@ -162,6 +171,7 @@ "e_bits": 22, "m_bits": 104, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "two_u64", "cluster": "ExtendedFloat", @@ -179,6 +189,7 @@ "e_bits": 44, "m_bits": 208, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "four_u64", "cluster": "ExtendedFloat", @@ -196,6 +207,7 @@ "e_bits": 8, "m_bits": 7, "bias": 127, + "bias_formula": "127", "phi_distance": 0.525, "storage": "u16", "cluster": "MlLowPrecision", @@ -213,6 +225,7 @@ "e_bits": 8, "m_bits": 10, "bias": 127, + "bias_formula": "127", "phi_distance": 0.27, "storage": "u32_padded", "cluster": "MlLowPrecision", @@ -230,6 +243,7 @@ "e_bits": 4, "m_bits": 3, "bias": 7, + "bias_formula": "7", "phi_distance": 0.715, "storage": "u8", "cluster": "MlLowPrecision", @@ -247,6 +261,7 @@ "e_bits": 5, "m_bits": 2, "bias": 15, + "bias_formula": "15", "phi_distance": 1.882, "storage": "u8", "cluster": "MlLowPrecision", @@ -264,6 +279,7 @@ "e_bits": 3, "m_bits": 2, "bias": 3, + "bias_formula": "3", "phi_distance": 0.882, "storage": "u8_packed", "cluster": "MlLowPrecision", @@ -281,6 +297,7 @@ "e_bits": 2, "m_bits": 3, "bias": 1, + "bias_formula": "1", "phi_distance": 0.049, "storage": "u8_packed", "cluster": "MlLowPrecision", @@ -298,6 +315,7 @@ "e_bits": 2, "m_bits": 1, "bias": 1, + "bias_formula": "1", "phi_distance": 1.382, "storage": "u8_packed", "cluster": "MlLowPrecision", @@ -315,6 +333,7 @@ "e_bits": 4, "m_bits": 3, "bias": 7, + "bias_formula": "7", "phi_distance": 0.715, "storage": "u8_plus_shared_e8m0", "cluster": "Microscaling", @@ -332,6 +351,7 @@ "e_bits": 3, "m_bits": 2, "bias": 3, + "bias_formula": "3", "phi_distance": 0.882, "storage": "u8_packed_plus_e8m0", "cluster": "Microscaling", @@ -349,6 +369,7 @@ "e_bits": 2, "m_bits": 1, "bias": 1, + "bias_formula": "1", "phi_distance": 1.382, "storage": "u8_packed_plus_e8m0", "cluster": "Microscaling", @@ -366,6 +387,7 @@ "e_bits": 0, "m_bits": 4, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u8_packed", "cluster": "QuantTuned", @@ -383,6 +405,7 @@ "e_bits": 8, "m_bits": 7, "bias": 127, + "bias_formula": "127", "phi_distance": -1.0, "storage": "u16_plus_tensor_shift", "cluster": "QuantTuned", @@ -400,6 +423,7 @@ "e_bits": 2, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u8", "cluster": "PositUnumIII", @@ -417,6 +441,7 @@ "e_bits": 2, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u16", "cluster": "PositUnumIII", @@ -434,6 +459,7 @@ "e_bits": 2, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u32", "cluster": "PositUnumIII", @@ -451,6 +477,7 @@ "e_bits": 2, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u64", "cluster": "PositUnumIII", @@ -468,6 +495,7 @@ "e_bits": 0, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u8", "cluster": "PositUnumIII", @@ -485,6 +513,7 @@ "e_bits": 0, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u16", "cluster": "PositUnumIII", @@ -502,6 +531,7 @@ "e_bits": 0, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u32", "cluster": "PositUnumIII", @@ -519,6 +549,7 @@ "e_bits": 0, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u64", "cluster": "PositUnumIII", @@ -536,6 +567,7 @@ "e_bits": 7, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u8", "cluster": "Lns", @@ -553,6 +585,7 @@ "e_bits": 15, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u16", "cluster": "Lns", @@ -570,6 +603,7 @@ "e_bits": 31, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u32", "cluster": "Lns", @@ -587,6 +621,7 @@ "e_bits": 63, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u64", "cluster": "Lns", @@ -604,6 +639,7 @@ "e_bits": 0, "m_bits": 2, "bias": 0, + "bias_formula": "0", "phi_distance": 0.0, "storage": "u2", "cluster": "GoldenFloat", @@ -621,6 +657,7 @@ "e_bits": 1, "m_bits": 2, "bias": 0, + "bias_formula": "0", "phi_distance": 0.118, "storage": "u8", "cluster": "GoldenFloat", @@ -638,6 +675,7 @@ "e_bits": 3, "m_bits": 4, "bias": 3, + "bias_formula": "3", "phi_distance": 0.132, "storage": "u8", "cluster": "GoldenFloat", @@ -655,6 +693,7 @@ "e_bits": 4, "m_bits": 7, "bias": 7, + "bias_formula": "7", "phi_distance": 0.047, "storage": "u16", "cluster": "GoldenFloat", @@ -672,6 +711,7 @@ "e_bits": 6, "m_bits": 9, "bias": 31, + "bias_formula": "31", "phi_distance": 0.049, "storage": "u16", "cluster": "GoldenFloat", @@ -689,6 +729,7 @@ "e_bits": 7, "m_bits": 12, "bias": 63, + "bias_formula": "63", "phi_distance": 0.035, "storage": "u32", "cluster": "GoldenFloat", @@ -706,11 +747,12 @@ "e_bits": 9, "m_bits": 14, "bias": 255, + "bias_formula": "255", "phi_distance": 0.025, "storage": "u32", "cluster": "GoldenFloat", "status": "Experimental", - "standard": "this work; L15 PHI_BIAS=1364", + "standard": "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", "use_case": "server inference", "gf_relation": "self", "source": "specs/numeric/gf24.t27 (spec only)" @@ -723,6 +765,7 @@ "e_bits": 12, "m_bits": 19, "bias": 2047, + "bias_formula": "2047", "phi_distance": 0.014, "storage": "u32", "cluster": "GoldenFloat", @@ -740,6 +783,7 @@ "e_bits": 24, "m_bits": 39, "bias": 8388607, + "bias_formula": "8388607", "phi_distance": 0.003, "storage": "u64", "cluster": "GoldenFloat", @@ -751,54 +795,165 @@ }, { "id": "gf6", - "name": "GF6 (predicted)", + "name": "GF6 (rule-derived)", "bits": 6, "s_bits": 1, "e_bits": 2, "m_bits": 3, "bias": 1, - "phi_distance": 0.05, + "bias_formula": "1", + "phi_distance": 0.049, "storage": "u8_packed", "cluster": "GoldenFloat", - "status": "Experimental", - "standard": "this work; e=round(5/phi^2)=2, fills FP6 gap", + "status": "Open", + "standard": "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", "use_case": "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "gf_relation": "experimental", - "source": "section12.5" + "source": "specs/numeric/gf6.t27" + }, + { + "id": "gf10", + "name": "GF10 (rule-derived)", + "bits": 10, + "s_bits": 1, + "e_bits": 3, + "m_bits": 6, + "bias": 3, + "bias_formula": "3", + "phi_distance": 0.118, + "storage": "u16", + "cluster": "GoldenFloat", + "status": "Open", + "standard": "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", + "use_case": "OPEN R&D: tight-precision activations", + "gf_relation": "experimental", + "source": "specs/numeric/gf10.t27" + }, + { + "id": "gf14", + "name": "GF14 (rule-derived)", + "bits": 14, + "s_bits": 1, + "e_bits": 5, + "m_bits": 8, + "bias": 15, + "bias_formula": "15", + "phi_distance": 0.007, + "storage": "u16", + "cluster": "GoldenFloat", + "status": "Open", + "standard": "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", + "use_case": "OPEN R&D: drop-in for fp16 with tighter phi alignment", + "gf_relation": "experimental", + "source": "specs/numeric/gf14.t27" + }, + { + "id": "gf48", + "name": "GF48 (rule-derived)", + "bits": 48, + "s_bits": 1, + "e_bits": 18, + "m_bits": 29, + "bias": 131071, + "bias_formula": "131071", + "phi_distance": 0.003, + "storage": "u64_padded", + "cluster": "GoldenFloat", + "status": "Open", + "standard": "this work; rule e=round(47/phi^2)=18", + "use_case": "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", + "gf_relation": "experimental", + "source": "specs/numeric/gf48.t27" + }, + { + "id": "gf96", + "name": "GF96 (rule-derived)", + "bits": 96, + "s_bits": 1, + "e_bits": 36, + "m_bits": 59, + "bias": 34359738367, + "bias_formula": "34359738367", + "phi_distance": 0.008, + "storage": "u128_padded", + "cluster": "GoldenFloat", + "status": "Open", + "standard": "this work; rule e=round(95/phi^2)=36", + "use_case": "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", + "gf_relation": "experimental", + "source": "specs/numeric/gf96.t27" }, { "id": "gf128", - "name": "GF128 (predicted)", + "name": "GF128 (rule-derived)", "bits": 128, "s_bits": 1, - "e_bits": 48, - "m_bits": 79, - "bias": 0, - "phi_distance": 0.008, + "e_bits": 49, + "m_bits": 78, + "bias": 281474976710655, + "bias_formula": "281474976710655", + "phi_distance": 0.01, "storage": "u128", "cluster": "GoldenFloat", - "status": "Experimental", - "standard": "this work; e=round(127/phi^2)=48 (Open: bias TBD)", + "status": "Open", + "standard": "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", "use_case": "OPEN R&D: phi-aligned binary128 alternative", "gf_relation": "experimental", - "source": "section12.5" + "source": "specs/numeric/gf128.t27" }, { "id": "gf256", - "name": "GF256 (predicted)", + "name": "GF256 (rule-derived)", "bits": 256, "s_bits": 1, "e_bits": 97, "m_bits": 158, - "bias": 0, - "phi_distance": 0.005, + "bias": 79228162514264337593543950335, + "bias_formula": "79228162514264337593543950335", + "phi_distance": 0.004, "storage": "u256_software", "cluster": "GoldenFloat", - "status": "Experimental", - "standard": "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", + "status": "Open", + "standard": "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", "use_case": "OPEN R&D: phi-aligned binary256 alternative", "gf_relation": "experimental", - "source": "section12.5; bias Open per skill" + "source": "specs/numeric/gf256.t27" + }, + { + "id": "gf512", + "name": "GF512 (rule-derived)", + "bits": 512, + "s_bits": 1, + "e_bits": 195, + "m_bits": 316, + "bias": -2, + "bias_formula": "2^194-1", + "phi_distance": 0.0009, + "storage": "u512_software", + "cluster": "GoldenFloat", + "status": "Open", + "standard": "this work; rule e=round(511/phi^2)=195", + "use_case": "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", + "gf_relation": "experimental", + "source": "specs/numeric/gf512.t27" + }, + { + "id": "gf1024", + "name": "GF1024 (rule-derived)", + "bits": 1024, + "s_bits": 1, + "e_bits": 391, + "m_bits": 632, + "bias": -2, + "bias_formula": "2^390-1", + "phi_distance": 0.0006, + "storage": "u1024_software", + "cluster": "GoldenFloat", + "status": "Open", + "standard": "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", + "use_case": "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", + "gf_relation": "experimental", + "source": "specs/numeric/gf1024.t27" }, { "id": "gf8_bfp", @@ -808,6 +963,7 @@ "e_bits": 3, "m_bits": 4, "bias": 3, + "bias_formula": "3", "phi_distance": 0.132, "storage": "u8_plus_shared_exp", "cluster": "GoldenFloat", @@ -825,6 +981,7 @@ "e_bits": 6, "m_bits": 9, "bias": 31, + "bias_formula": "31", "phi_distance": 0.049, "storage": "u16_plus_lns_path", "cluster": "GoldenFloat", @@ -842,6 +999,7 @@ "e_bits": 2, "m_bits": 3, "bias": 1, + "bias_formula": "1", "phi_distance": 0.05, "storage": "u8_packed_plus_e8m0", "cluster": "GoldenFloat", @@ -859,6 +1017,7 @@ "e_bits": 1, "m_bits": 2, "bias": 0, + "bias_formula": "0", "phi_distance": 0.118, "storage": "u8_packed_plus_e8m0", "cluster": "GoldenFloat", @@ -876,6 +1035,7 @@ "e_bits": 0, "m_bits": 3, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u8_packed", "cluster": "IntegerFixed", @@ -893,6 +1053,7 @@ "e_bits": 0, "m_bits": 7, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u8", "cluster": "IntegerFixed", @@ -910,6 +1071,7 @@ "e_bits": 0, "m_bits": 15, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u16", "cluster": "IntegerFixed", @@ -927,6 +1089,7 @@ "e_bits": 0, "m_bits": 31, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u32", "cluster": "IntegerFixed", @@ -944,6 +1107,7 @@ "e_bits": 0, "m_bits": 63, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u64", "cluster": "IntegerFixed", @@ -961,6 +1125,7 @@ "e_bits": 0, "m_bits": 127, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u128", "cluster": "IntegerFixed", @@ -978,6 +1143,7 @@ "e_bits": 0, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "varies", "cluster": "IntegerFixed", @@ -995,6 +1161,7 @@ "e_bits": 0, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u4_per_digit", "cluster": "IntegerFixed", @@ -1012,6 +1179,7 @@ "e_bits": 7, "m_bits": 24, "bias": 64, + "bias_formula": "64", "phi_distance": -1.0, "storage": "u32", "cluster": "HistoricalVendor", @@ -1029,6 +1197,7 @@ "e_bits": 7, "m_bits": 56, "bias": 64, + "bias_formula": "64", "phi_distance": -1.0, "storage": "u64", "cluster": "HistoricalVendor", @@ -1046,6 +1215,7 @@ "e_bits": 7, "m_bits": 120, "bias": 64, + "bias_formula": "64", "phi_distance": -1.0, "storage": "u128", "cluster": "HistoricalVendor", @@ -1063,6 +1233,7 @@ "e_bits": 8, "m_bits": 23, "bias": 129, + "bias_formula": "129", "phi_distance": -1.0, "storage": "u32", "cluster": "HistoricalVendor", @@ -1080,6 +1251,7 @@ "e_bits": 8, "m_bits": 55, "bias": 129, + "bias_formula": "129", "phi_distance": -1.0, "storage": "u64", "cluster": "HistoricalVendor", @@ -1097,6 +1269,7 @@ "e_bits": 8, "m_bits": 23, "bias": 128, + "bias_formula": "128", "phi_distance": -1.0, "storage": "u32", "cluster": "HistoricalVendor", @@ -1114,6 +1287,7 @@ "e_bits": 8, "m_bits": 55, "bias": 128, + "bias_formula": "128", "phi_distance": -1.0, "storage": "u64", "cluster": "HistoricalVendor", @@ -1131,6 +1305,7 @@ "e_bits": 11, "m_bits": 52, "bias": 1024, + "bias_formula": "1024", "phi_distance": -1.0, "storage": "u64", "cluster": "HistoricalVendor", @@ -1148,6 +1323,7 @@ "e_bits": 15, "m_bits": 112, "bias": 16384, + "bias_formula": "16384", "phi_distance": -1.0, "storage": "u128", "cluster": "HistoricalVendor", @@ -1165,6 +1341,7 @@ "e_bits": 15, "m_bits": 48, "bias": 16384, + "bias_formula": "16384", "phi_distance": -1.0, "storage": "u64", "cluster": "HistoricalVendor", @@ -1182,6 +1359,7 @@ "e_bits": 0, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "varies", "cluster": "Theoretical", @@ -1199,6 +1377,7 @@ "e_bits": 0, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "varies", "cluster": "Theoretical", @@ -1216,6 +1395,7 @@ "e_bits": 0, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "lookup_table", "cluster": "Theoretical", @@ -1233,6 +1413,7 @@ "e_bits": 0, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "varies", "cluster": "Theoretical", @@ -1250,6 +1431,7 @@ "e_bits": 0, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "varies", "cluster": "CompressionTrick", @@ -1267,6 +1449,7 @@ "e_bits": 0, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "varies", "cluster": "CompressionTrick", @@ -1284,6 +1467,7 @@ "e_bits": 0, "m_bits": 7, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "u8_plus_fp32_scale", "cluster": "CompressionTrick", @@ -1301,6 +1485,7 @@ "e_bits": 0, "m_bits": 0, "bias": 0, + "bias_formula": "0", "phi_distance": -1.0, "storage": "varies", "cluster": "CompressionTrick", diff --git a/gen/numeric/formats_catalog.kt b/gen/numeric/formats_catalog.kt index 3d5ec2604..fdbc4619c 100644 --- a/gen/numeric/formats_catalog.kt +++ b/gen/numeric/formats_catalog.kt @@ -62,12 +62,18 @@ val FORMATS: List = listOf( Format("gf12", "GF12", 12, 1, 4, 7, 7L, 0.047, "u16", "GoldenFloat", "Verified", "this work; L0/F3", "mid-range / audio", "self", "BENCH-007 (specs/numeric/gf12.t27)"), Format("gf16", "GF16", 16, 1, 6, 9, 31L, 0.049, "u16", "GoldenFloat", "Verified", "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", "training and inference (production)", "self", "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)"), Format("gf20", "GF20", 20, 1, 7, 12, 63L, 0.035, "u32", "GoldenFloat", "Experimental", "this work; 17-squared empirical PHI_BIAS=289", "high-precision edge", "self", "specs/numeric/gf20.t27 (spec only)"), - Format("gf24", "GF24", 24, 1, 9, 14, 255L, 0.025, "u32", "GoldenFloat", "Experimental", "this work; L15 PHI_BIAS=1364", "server inference", "self", "specs/numeric/gf24.t27 (spec only)"), + Format("gf24", "GF24", 24, 1, 9, 14, 255L, 0.025, "u32", "GoldenFloat", "Experimental", "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", "server inference", "self", "specs/numeric/gf24.t27 (spec only)"), Format("gf32", "GF32", 32, 1, 12, 19, 2047L, 0.014, "u32", "GoldenFloat", "Verified", "this work; F0 resolved", "fp32 drop-in", "self", "BENCH-012 (specs/numeric/gf32.t27)"), Format("gf64", "GF64", 64, 1, 24, 39, 8388607L, 0.003, "u64", "GoldenFloat", "Verified", "this work; EXP_MAX - BIAS", "scientific / double", "self", "BENCH-007b (specs/numeric/gf64.t27)"), - Format("gf6", "GF6 (predicted)", 6, 1, 2, 3, 1L, 0.05, "u8_packed", "GoldenFloat", "Experimental", "this work; e=round(5/phi^2)=2, fills FP6 gap", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "section12.5"), - Format("gf128", "GF128 (predicted)", 128, 1, 48, 79, 0L, 0.008, "u128", "GoldenFloat", "Experimental", "this work; e=round(127/phi^2)=48 (Open: bias TBD)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "section12.5"), - Format("gf256", "GF256 (predicted)", 256, 1, 97, 158, 0L, 0.005, "u256_software", "GoldenFloat", "Experimental", "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "section12.5; bias Open per skill"), + Format("gf6", "GF6 (rule-derived)", 6, 1, 2, 3, 1L, 0.049, "u8_packed", "GoldenFloat", "Open", "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "specs/numeric/gf6.t27"), + Format("gf10", "GF10 (rule-derived)", 10, 1, 3, 6, 3L, 0.118, "u16", "GoldenFloat", "Open", "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", "OPEN R&D: tight-precision activations", "experimental", "specs/numeric/gf10.t27"), + Format("gf14", "GF14 (rule-derived)", 14, 1, 5, 8, 15L, 0.007, "u16", "GoldenFloat", "Open", "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", "OPEN R&D: drop-in for fp16 with tighter phi alignment", "experimental", "specs/numeric/gf14.t27"), + Format("gf48", "GF48 (rule-derived)", 48, 1, 18, 29, 131071L, 0.003, "u64_padded", "GoldenFloat", "Open", "this work; rule e=round(47/phi^2)=18", "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", "experimental", "specs/numeric/gf48.t27"), + Format("gf96", "GF96 (rule-derived)", 96, 1, 36, 59, 34359738367L, 0.008, "u128_padded", "GoldenFloat", "Open", "this work; rule e=round(95/phi^2)=36", "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", "experimental", "specs/numeric/gf96.t27"), + Format("gf128", "GF128 (rule-derived)", 128, 1, 49, 78, 281474976710655L, 0.01, "u128", "GoldenFloat", "Open", "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "specs/numeric/gf128.t27"), + Format("gf256", "GF256 (rule-derived)", 256, 1, 97, 158, 79228162514264337593543950335L, 0.004, "u256_software", "GoldenFloat", "Open", "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "specs/numeric/gf256.t27"), + Format("gf512", "GF512 (rule-derived)", 512, 1, 195, 316, -2L, 0.0009, "u512_software", "GoldenFloat", "Open", "this work; rule e=round(511/phi^2)=195", "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", "experimental", "specs/numeric/gf512.t27"), + Format("gf1024", "GF1024 (rule-derived)", 1024, 1, 391, 632, -2L, 0.0006, "u1024_software", "GoldenFloat", "Open", "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", "experimental", "specs/numeric/gf1024.t27"), Format("gf8_bfp", "GF8-BFP (block FP atop GF8)", 8, 1, 3, 4, 3L, 0.132, "u8_plus_shared_exp", "GoldenFloat", "Experimental", "this work; per-tile shared exponent", "OPEN R&D: LLM-quantization-friendly GF8", "experimental", "section12.5"), Format("gf_lns_hybrid", "GF + LNS hybrid (dual-space)", 16, 1, 6, 9, 31L, 0.049, "u16_plus_lns_path", "GoldenFloat", "Experimental", "this work; mul in log-space, accumulate Lucas-closed", "OPEN R&D: dual-space arithmetic", "experimental", "section12.5"), Format("mxgf6", "MXGF6 (microscaling GF6)", 6, 1, 2, 3, 1L, 0.05, "u8_packed_plus_e8m0", "GoldenFloat", "Experimental", "this work; OCP MX block + GF6", "OPEN R&D: phi-aligned MX-6 candidate", "experimental", "section12.5"), diff --git a/gen/numeric/formats_catalog.md b/gen/numeric/formats_catalog.md index 5ae411efb..eda266d90 100644 --- a/gen/numeric/formats_catalog.md +++ b/gen/numeric/formats_catalog.md @@ -7,7 +7,7 @@ Status labels: Verified | EmpiricalFit | Open | Risk | Retracted | Experimental | Historical. phi_distance: lower = more phi-aligned; -1 sentinel = undefined (non-radix-2 or non-FP). -Total formats: 77. +Total formats: 83. | ID | Bits | S:E:M | Bias | phi_dist | Storage | Cluster | Status | Standard | Use case | GF rel. | |----|-----:|------|-----:|--------:|---------|---------|--------|----------|----------|---------| @@ -52,12 +52,18 @@ Total formats: 77. | gf12 | 12 | 1:4:7 | 7 | 0.047 | u16 | GoldenFloat | Verified | this work; L0/F3 | mid-range / audio | self | | gf16 | 16 | 1:6:9 | 31 | 0.049 | u16 | GoldenFloat | Verified | this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7 | training and inference (production) | self | | gf20 | 20 | 1:7:12 | 63 | 0.035 | u32 | GoldenFloat | Experimental | this work; 17-squared empirical PHI_BIAS=289 | high-precision edge | self | -| gf24 | 24 | 1:9:14 | 255 | 0.025 | u32 | GoldenFloat | Experimental | this work; L15 PHI_BIAS=1364 | server inference | self | +| gf24 | 24 | 1:9:14 | 255 | 0.025 | u32 | GoldenFloat | Experimental | this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN | server inference | self | | gf32 | 32 | 1:12:19 | 2047 | 0.014 | u32 | GoldenFloat | Verified | this work; F0 resolved | fp32 drop-in | self | | gf64 | 64 | 1:24:39 | 8388607 | 0.003 | u64 | GoldenFloat | Verified | this work; EXP_MAX - BIAS | scientific / double | self | -| gf6 | 6 | 1:2:3 | 1 | 0.050 | u8_packed | GoldenFloat | Experimental | this work; e=round(5/phi^2)=2, fills FP6 gap | OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint | experimental | -| gf128 | 128 | 1:48:79 | 0 | 0.008 | u128 | GoldenFloat | Experimental | this work; e=round(127/phi^2)=48 (Open: bias TBD) | OPEN R&D: phi-aligned binary128 alternative | experimental | -| gf256 | 256 | 1:97:158 | 0 | 0.005 | u256_software | GoldenFloat | Experimental | this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed) | OPEN R&D: phi-aligned binary256 alternative | experimental | +| gf6 | 6 | 1:2:3 | 1 | 0.049 | u8_packed | GoldenFloat | Open | this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge | OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint | experimental | +| gf10 | 10 | 1:3:6 | 3 | 0.118 | u16 | GoldenFloat | Open | this work; rule e=round(9/phi^2)=3; bridge GF8-GF12 | OPEN R&D: tight-precision activations | experimental | +| gf14 | 14 | 1:5:8 | 15 | 0.007 | u16 | GoldenFloat | Open | this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48 | OPEN R&D: drop-in for fp16 with tighter phi alignment | experimental | +| gf48 | 48 | 1:18:29 | 131071 | 0.003 | u64_padded | GoldenFloat | Open | this work; rule e=round(47/phi^2)=18 | OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs | experimental | +| gf96 | 96 | 1:36:59 | 34359738367 | 0.008 | u128_padded | GoldenFloat | Open | this work; rule e=round(95/phi^2)=36 | OPEN R&D: between GF64 and GF128 (phi-aligned extended) | experimental | +| gf128 | 128 | 1:49:78 | 281474976710655 | 0.010 | u128 | GoldenFloat | Open | this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48) | OPEN R&D: phi-aligned binary128 alternative | experimental | +| gf256 | 256 | 1:97:158 | 79228162514264337593543950335 | 0.004 | u256_software | GoldenFloat | Open | this work; rule e=round(255/phi^2)=97; normative bias=2^96-1 | OPEN R&D: phi-aligned binary256 alternative | experimental | +| gf512 | 512 | 1:195:316 | -2 | 0.001 | u512_software | GoldenFloat | Open | this work; rule e=round(511/phi^2)=195 | OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL) | experimental | +| gf1024 | 1024 | 1:391:632 | -2 | 0.001 | u1024_software | GoldenFloat | Open | this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder | OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL) | experimental | | gf8_bfp | 8 | 1:3:4 | 3 | 0.132 | u8_plus_shared_exp | GoldenFloat | Experimental | this work; per-tile shared exponent | OPEN R&D: LLM-quantization-friendly GF8 | experimental | | gf_lns_hybrid | 16 | 1:6:9 | 31 | 0.049 | u16_plus_lns_path | GoldenFloat | Experimental | this work; mul in log-space, accumulate Lucas-closed | OPEN R&D: dual-space arithmetic | experimental | | mxgf6 | 6 | 1:2:3 | 1 | 0.050 | u8_packed_plus_e8m0 | GoldenFloat | Experimental | this work; OCP MX block + GF6 | OPEN R&D: phi-aligned MX-6 candidate | experimental | diff --git a/gen/numeric/formats_catalog.ml b/gen/numeric/formats_catalog.ml index b0bfa0e14..9d103099c 100644 --- a/gen/numeric/formats_catalog.ml +++ b/gen/numeric/formats_catalog.ml @@ -61,12 +61,18 @@ let formats : format list = [ { id = "gf12"; name = "GF12"; bits = 12; s_bits = 1; e_bits = 4; m_bits = 7; bias = 7; phi_distance = 0.047; storage = "u16"; cluster = "GoldenFloat"; status = "Verified"; standard = "this work; L0/F3"; use_case = "mid-range / audio"; gf_relation = "self"; source = "BENCH-007 (specs/numeric/gf12.t27)" }; { id = "gf16"; name = "GF16"; bits = 16; s_bits = 1; e_bits = 6; m_bits = 9; bias = 31; phi_distance = 0.049; storage = "u16"; cluster = "GoldenFloat"; status = "Verified"; standard = "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7"; use_case = "training and inference (production)"; gf_relation = "self"; source = "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)" }; { id = "gf20"; name = "GF20"; bits = 20; s_bits = 1; e_bits = 7; m_bits = 12; bias = 63; phi_distance = 0.035; storage = "u32"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; 17-squared empirical PHI_BIAS=289"; use_case = "high-precision edge"; gf_relation = "self"; source = "specs/numeric/gf20.t27 (spec only)" }; - { id = "gf24"; name = "GF24"; bits = 24; s_bits = 1; e_bits = 9; m_bits = 14; bias = 255; phi_distance = 0.025; storage = "u32"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; L15 PHI_BIAS=1364"; use_case = "server inference"; gf_relation = "self"; source = "specs/numeric/gf24.t27 (spec only)" }; + { id = "gf24"; name = "GF24"; bits = 24; s_bits = 1; e_bits = 9; m_bits = 14; bias = 255; phi_distance = 0.025; storage = "u32"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN"; use_case = "server inference"; gf_relation = "self"; source = "specs/numeric/gf24.t27 (spec only)" }; { id = "gf32"; name = "GF32"; bits = 32; s_bits = 1; e_bits = 12; m_bits = 19; bias = 2047; phi_distance = 0.014; storage = "u32"; cluster = "GoldenFloat"; status = "Verified"; standard = "this work; F0 resolved"; use_case = "fp32 drop-in"; gf_relation = "self"; source = "BENCH-012 (specs/numeric/gf32.t27)" }; { id = "gf64"; name = "GF64"; bits = 64; s_bits = 1; e_bits = 24; m_bits = 39; bias = 8388607; phi_distance = 0.003; storage = "u64"; cluster = "GoldenFloat"; status = "Verified"; standard = "this work; EXP_MAX - BIAS"; use_case = "scientific / double"; gf_relation = "self"; source = "BENCH-007b (specs/numeric/gf64.t27)" }; - { id = "gf6"; name = "GF6 (predicted)"; bits = 6; s_bits = 1; e_bits = 2; m_bits = 3; bias = 1; phi_distance = 0.05; storage = "u8_packed"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; e=round(5/phi^2)=2, fills FP6 gap"; use_case = "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint"; gf_relation = "experimental"; source = "section12.5" }; - { id = "gf128"; name = "GF128 (predicted)"; bits = 128; s_bits = 1; e_bits = 48; m_bits = 79; bias = 0; phi_distance = 0.008; storage = "u128"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; e=round(127/phi^2)=48 (Open: bias TBD)"; use_case = "OPEN R&D: phi-aligned binary128 alternative"; gf_relation = "experimental"; source = "section12.5" }; - { id = "gf256"; name = "GF256 (predicted)"; bits = 256; s_bits = 1; e_bits = 97; m_bits = 158; bias = 0; phi_distance = 0.005; storage = "u256_software"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)"; use_case = "OPEN R&D: phi-aligned binary256 alternative"; gf_relation = "experimental"; source = "section12.5; bias Open per skill" }; + { id = "gf6"; name = "GF6 (rule-derived)"; bits = 6; s_bits = 1; e_bits = 2; m_bits = 3; bias = 1; phi_distance = 0.049; storage = "u8_packed"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge"; use_case = "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint"; gf_relation = "experimental"; source = "specs/numeric/gf6.t27" }; + { id = "gf10"; name = "GF10 (rule-derived)"; bits = 10; s_bits = 1; e_bits = 3; m_bits = 6; bias = 3; phi_distance = 0.118; storage = "u16"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12"; use_case = "OPEN R&D: tight-precision activations"; gf_relation = "experimental"; source = "specs/numeric/gf10.t27" }; + { id = "gf14"; name = "GF14 (rule-derived)"; bits = 14; s_bits = 1; e_bits = 5; m_bits = 8; bias = 15; phi_distance = 0.007; storage = "u16"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48"; use_case = "OPEN R&D: drop-in for fp16 with tighter phi alignment"; gf_relation = "experimental"; source = "specs/numeric/gf14.t27" }; + { id = "gf48"; name = "GF48 (rule-derived)"; bits = 48; s_bits = 1; e_bits = 18; m_bits = 29; bias = 131071; phi_distance = 0.003; storage = "u64_padded"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(47/phi^2)=18"; use_case = "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs"; gf_relation = "experimental"; source = "specs/numeric/gf48.t27" }; + { id = "gf96"; name = "GF96 (rule-derived)"; bits = 96; s_bits = 1; e_bits = 36; m_bits = 59; bias = 34359738367; phi_distance = 0.008; storage = "u128_padded"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(95/phi^2)=36"; use_case = "OPEN R&D: between GF64 and GF128 (phi-aligned extended)"; gf_relation = "experimental"; source = "specs/numeric/gf96.t27" }; + { id = "gf128"; name = "GF128 (rule-derived)"; bits = 128; s_bits = 1; e_bits = 49; m_bits = 78; bias = 281474976710655; phi_distance = 0.01; storage = "u128"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)"; use_case = "OPEN R&D: phi-aligned binary128 alternative"; gf_relation = "experimental"; source = "specs/numeric/gf128.t27" }; + { id = "gf256"; name = "GF256 (rule-derived)"; bits = 256; s_bits = 1; e_bits = 97; m_bits = 158; bias = 79228162514264337593543950335; phi_distance = 0.004; storage = "u256_software"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1"; use_case = "OPEN R&D: phi-aligned binary256 alternative"; gf_relation = "experimental"; source = "specs/numeric/gf256.t27" }; + { id = "gf512"; name = "GF512 (rule-derived)"; bits = 512; s_bits = 1; e_bits = 195; m_bits = 316; bias = -2; phi_distance = 0.0009; storage = "u512_software"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(511/phi^2)=195"; use_case = "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)"; gf_relation = "experimental"; source = "specs/numeric/gf512.t27" }; + { id = "gf1024"; name = "GF1024 (rule-derived)"; bits = 1024; s_bits = 1; e_bits = 391; m_bits = 632; bias = -2; phi_distance = 0.0006; storage = "u1024_software"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder"; use_case = "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)"; gf_relation = "experimental"; source = "specs/numeric/gf1024.t27" }; { id = "gf8_bfp"; name = "GF8-BFP (block FP atop GF8)"; bits = 8; s_bits = 1; e_bits = 3; m_bits = 4; bias = 3; phi_distance = 0.132; storage = "u8_plus_shared_exp"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; per-tile shared exponent"; use_case = "OPEN R&D: LLM-quantization-friendly GF8"; gf_relation = "experimental"; source = "section12.5" }; { id = "gf_lns_hybrid"; name = "GF + LNS hybrid (dual-space)"; bits = 16; s_bits = 1; e_bits = 6; m_bits = 9; bias = 31; phi_distance = 0.049; storage = "u16_plus_lns_path"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; mul in log-space, accumulate Lucas-closed"; use_case = "OPEN R&D: dual-space arithmetic"; gf_relation = "experimental"; source = "section12.5" }; { id = "mxgf6"; name = "MXGF6 (microscaling GF6)"; bits = 6; s_bits = 1; e_bits = 2; m_bits = 3; bias = 1; phi_distance = 0.05; storage = "u8_packed_plus_e8m0"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; OCP MX block + GF6"; use_case = "OPEN R&D: phi-aligned MX-6 candidate"; gf_relation = "experimental"; source = "section12.5" }; diff --git a/gen/numeric/formats_catalog.py b/gen/numeric/formats_catalog.py index f5ab58f7e..f80ac0c3a 100644 --- a/gen/numeric/formats_catalog.py +++ b/gen/numeric/formats_catalog.py @@ -67,12 +67,18 @@ class Format: Format(id='gf12', name='GF12', bits=12, s_bits=1, e_bits=4, m_bits=7, bias=7, phi_distance=0.047, storage='u16', cluster='GoldenFloat', status='Verified', standard='this work; L0/F3', use_case='mid-range / audio', gf_relation='self', source='BENCH-007 (specs/numeric/gf12.t27)'), Format(id='gf16', name='GF16', bits=16, s_bits=1, e_bits=6, m_bits=9, bias=31, phi_distance=0.049, storage='u16', cluster='GoldenFloat', status='Verified', standard='this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7', use_case='training and inference (production)', gf_relation='self', source='specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)'), Format(id='gf20', name='GF20', bits=20, s_bits=1, e_bits=7, m_bits=12, bias=63, phi_distance=0.035, storage='u32', cluster='GoldenFloat', status='Experimental', standard='this work; 17-squared empirical PHI_BIAS=289', use_case='high-precision edge', gf_relation='self', source='specs/numeric/gf20.t27 (spec only)'), - Format(id='gf24', name='GF24', bits=24, s_bits=1, e_bits=9, m_bits=14, bias=255, phi_distance=0.025, storage='u32', cluster='GoldenFloat', status='Experimental', standard='this work; L15 PHI_BIAS=1364', use_case='server inference', gf_relation='self', source='specs/numeric/gf24.t27 (spec only)'), + Format(id='gf24', name='GF24', bits=24, s_bits=1, e_bits=9, m_bits=14, bias=255, phi_distance=0.025, storage='u32', cluster='GoldenFloat', status='Experimental', standard='this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN', use_case='server inference', gf_relation='self', source='specs/numeric/gf24.t27 (spec only)'), Format(id='gf32', name='GF32', bits=32, s_bits=1, e_bits=12, m_bits=19, bias=2047, phi_distance=0.014, storage='u32', cluster='GoldenFloat', status='Verified', standard='this work; F0 resolved', use_case='fp32 drop-in', gf_relation='self', source='BENCH-012 (specs/numeric/gf32.t27)'), Format(id='gf64', name='GF64', bits=64, s_bits=1, e_bits=24, m_bits=39, bias=8388607, phi_distance=0.003, storage='u64', cluster='GoldenFloat', status='Verified', standard='this work; EXP_MAX - BIAS', use_case='scientific / double', gf_relation='self', source='BENCH-007b (specs/numeric/gf64.t27)'), - Format(id='gf6', name='GF6 (predicted)', bits=6, s_bits=1, e_bits=2, m_bits=3, bias=1, phi_distance=0.05, storage='u8_packed', cluster='GoldenFloat', status='Experimental', standard='this work; e=round(5/phi^2)=2, fills FP6 gap', use_case='OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint', gf_relation='experimental', source='section12.5'), - Format(id='gf128', name='GF128 (predicted)', bits=128, s_bits=1, e_bits=48, m_bits=79, bias=0, phi_distance=0.008, storage='u128', cluster='GoldenFloat', status='Experimental', standard='this work; e=round(127/phi^2)=48 (Open: bias TBD)', use_case='OPEN R&D: phi-aligned binary128 alternative', gf_relation='experimental', source='section12.5'), - Format(id='gf256', name='GF256 (predicted)', bits=256, s_bits=1, e_bits=97, m_bits=158, bias=0, phi_distance=0.005, storage='u256_software', cluster='GoldenFloat', status='Experimental', standard='this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)', use_case='OPEN R&D: phi-aligned binary256 alternative', gf_relation='experimental', source='section12.5; bias Open per skill'), + Format(id='gf6', name='GF6 (rule-derived)', bits=6, s_bits=1, e_bits=2, m_bits=3, bias=1, phi_distance=0.049, storage='u8_packed', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge', use_case='OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint', gf_relation='experimental', source='specs/numeric/gf6.t27'), + Format(id='gf10', name='GF10 (rule-derived)', bits=10, s_bits=1, e_bits=3, m_bits=6, bias=3, phi_distance=0.118, storage='u16', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(9/phi^2)=3; bridge GF8-GF12', use_case='OPEN R&D: tight-precision activations', gf_relation='experimental', source='specs/numeric/gf10.t27'), + Format(id='gf14', name='GF14 (rule-derived)', bits=14, s_bits=1, e_bits=5, m_bits=8, bias=15, phi_distance=0.007, storage='u16', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48', use_case='OPEN R&D: drop-in for fp16 with tighter phi alignment', gf_relation='experimental', source='specs/numeric/gf14.t27'), + Format(id='gf48', name='GF48 (rule-derived)', bits=48, s_bits=1, e_bits=18, m_bits=29, bias=131071, phi_distance=0.003, storage='u64_padded', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(47/phi^2)=18', use_case='OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs', gf_relation='experimental', source='specs/numeric/gf48.t27'), + Format(id='gf96', name='GF96 (rule-derived)', bits=96, s_bits=1, e_bits=36, m_bits=59, bias=34359738367, phi_distance=0.008, storage='u128_padded', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(95/phi^2)=36', use_case='OPEN R&D: between GF64 and GF128 (phi-aligned extended)', gf_relation='experimental', source='specs/numeric/gf96.t27'), + Format(id='gf128', name='GF128 (rule-derived)', bits=128, s_bits=1, e_bits=49, m_bits=78, bias=281474976710655, phi_distance=0.01, storage='u128', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)', use_case='OPEN R&D: phi-aligned binary128 alternative', gf_relation='experimental', source='specs/numeric/gf128.t27'), + Format(id='gf256', name='GF256 (rule-derived)', bits=256, s_bits=1, e_bits=97, m_bits=158, bias=79228162514264337593543950335, phi_distance=0.004, storage='u256_software', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(255/phi^2)=97; normative bias=2^96-1', use_case='OPEN R&D: phi-aligned binary256 alternative', gf_relation='experimental', source='specs/numeric/gf256.t27'), + Format(id='gf512', name='GF512 (rule-derived)', bits=512, s_bits=1, e_bits=195, m_bits=316, bias=-2, phi_distance=0.0009, storage='u512_software', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(511/phi^2)=195', use_case='OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)', gf_relation='experimental', source='specs/numeric/gf512.t27'), + Format(id='gf1024', name='GF1024 (rule-derived)', bits=1024, s_bits=1, e_bits=391, m_bits=632, bias=-2, phi_distance=0.0006, storage='u1024_software', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder', use_case='OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)', gf_relation='experimental', source='specs/numeric/gf1024.t27'), Format(id='gf8_bfp', name='GF8-BFP (block FP atop GF8)', bits=8, s_bits=1, e_bits=3, m_bits=4, bias=3, phi_distance=0.132, storage='u8_plus_shared_exp', cluster='GoldenFloat', status='Experimental', standard='this work; per-tile shared exponent', use_case='OPEN R&D: LLM-quantization-friendly GF8', gf_relation='experimental', source='section12.5'), Format(id='gf_lns_hybrid', name='GF + LNS hybrid (dual-space)', bits=16, s_bits=1, e_bits=6, m_bits=9, bias=31, phi_distance=0.049, storage='u16_plus_lns_path', cluster='GoldenFloat', status='Experimental', standard='this work; mul in log-space, accumulate Lucas-closed', use_case='OPEN R&D: dual-space arithmetic', gf_relation='experimental', source='section12.5'), Format(id='mxgf6', name='MXGF6 (microscaling GF6)', bits=6, s_bits=1, e_bits=2, m_bits=3, bias=1, phi_distance=0.05, storage='u8_packed_plus_e8m0', cluster='GoldenFloat', status='Experimental', standard='this work; OCP MX block + GF6', use_case='OPEN R&D: phi-aligned MX-6 candidate', gf_relation='experimental', source='section12.5'), diff --git a/gen/numeric/formats_catalog.rs b/gen/numeric/formats_catalog.rs index 7a97dcacf..1926d0f44 100644 --- a/gen/numeric/formats_catalog.rs +++ b/gen/numeric/formats_catalog.rs @@ -20,7 +20,7 @@ pub struct Format { pub source: &'static str, } -pub const FORMATS: [Format; 77] = [ +pub const FORMATS: [Format; 83] = [ Format { id: 'binary16', name: 'binary16 (fp16, half)', bits: 16, s_bits: 1, e_bits: 5, m_bits: 10, bias: 15, phi_distance: 0.118f64, storage: 'u16', cluster: 'Ieee754Binary', status: 'Verified', standard: 'IEEE 754-2008', use_case: 'GPU activations, inference', gf_relation: 'competitor', source: 'IEEE 754-2008' }, Format { id: 'binary32', name: 'binary32 (fp32, single)', bits: 32, s_bits: 1, e_bits: 8, m_bits: 23, bias: 127, phi_distance: 0.27f64, storage: 'u32', cluster: 'Ieee754Binary', status: 'Verified', standard: 'IEEE 754-1985', use_case: 'industry default', gf_relation: 'competitor', source: 'IEEE 754-1985' }, Format { id: 'binary64', name: 'binary64 (fp64, double)', bits: 64, s_bits: 1, e_bits: 11, m_bits: 52, bias: 1023, phi_distance: 0.406f64, storage: 'u64', cluster: 'Ieee754Binary', status: 'Verified', standard: 'IEEE 754-1985', use_case: 'scientific computing', gf_relation: 'competitor', source: 'IEEE 754-1985' }, @@ -62,12 +62,18 @@ pub const FORMATS: [Format; 77] = [ Format { id: 'gf12', name: 'GF12', bits: 12, s_bits: 1, e_bits: 4, m_bits: 7, bias: 7, phi_distance: 0.047f64, storage: 'u16', cluster: 'GoldenFloat', status: 'Verified', standard: 'this work; L0/F3', use_case: 'mid-range / audio', gf_relation: 'self', source: 'BENCH-007 (specs/numeric/gf12.t27)' }, Format { id: 'gf16', name: 'GF16', bits: 16, s_bits: 1, e_bits: 6, m_bits: 9, bias: 31, phi_distance: 0.049f64, storage: 'u16', cluster: 'GoldenFloat', status: 'Verified', standard: 'this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7', use_case: 'training and inference (production)', gf_relation: 'self', source: 'specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)' }, Format { id: 'gf20', name: 'GF20', bits: 20, s_bits: 1, e_bits: 7, m_bits: 12, bias: 63, phi_distance: 0.035f64, storage: 'u32', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; 17-squared empirical PHI_BIAS=289', use_case: 'high-precision edge', gf_relation: 'self', source: 'specs/numeric/gf20.t27 (spec only)' }, - Format { id: 'gf24', name: 'GF24', bits: 24, s_bits: 1, e_bits: 9, m_bits: 14, bias: 255, phi_distance: 0.025f64, storage: 'u32', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; L15 PHI_BIAS=1364', use_case: 'server inference', gf_relation: 'self', source: 'specs/numeric/gf24.t27 (spec only)' }, + Format { id: 'gf24', name: 'GF24', bits: 24, s_bits: 1, e_bits: 9, m_bits: 14, bias: 255, phi_distance: 0.025f64, storage: 'u32', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN', use_case: 'server inference', gf_relation: 'self', source: 'specs/numeric/gf24.t27 (spec only)' }, Format { id: 'gf32', name: 'GF32', bits: 32, s_bits: 1, e_bits: 12, m_bits: 19, bias: 2047, phi_distance: 0.014f64, storage: 'u32', cluster: 'GoldenFloat', status: 'Verified', standard: 'this work; F0 resolved', use_case: 'fp32 drop-in', gf_relation: 'self', source: 'BENCH-012 (specs/numeric/gf32.t27)' }, Format { id: 'gf64', name: 'GF64', bits: 64, s_bits: 1, e_bits: 24, m_bits: 39, bias: 8388607, phi_distance: 0.003f64, storage: 'u64', cluster: 'GoldenFloat', status: 'Verified', standard: 'this work; EXP_MAX - BIAS', use_case: 'scientific / double', gf_relation: 'self', source: 'BENCH-007b (specs/numeric/gf64.t27)' }, - Format { id: 'gf6', name: 'GF6 (predicted)', bits: 6, s_bits: 1, e_bits: 2, m_bits: 3, bias: 1, phi_distance: 0.05f64, storage: 'u8_packed', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; e=round(5/phi^2)=2, fills FP6 gap', use_case: 'OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint', gf_relation: 'experimental', source: 'section12.5' }, - Format { id: 'gf128', name: 'GF128 (predicted)', bits: 128, s_bits: 1, e_bits: 48, m_bits: 79, bias: 0, phi_distance: 0.008f64, storage: 'u128', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; e=round(127/phi^2)=48 (Open: bias TBD)', use_case: 'OPEN R&D: phi-aligned binary128 alternative', gf_relation: 'experimental', source: 'section12.5' }, - Format { id: 'gf256', name: 'GF256 (predicted)', bits: 256, s_bits: 1, e_bits: 97, m_bits: 158, bias: 0, phi_distance: 0.005f64, storage: 'u256_software', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)', use_case: 'OPEN R&D: phi-aligned binary256 alternative', gf_relation: 'experimental', source: 'section12.5; bias Open per skill' }, + Format { id: 'gf6', name: 'GF6 (rule-derived)', bits: 6, s_bits: 1, e_bits: 2, m_bits: 3, bias: 1, phi_distance: 0.049f64, storage: 'u8_packed', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge', use_case: 'OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint', gf_relation: 'experimental', source: 'specs/numeric/gf6.t27' }, + Format { id: 'gf10', name: 'GF10 (rule-derived)', bits: 10, s_bits: 1, e_bits: 3, m_bits: 6, bias: 3, phi_distance: 0.118f64, storage: 'u16', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(9/phi^2)=3; bridge GF8-GF12', use_case: 'OPEN R&D: tight-precision activations', gf_relation: 'experimental', source: 'specs/numeric/gf10.t27' }, + Format { id: 'gf14', name: 'GF14 (rule-derived)', bits: 14, s_bits: 1, e_bits: 5, m_bits: 8, bias: 15, phi_distance: 0.007f64, storage: 'u16', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48', use_case: 'OPEN R&D: drop-in for fp16 with tighter phi alignment', gf_relation: 'experimental', source: 'specs/numeric/gf14.t27' }, + Format { id: 'gf48', name: 'GF48 (rule-derived)', bits: 48, s_bits: 1, e_bits: 18, m_bits: 29, bias: 131071, phi_distance: 0.003f64, storage: 'u64_padded', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(47/phi^2)=18', use_case: 'OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs', gf_relation: 'experimental', source: 'specs/numeric/gf48.t27' }, + Format { id: 'gf96', name: 'GF96 (rule-derived)', bits: 96, s_bits: 1, e_bits: 36, m_bits: 59, bias: 34359738367, phi_distance: 0.008f64, storage: 'u128_padded', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(95/phi^2)=36', use_case: 'OPEN R&D: between GF64 and GF128 (phi-aligned extended)', gf_relation: 'experimental', source: 'specs/numeric/gf96.t27' }, + Format { id: 'gf128', name: 'GF128 (rule-derived)', bits: 128, s_bits: 1, e_bits: 49, m_bits: 78, bias: 281474976710655, phi_distance: 0.01f64, storage: 'u128', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)', use_case: 'OPEN R&D: phi-aligned binary128 alternative', gf_relation: 'experimental', source: 'specs/numeric/gf128.t27' }, + Format { id: 'gf256', name: 'GF256 (rule-derived)', bits: 256, s_bits: 1, e_bits: 97, m_bits: 158, bias: 79228162514264337593543950335, phi_distance: 0.004f64, storage: 'u256_software', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(255/phi^2)=97; normative bias=2^96-1', use_case: 'OPEN R&D: phi-aligned binary256 alternative', gf_relation: 'experimental', source: 'specs/numeric/gf256.t27' }, + Format { id: 'gf512', name: 'GF512 (rule-derived)', bits: 512, s_bits: 1, e_bits: 195, m_bits: 316, bias: -2, phi_distance: 0.0009f64, storage: 'u512_software', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(511/phi^2)=195', use_case: 'OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)', gf_relation: 'experimental', source: 'specs/numeric/gf512.t27' }, + Format { id: 'gf1024', name: 'GF1024 (rule-derived)', bits: 1024, s_bits: 1, e_bits: 391, m_bits: 632, bias: -2, phi_distance: 0.0006f64, storage: 'u1024_software', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder', use_case: 'OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)', gf_relation: 'experimental', source: 'specs/numeric/gf1024.t27' }, Format { id: 'gf8_bfp', name: 'GF8-BFP (block FP atop GF8)', bits: 8, s_bits: 1, e_bits: 3, m_bits: 4, bias: 3, phi_distance: 0.132f64, storage: 'u8_plus_shared_exp', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; per-tile shared exponent', use_case: 'OPEN R&D: LLM-quantization-friendly GF8', gf_relation: 'experimental', source: 'section12.5' }, Format { id: 'gf_lns_hybrid', name: 'GF + LNS hybrid (dual-space)', bits: 16, s_bits: 1, e_bits: 6, m_bits: 9, bias: 31, phi_distance: 0.049f64, storage: 'u16_plus_lns_path', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; mul in log-space, accumulate Lucas-closed', use_case: 'OPEN R&D: dual-space arithmetic', gf_relation: 'experimental', source: 'section12.5' }, Format { id: 'mxgf6', name: 'MXGF6 (microscaling GF6)', bits: 6, s_bits: 1, e_bits: 2, m_bits: 3, bias: 1, phi_distance: 0.05f64, storage: 'u8_packed_plus_e8m0', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; OCP MX block + GF6', use_case: 'OPEN R&D: phi-aligned MX-6 candidate', gf_relation: 'experimental', source: 'section12.5' }, diff --git a/gen/numeric/formats_catalog.swift b/gen/numeric/formats_catalog.swift index f1079fe60..7f6d0e451 100644 --- a/gen/numeric/formats_catalog.swift +++ b/gen/numeric/formats_catalog.swift @@ -61,12 +61,18 @@ public let FORMATS: [Format] = [ Format(id: "gf12", name: "GF12", bits: 12, sBits: 1, eBits: 4, mBits: 7, bias: 7, phiDistance: 0.047, storage: "u16", cluster: "GoldenFloat", status: "Verified", standard: "this work; L0/F3", useCase: "mid-range / audio", gfRelation: "self", source: "BENCH-007 (specs/numeric/gf12.t27)"), Format(id: "gf16", name: "GF16", bits: 16, sBits: 1, eBits: 6, mBits: 9, bias: 31, phiDistance: 0.049, storage: "u16", cluster: "GoldenFloat", status: "Verified", standard: "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", useCase: "training and inference (production)", gfRelation: "self", source: "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)"), Format(id: "gf20", name: "GF20", bits: 20, sBits: 1, eBits: 7, mBits: 12, bias: 63, phiDistance: 0.035, storage: "u32", cluster: "GoldenFloat", status: "Experimental", standard: "this work; 17-squared empirical PHI_BIAS=289", useCase: "high-precision edge", gfRelation: "self", source: "specs/numeric/gf20.t27 (spec only)"), - Format(id: "gf24", name: "GF24", bits: 24, sBits: 1, eBits: 9, mBits: 14, bias: 255, phiDistance: 0.025, storage: "u32", cluster: "GoldenFloat", status: "Experimental", standard: "this work; L15 PHI_BIAS=1364", useCase: "server inference", gfRelation: "self", source: "specs/numeric/gf24.t27 (spec only)"), + Format(id: "gf24", name: "GF24", bits: 24, sBits: 1, eBits: 9, mBits: 14, bias: 255, phiDistance: 0.025, storage: "u32", cluster: "GoldenFloat", status: "Experimental", standard: "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", useCase: "server inference", gfRelation: "self", source: "specs/numeric/gf24.t27 (spec only)"), Format(id: "gf32", name: "GF32", bits: 32, sBits: 1, eBits: 12, mBits: 19, bias: 2047, phiDistance: 0.014, storage: "u32", cluster: "GoldenFloat", status: "Verified", standard: "this work; F0 resolved", useCase: "fp32 drop-in", gfRelation: "self", source: "BENCH-012 (specs/numeric/gf32.t27)"), Format(id: "gf64", name: "GF64", bits: 64, sBits: 1, eBits: 24, mBits: 39, bias: 8388607, phiDistance: 0.003, storage: "u64", cluster: "GoldenFloat", status: "Verified", standard: "this work; EXP_MAX - BIAS", useCase: "scientific / double", gfRelation: "self", source: "BENCH-007b (specs/numeric/gf64.t27)"), - Format(id: "gf6", name: "GF6 (predicted)", bits: 6, sBits: 1, eBits: 2, mBits: 3, bias: 1, phiDistance: 0.05, storage: "u8_packed", cluster: "GoldenFloat", status: "Experimental", standard: "this work; e=round(5/phi^2)=2, fills FP6 gap", useCase: "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", gfRelation: "experimental", source: "section12.5"), - Format(id: "gf128", name: "GF128 (predicted)", bits: 128, sBits: 1, eBits: 48, mBits: 79, bias: 0, phiDistance: 0.008, storage: "u128", cluster: "GoldenFloat", status: "Experimental", standard: "this work; e=round(127/phi^2)=48 (Open: bias TBD)", useCase: "OPEN R&D: phi-aligned binary128 alternative", gfRelation: "experimental", source: "section12.5"), - Format(id: "gf256", name: "GF256 (predicted)", bits: 256, sBits: 1, eBits: 97, mBits: 158, bias: 0, phiDistance: 0.005, storage: "u256_software", cluster: "GoldenFloat", status: "Experimental", standard: "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", useCase: "OPEN R&D: phi-aligned binary256 alternative", gfRelation: "experimental", source: "section12.5; bias Open per skill"), + Format(id: "gf6", name: "GF6 (rule-derived)", bits: 6, sBits: 1, eBits: 2, mBits: 3, bias: 1, phiDistance: 0.049, storage: "u8_packed", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", useCase: "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", gfRelation: "experimental", source: "specs/numeric/gf6.t27"), + Format(id: "gf10", name: "GF10 (rule-derived)", bits: 10, sBits: 1, eBits: 3, mBits: 6, bias: 3, phiDistance: 0.118, storage: "u16", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", useCase: "OPEN R&D: tight-precision activations", gfRelation: "experimental", source: "specs/numeric/gf10.t27"), + Format(id: "gf14", name: "GF14 (rule-derived)", bits: 14, sBits: 1, eBits: 5, mBits: 8, bias: 15, phiDistance: 0.007, storage: "u16", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", useCase: "OPEN R&D: drop-in for fp16 with tighter phi alignment", gfRelation: "experimental", source: "specs/numeric/gf14.t27"), + Format(id: "gf48", name: "GF48 (rule-derived)", bits: 48, sBits: 1, eBits: 18, mBits: 29, bias: 131071, phiDistance: 0.003, storage: "u64_padded", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(47/phi^2)=18", useCase: "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", gfRelation: "experimental", source: "specs/numeric/gf48.t27"), + Format(id: "gf96", name: "GF96 (rule-derived)", bits: 96, sBits: 1, eBits: 36, mBits: 59, bias: 34359738367, phiDistance: 0.008, storage: "u128_padded", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(95/phi^2)=36", useCase: "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", gfRelation: "experimental", source: "specs/numeric/gf96.t27"), + Format(id: "gf128", name: "GF128 (rule-derived)", bits: 128, sBits: 1, eBits: 49, mBits: 78, bias: 281474976710655, phiDistance: 0.01, storage: "u128", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", useCase: "OPEN R&D: phi-aligned binary128 alternative", gfRelation: "experimental", source: "specs/numeric/gf128.t27"), + Format(id: "gf256", name: "GF256 (rule-derived)", bits: 256, sBits: 1, eBits: 97, mBits: 158, bias: 79228162514264337593543950335, phiDistance: 0.004, storage: "u256_software", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", useCase: "OPEN R&D: phi-aligned binary256 alternative", gfRelation: "experimental", source: "specs/numeric/gf256.t27"), + Format(id: "gf512", name: "GF512 (rule-derived)", bits: 512, sBits: 1, eBits: 195, mBits: 316, bias: -2, phiDistance: 0.0009, storage: "u512_software", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(511/phi^2)=195", useCase: "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", gfRelation: "experimental", source: "specs/numeric/gf512.t27"), + Format(id: "gf1024", name: "GF1024 (rule-derived)", bits: 1024, sBits: 1, eBits: 391, mBits: 632, bias: -2, phiDistance: 0.0006, storage: "u1024_software", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", useCase: "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", gfRelation: "experimental", source: "specs/numeric/gf1024.t27"), Format(id: "gf8_bfp", name: "GF8-BFP (block FP atop GF8)", bits: 8, sBits: 1, eBits: 3, mBits: 4, bias: 3, phiDistance: 0.132, storage: "u8_plus_shared_exp", cluster: "GoldenFloat", status: "Experimental", standard: "this work; per-tile shared exponent", useCase: "OPEN R&D: LLM-quantization-friendly GF8", gfRelation: "experimental", source: "section12.5"), Format(id: "gf_lns_hybrid", name: "GF + LNS hybrid (dual-space)", bits: 16, sBits: 1, eBits: 6, mBits: 9, bias: 31, phiDistance: 0.049, storage: "u16_plus_lns_path", cluster: "GoldenFloat", status: "Experimental", standard: "this work; mul in log-space, accumulate Lucas-closed", useCase: "OPEN R&D: dual-space arithmetic", gfRelation: "experimental", source: "section12.5"), Format(id: "mxgf6", name: "MXGF6 (microscaling GF6)", bits: 6, sBits: 1, eBits: 2, mBits: 3, bias: 1, phiDistance: 0.05, storage: "u8_packed_plus_e8m0", cluster: "GoldenFloat", status: "Experimental", standard: "this work; OCP MX block + GF6", useCase: "OPEN R&D: phi-aligned MX-6 candidate", gfRelation: "experimental", source: "section12.5"), diff --git a/gen/numeric/formats_catalog.ts b/gen/numeric/formats_catalog.ts index 8c90247a7..10a339ba3 100644 --- a/gen/numeric/formats_catalog.ts +++ b/gen/numeric/formats_catalog.ts @@ -61,12 +61,18 @@ export const FORMATS: ReadonlyArray = [ { id: "gf12", name: "GF12", bits: 12, s_bits: 1, e_bits: 4, m_bits: 7, bias: 7, phi_distance: 0.047, storage: "u16", cluster: "GoldenFloat", status: "Verified", standard: "this work; L0/F3", use_case: "mid-range / audio", gf_relation: "self", source: "BENCH-007 (specs/numeric/gf12.t27)" }, { id: "gf16", name: "GF16", bits: 16, s_bits: 1, e_bits: 6, m_bits: 9, bias: 31, phi_distance: 0.049, storage: "u16", cluster: "GoldenFloat", status: "Verified", standard: "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", use_case: "training and inference (production)", gf_relation: "self", source: "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)" }, { id: "gf20", name: "GF20", bits: 20, s_bits: 1, e_bits: 7, m_bits: 12, bias: 63, phi_distance: 0.035, storage: "u32", cluster: "GoldenFloat", status: "Experimental", standard: "this work; 17-squared empirical PHI_BIAS=289", use_case: "high-precision edge", gf_relation: "self", source: "specs/numeric/gf20.t27 (spec only)" }, - { id: "gf24", name: "GF24", bits: 24, s_bits: 1, e_bits: 9, m_bits: 14, bias: 255, phi_distance: 0.025, storage: "u32", cluster: "GoldenFloat", status: "Experimental", standard: "this work; L15 PHI_BIAS=1364", use_case: "server inference", gf_relation: "self", source: "specs/numeric/gf24.t27 (spec only)" }, + { id: "gf24", name: "GF24", bits: 24, s_bits: 1, e_bits: 9, m_bits: 14, bias: 255, phi_distance: 0.025, storage: "u32", cluster: "GoldenFloat", status: "Experimental", standard: "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", use_case: "server inference", gf_relation: "self", source: "specs/numeric/gf24.t27 (spec only)" }, { id: "gf32", name: "GF32", bits: 32, s_bits: 1, e_bits: 12, m_bits: 19, bias: 2047, phi_distance: 0.014, storage: "u32", cluster: "GoldenFloat", status: "Verified", standard: "this work; F0 resolved", use_case: "fp32 drop-in", gf_relation: "self", source: "BENCH-012 (specs/numeric/gf32.t27)" }, { id: "gf64", name: "GF64", bits: 64, s_bits: 1, e_bits: 24, m_bits: 39, bias: 8388607, phi_distance: 0.003, storage: "u64", cluster: "GoldenFloat", status: "Verified", standard: "this work; EXP_MAX - BIAS", use_case: "scientific / double", gf_relation: "self", source: "BENCH-007b (specs/numeric/gf64.t27)" }, - { id: "gf6", name: "GF6 (predicted)", bits: 6, s_bits: 1, e_bits: 2, m_bits: 3, bias: 1, phi_distance: 0.05, storage: "u8_packed", cluster: "GoldenFloat", status: "Experimental", standard: "this work; e=round(5/phi^2)=2, fills FP6 gap", use_case: "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", gf_relation: "experimental", source: "section12.5" }, - { id: "gf128", name: "GF128 (predicted)", bits: 128, s_bits: 1, e_bits: 48, m_bits: 79, bias: 0, phi_distance: 0.008, storage: "u128", cluster: "GoldenFloat", status: "Experimental", standard: "this work; e=round(127/phi^2)=48 (Open: bias TBD)", use_case: "OPEN R&D: phi-aligned binary128 alternative", gf_relation: "experimental", source: "section12.5" }, - { id: "gf256", name: "GF256 (predicted)", bits: 256, s_bits: 1, e_bits: 97, m_bits: 158, bias: 0, phi_distance: 0.005, storage: "u256_software", cluster: "GoldenFloat", status: "Experimental", standard: "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", use_case: "OPEN R&D: phi-aligned binary256 alternative", gf_relation: "experimental", source: "section12.5; bias Open per skill" }, + { id: "gf6", name: "GF6 (rule-derived)", bits: 6, s_bits: 1, e_bits: 2, m_bits: 3, bias: 1, phi_distance: 0.049, storage: "u8_packed", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", use_case: "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", gf_relation: "experimental", source: "specs/numeric/gf6.t27" }, + { id: "gf10", name: "GF10 (rule-derived)", bits: 10, s_bits: 1, e_bits: 3, m_bits: 6, bias: 3, phi_distance: 0.118, storage: "u16", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", use_case: "OPEN R&D: tight-precision activations", gf_relation: "experimental", source: "specs/numeric/gf10.t27" }, + { id: "gf14", name: "GF14 (rule-derived)", bits: 14, s_bits: 1, e_bits: 5, m_bits: 8, bias: 15, phi_distance: 0.007, storage: "u16", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", use_case: "OPEN R&D: drop-in for fp16 with tighter phi alignment", gf_relation: "experimental", source: "specs/numeric/gf14.t27" }, + { id: "gf48", name: "GF48 (rule-derived)", bits: 48, s_bits: 1, e_bits: 18, m_bits: 29, bias: 131071, phi_distance: 0.003, storage: "u64_padded", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(47/phi^2)=18", use_case: "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", gf_relation: "experimental", source: "specs/numeric/gf48.t27" }, + { id: "gf96", name: "GF96 (rule-derived)", bits: 96, s_bits: 1, e_bits: 36, m_bits: 59, bias: 34359738367, phi_distance: 0.008, storage: "u128_padded", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(95/phi^2)=36", use_case: "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", gf_relation: "experimental", source: "specs/numeric/gf96.t27" }, + { id: "gf128", name: "GF128 (rule-derived)", bits: 128, s_bits: 1, e_bits: 49, m_bits: 78, bias: 281474976710655, phi_distance: 0.01, storage: "u128", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", use_case: "OPEN R&D: phi-aligned binary128 alternative", gf_relation: "experimental", source: "specs/numeric/gf128.t27" }, + { id: "gf256", name: "GF256 (rule-derived)", bits: 256, s_bits: 1, e_bits: 97, m_bits: 158, bias: 79228162514264337593543950335, phi_distance: 0.004, storage: "u256_software", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", use_case: "OPEN R&D: phi-aligned binary256 alternative", gf_relation: "experimental", source: "specs/numeric/gf256.t27" }, + { id: "gf512", name: "GF512 (rule-derived)", bits: 512, s_bits: 1, e_bits: 195, m_bits: 316, bias: -2, phi_distance: 0.0009, storage: "u512_software", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(511/phi^2)=195", use_case: "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", gf_relation: "experimental", source: "specs/numeric/gf512.t27" }, + { id: "gf1024", name: "GF1024 (rule-derived)", bits: 1024, s_bits: 1, e_bits: 391, m_bits: 632, bias: -2, phi_distance: 0.0006, storage: "u1024_software", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", use_case: "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", gf_relation: "experimental", source: "specs/numeric/gf1024.t27" }, { id: "gf8_bfp", name: "GF8-BFP (block FP atop GF8)", bits: 8, s_bits: 1, e_bits: 3, m_bits: 4, bias: 3, phi_distance: 0.132, storage: "u8_plus_shared_exp", cluster: "GoldenFloat", status: "Experimental", standard: "this work; per-tile shared exponent", use_case: "OPEN R&D: LLM-quantization-friendly GF8", gf_relation: "experimental", source: "section12.5" }, { id: "gf_lns_hybrid", name: "GF + LNS hybrid (dual-space)", bits: 16, s_bits: 1, e_bits: 6, m_bits: 9, bias: 31, phi_distance: 0.049, storage: "u16_plus_lns_path", cluster: "GoldenFloat", status: "Experimental", standard: "this work; mul in log-space, accumulate Lucas-closed", use_case: "OPEN R&D: dual-space arithmetic", gf_relation: "experimental", source: "section12.5" }, { id: "mxgf6", name: "MXGF6 (microscaling GF6)", bits: 6, s_bits: 1, e_bits: 2, m_bits: 3, bias: 1, phi_distance: 0.05, storage: "u8_packed_plus_e8m0", cluster: "GoldenFloat", status: "Experimental", standard: "this work; OCP MX block + GF6", use_case: "OPEN R&D: phi-aligned MX-6 candidate", gf_relation: "experimental", source: "section12.5" }, diff --git a/gen/numeric/formats_catalog.vh b/gen/numeric/formats_catalog.vh index f7f18a3b7..7ecbc0ff3 100644 --- a/gen/numeric/formats_catalog.vh +++ b/gen/numeric/formats_catalog.vh @@ -6,7 +6,7 @@ `ifndef T27_FORMATS_CATALOG_VH `define T27_FORMATS_CATALOG_VH -`define T27_FORMAT_COUNT 77 +`define T27_FORMAT_COUNT 83 `define T27_FMT_BINARY16_BITS 16 `define T27_FMT_BINARY16_S 1 @@ -233,16 +233,46 @@ `define T27_FMT_GF6_E 2 `define T27_FMT_GF6_M 3 `define T27_FMT_GF6_BIAS 1 +`define T27_FMT_GF10_BITS 10 +`define T27_FMT_GF10_S 1 +`define T27_FMT_GF10_E 3 +`define T27_FMT_GF10_M 6 +`define T27_FMT_GF10_BIAS 3 +`define T27_FMT_GF14_BITS 14 +`define T27_FMT_GF14_S 1 +`define T27_FMT_GF14_E 5 +`define T27_FMT_GF14_M 8 +`define T27_FMT_GF14_BIAS 15 +`define T27_FMT_GF48_BITS 48 +`define T27_FMT_GF48_S 1 +`define T27_FMT_GF48_E 18 +`define T27_FMT_GF48_M 29 +`define T27_FMT_GF48_BIAS 131071 +`define T27_FMT_GF96_BITS 96 +`define T27_FMT_GF96_S 1 +`define T27_FMT_GF96_E 36 +`define T27_FMT_GF96_M 59 +`define T27_FMT_GF96_BIAS 34359738367 `define T27_FMT_GF128_BITS 128 `define T27_FMT_GF128_S 1 -`define T27_FMT_GF128_E 48 -`define T27_FMT_GF128_M 79 -`define T27_FMT_GF128_BIAS 0 +`define T27_FMT_GF128_E 49 +`define T27_FMT_GF128_M 78 +`define T27_FMT_GF128_BIAS 281474976710655 `define T27_FMT_GF256_BITS 256 `define T27_FMT_GF256_S 1 `define T27_FMT_GF256_E 97 `define T27_FMT_GF256_M 158 -`define T27_FMT_GF256_BIAS 0 +`define T27_FMT_GF256_BIAS 79228162514264337593543950335 +`define T27_FMT_GF512_BITS 512 +`define T27_FMT_GF512_S 1 +`define T27_FMT_GF512_E 195 +`define T27_FMT_GF512_M 316 +`define T27_FMT_GF512_BIAS -2 +`define T27_FMT_GF1024_BITS 1024 +`define T27_FMT_GF1024_S 1 +`define T27_FMT_GF1024_E 391 +`define T27_FMT_GF1024_M 632 +`define T27_FMT_GF1024_BIAS -2 `define T27_FMT_GF8_BFP_BITS 8 `define T27_FMT_GF8_BFP_S 1 `define T27_FMT_GF8_BFP_E 3 diff --git a/gen/numeric/formats_catalog.zig b/gen/numeric/formats_catalog.zig index 039c4b2f6..8cf218300 100644 --- a/gen/numeric/formats_catalog.zig +++ b/gen/numeric/formats_catalog.zig @@ -61,12 +61,18 @@ pub const formats = [_]Format{ .{ .id = "gf12", .name = "GF12", .bits = 12, .s_bits = 1, .e_bits = 4, .m_bits = 7, .bias = 7, .phi_distance = 0.047, .storage = "u16", .cluster = "GoldenFloat", .status = "Verified", .standard = "this work; L0/F3", .use_case = "mid-range / audio", .gf_relation = "self", .source = "BENCH-007 (specs/numeric/gf12.t27)" }, .{ .id = "gf16", .name = "GF16", .bits = 16, .s_bits = 1, .e_bits = 6, .m_bits = 9, .bias = 31, .phi_distance = 0.049, .storage = "u16", .cluster = "GoldenFloat", .status = "Verified", .standard = "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", .use_case = "training and inference (production)", .gf_relation = "self", .source = "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)" }, .{ .id = "gf20", .name = "GF20", .bits = 20, .s_bits = 1, .e_bits = 7, .m_bits = 12, .bias = 63, .phi_distance = 0.035, .storage = "u32", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; 17-squared empirical PHI_BIAS=289", .use_case = "high-precision edge", .gf_relation = "self", .source = "specs/numeric/gf20.t27 (spec only)" }, - .{ .id = "gf24", .name = "GF24", .bits = 24, .s_bits = 1, .e_bits = 9, .m_bits = 14, .bias = 255, .phi_distance = 0.025, .storage = "u32", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; L15 PHI_BIAS=1364", .use_case = "server inference", .gf_relation = "self", .source = "specs/numeric/gf24.t27 (spec only)" }, + .{ .id = "gf24", .name = "GF24", .bits = 24, .s_bits = 1, .e_bits = 9, .m_bits = 14, .bias = 255, .phi_distance = 0.025, .storage = "u32", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", .use_case = "server inference", .gf_relation = "self", .source = "specs/numeric/gf24.t27 (spec only)" }, .{ .id = "gf32", .name = "GF32", .bits = 32, .s_bits = 1, .e_bits = 12, .m_bits = 19, .bias = 2047, .phi_distance = 0.014, .storage = "u32", .cluster = "GoldenFloat", .status = "Verified", .standard = "this work; F0 resolved", .use_case = "fp32 drop-in", .gf_relation = "self", .source = "BENCH-012 (specs/numeric/gf32.t27)" }, .{ .id = "gf64", .name = "GF64", .bits = 64, .s_bits = 1, .e_bits = 24, .m_bits = 39, .bias = 8388607, .phi_distance = 0.003, .storage = "u64", .cluster = "GoldenFloat", .status = "Verified", .standard = "this work; EXP_MAX - BIAS", .use_case = "scientific / double", .gf_relation = "self", .source = "BENCH-007b (specs/numeric/gf64.t27)" }, - .{ .id = "gf6", .name = "GF6 (predicted)", .bits = 6, .s_bits = 1, .e_bits = 2, .m_bits = 3, .bias = 1, .phi_distance = 0.05, .storage = "u8_packed", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; e=round(5/phi^2)=2, fills FP6 gap", .use_case = "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", .gf_relation = "experimental", .source = "section12.5" }, - .{ .id = "gf128", .name = "GF128 (predicted)", .bits = 128, .s_bits = 1, .e_bits = 48, .m_bits = 79, .bias = 0, .phi_distance = 0.008, .storage = "u128", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; e=round(127/phi^2)=48 (Open: bias TBD)", .use_case = "OPEN R&D: phi-aligned binary128 alternative", .gf_relation = "experimental", .source = "section12.5" }, - .{ .id = "gf256", .name = "GF256 (predicted)", .bits = 256, .s_bits = 1, .e_bits = 97, .m_bits = 158, .bias = 0, .phi_distance = 0.005, .storage = "u256_software", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", .use_case = "OPEN R&D: phi-aligned binary256 alternative", .gf_relation = "experimental", .source = "section12.5; bias Open per skill" }, + .{ .id = "gf6", .name = "GF6 (rule-derived)", .bits = 6, .s_bits = 1, .e_bits = 2, .m_bits = 3, .bias = 1, .phi_distance = 0.049, .storage = "u8_packed", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", .use_case = "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", .gf_relation = "experimental", .source = "specs/numeric/gf6.t27" }, + .{ .id = "gf10", .name = "GF10 (rule-derived)", .bits = 10, .s_bits = 1, .e_bits = 3, .m_bits = 6, .bias = 3, .phi_distance = 0.118, .storage = "u16", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", .use_case = "OPEN R&D: tight-precision activations", .gf_relation = "experimental", .source = "specs/numeric/gf10.t27" }, + .{ .id = "gf14", .name = "GF14 (rule-derived)", .bits = 14, .s_bits = 1, .e_bits = 5, .m_bits = 8, .bias = 15, .phi_distance = 0.007, .storage = "u16", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", .use_case = "OPEN R&D: drop-in for fp16 with tighter phi alignment", .gf_relation = "experimental", .source = "specs/numeric/gf14.t27" }, + .{ .id = "gf48", .name = "GF48 (rule-derived)", .bits = 48, .s_bits = 1, .e_bits = 18, .m_bits = 29, .bias = 131071, .phi_distance = 0.003, .storage = "u64_padded", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(47/phi^2)=18", .use_case = "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", .gf_relation = "experimental", .source = "specs/numeric/gf48.t27" }, + .{ .id = "gf96", .name = "GF96 (rule-derived)", .bits = 96, .s_bits = 1, .e_bits = 36, .m_bits = 59, .bias = 34359738367, .phi_distance = 0.008, .storage = "u128_padded", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(95/phi^2)=36", .use_case = "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", .gf_relation = "experimental", .source = "specs/numeric/gf96.t27" }, + .{ .id = "gf128", .name = "GF128 (rule-derived)", .bits = 128, .s_bits = 1, .e_bits = 49, .m_bits = 78, .bias = 281474976710655, .phi_distance = 0.01, .storage = "u128", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", .use_case = "OPEN R&D: phi-aligned binary128 alternative", .gf_relation = "experimental", .source = "specs/numeric/gf128.t27" }, + .{ .id = "gf256", .name = "GF256 (rule-derived)", .bits = 256, .s_bits = 1, .e_bits = 97, .m_bits = 158, .bias = 79228162514264337593543950335, .phi_distance = 0.004, .storage = "u256_software", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", .use_case = "OPEN R&D: phi-aligned binary256 alternative", .gf_relation = "experimental", .source = "specs/numeric/gf256.t27" }, + .{ .id = "gf512", .name = "GF512 (rule-derived)", .bits = 512, .s_bits = 1, .e_bits = 195, .m_bits = 316, .bias = -2, .phi_distance = 0.0009, .storage = "u512_software", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(511/phi^2)=195", .use_case = "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", .gf_relation = "experimental", .source = "specs/numeric/gf512.t27" }, + .{ .id = "gf1024", .name = "GF1024 (rule-derived)", .bits = 1024, .s_bits = 1, .e_bits = 391, .m_bits = 632, .bias = -2, .phi_distance = 0.0006, .storage = "u1024_software", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", .use_case = "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", .gf_relation = "experimental", .source = "specs/numeric/gf1024.t27" }, .{ .id = "gf8_bfp", .name = "GF8-BFP (block FP atop GF8)", .bits = 8, .s_bits = 1, .e_bits = 3, .m_bits = 4, .bias = 3, .phi_distance = 0.132, .storage = "u8_plus_shared_exp", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; per-tile shared exponent", .use_case = "OPEN R&D: LLM-quantization-friendly GF8", .gf_relation = "experimental", .source = "section12.5" }, .{ .id = "gf_lns_hybrid", .name = "GF + LNS hybrid (dual-space)", .bits = 16, .s_bits = 1, .e_bits = 6, .m_bits = 9, .bias = 31, .phi_distance = 0.049, .storage = "u16_plus_lns_path", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; mul in log-space, accumulate Lucas-closed", .use_case = "OPEN R&D: dual-space arithmetic", .gf_relation = "experimental", .source = "section12.5" }, .{ .id = "mxgf6", .name = "MXGF6 (microscaling GF6)", .bits = 6, .s_bits = 1, .e_bits = 2, .m_bits = 3, .bias = 1, .phi_distance = 0.05, .storage = "u8_packed_plus_e8m0", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; OCP MX block + GF6", .use_case = "OPEN R&D: phi-aligned MX-6 candidate", .gf_relation = "experimental", .source = "section12.5" }, diff --git a/tools/gen_formats_catalog.py b/tools/gen_formats_catalog.py index ecd52be39..cbc6abd8e 100755 --- a/tools/gen_formats_catalog.py +++ b/tools/gen_formats_catalog.py @@ -47,7 +47,8 @@ class Format: s_bits: int e_bits: int m_bits: int - bias: int + bias: int # -2 sentinel = value exceeds int64, see bias_formula + bias_formula: str # raw SSOT bias string (literal int or formula like '2^194-1') phi_distance: float # -1.0 == undefined storage: str cluster: str @@ -70,11 +71,43 @@ def parse_kv_line(line: str) -> dict[str, str]: return out +def parse_bias(s: str) -> tuple[int, str]: + """Parse a bias field. + + Returns (bias_int, bias_formula). bias_formula is the raw SSOT string + (e.g. '2^194-1' for gf512); bias_int is the int() of s when possible, + else -1 sentinel meaning 'see bias_formula'. This lets the int-typed + bias field stay backwards-compatible with all downstream emitters + (Rust i64, C int64_t, TS number) while preserving the rule-derived + formulas for the limit-of-ladder GF rungs (gf512 bias 2^194-1, + gf1024 bias 2^390-1) that were added by PR #1051. See issue #1064. + """ + try: + return int(s), s + except ValueError: + # Try to evaluate simple 2^N-1 / 2^N+1 / 2^N forms; if the + # exponent stays within range, return the literal int. + m = re.match(r"^2\^(\d+)([+-]\d+)?$", s.strip()) + if m: + exp = int(m.group(1)) + off = int(m.group(2)) if m.group(2) else 0 + if exp <= 1024: # python int is arbitrary precision but i64 isn't + val = (1 << exp) + off + # Only return as int if it fits signed 64-bit; otherwise + # downstream emitters (Rust i64, C int64_t) overflow. + if -(1 << 63) <= val < (1 << 63): + return val, s + # Cannot lift to int; record formula, use sentinel -2 meaning + # "value lives in bias_formula field, exceeds int64". + return -2, s + + def parse_t27(text: str) -> list[Format]: formats: list[Format] = [] for m in CATALOG_LINE.finditer(text): fields = parse_kv_line(m.group(1)) try: + bias_int, bias_formula = parse_bias(fields["bias"]) fmt = Format( id=fields["id"], name=fields["name"], @@ -82,7 +115,8 @@ def parse_t27(text: str) -> list[Format]: s_bits=int(fields["s"]), e_bits=int(fields["e"]), m_bits=int(fields["m"]), - bias=int(fields["bias"]), + bias=bias_int, + bias_formula=bias_formula, phi_distance=float(fields["phi_distance"]), storage=fields["storage"], cluster=fields["cluster"], From fe9150550a712609294961ed24944a7030f037a9 Mon Sep 17 00:00:00 2001 From: gHashTag Date: Sat, 13 Jun 2026 14:18:19 +0000 Subject: [PATCH 2/2] fix(codegen): revert auto-generated gen/ artefacts, add NOW.md entry PR #1065 originally committed regenerated gen/numeric/* outputs alongside the source fix in tools/gen_formats_catalog.py. Per L2 generation rules, gen/ artefacts must be auto-regenerated post-merge by ./scripts/tri gen, not committed in source PRs. This commit: - reverts gen/numeric/* back to master state - keeps the source fix (tools/gen_formats_catalog.py) intact - adds docs/NOW.md entry per NOW Sync Gate Closes #1064 --- docs/NOW.md | 8 +- gen/numeric/FormatsCatalog.hs | 14 +- gen/numeric/FormatsCatalog.java | 14 +- gen/numeric/FormatsCatalog.jl | 14 +- gen/numeric/formats_catalog.go | 14 +- gen/numeric/formats_catalog.h | 16 +-- gen/numeric/formats_catalog.hpp | 16 +-- gen/numeric/formats_catalog.json | 227 +++--------------------------- gen/numeric/formats_catalog.kt | 14 +- gen/numeric/formats_catalog.md | 16 +-- gen/numeric/formats_catalog.ml | 14 +- gen/numeric/formats_catalog.py | 14 +- gen/numeric/formats_catalog.rs | 16 +-- gen/numeric/formats_catalog.swift | 14 +- gen/numeric/formats_catalog.ts | 14 +- gen/numeric/formats_catalog.vh | 40 +----- gen/numeric/formats_catalog.zig | 14 +- 17 files changed, 93 insertions(+), 386 deletions(-) diff --git a/docs/NOW.md b/docs/NOW.md index 6a311e54f..bb5c7a419 100644 --- a/docs/NOW.md +++ b/docs/NOW.md @@ -1,6 +1,12 @@ # NOW -- Trinity t27 sync -Last updated: 2026-06-08 +Last updated: 2026-06-13 + +## fix-parser-bias-formula -- handle bias formulas in numeric format SSOT (Closes #1064) + +- **WHERE** (codegen only): `tools/gen_formats_catalog.py` parser extended to handle bias formulas like `2^N-1` (gf512, gf1024) which were previously dropped on `int(s)` cast. No `specs/` edits, no `gen/` edits in this PR (codegen runs auto-regenerate on master post-merge). The fix raises live regen output from 81 to 83 rows, matching the SSOT raw-line count at HEAD `6ecad30`. +- **Why**: count-drift audit (#1064) showed four divergent counts across the catalog pipeline -- paper 84 / SSOT 83 / regen 81 / shipped gen 77. Root cause for the 83 -> 81 drop was a parser that treated bias as `int(value)` and silently dropped two rows on `2^N-1`. After this fix lands and codegen reruns, gen/ artefacts and the HF mirror at `playra/numeric-format-catalog` converge on 83. The paper-84 vs SSOT-83 difference is the historical paper expansion plan recorded as a separate row that was never materialised in the SSOT; treated as an honest documentation note in arXiv:2606.09686 §11. L6 gf16 SSOT untouched. L2 gen/ untouched in this PR (will auto-regen). Closes #1064. +- **Anchor**: phi^2 + phi^-2 = 3 ## funding-json-trinity-s3ai -- maintainer block + ORCID + project_info anchor (Closes #1062) diff --git a/gen/numeric/FormatsCatalog.hs b/gen/numeric/FormatsCatalog.hs index 943eb769a..2bfc1bcf0 100644 --- a/gen/numeric/FormatsCatalog.hs +++ b/gen/numeric/FormatsCatalog.hs @@ -67,18 +67,12 @@ formats = , Format "gf12" "GF12" 12 1 4 7 7 (0.047) "u16" "GoldenFloat" "Verified" "this work; L0/F3" "mid-range / audio" "self" "BENCH-007 (specs/numeric/gf12.t27)" , Format "gf16" "GF16" 16 1 6 9 31 (0.049) "u16" "GoldenFloat" "Verified" "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7" "training and inference (production)" "self" "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)" , Format "gf20" "GF20" 20 1 7 12 63 (0.035) "u32" "GoldenFloat" "Experimental" "this work; 17-squared empirical PHI_BIAS=289" "high-precision edge" "self" "specs/numeric/gf20.t27 (spec only)" - , Format "gf24" "GF24" 24 1 9 14 255 (0.025) "u32" "GoldenFloat" "Experimental" "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN" "server inference" "self" "specs/numeric/gf24.t27 (spec only)" + , Format "gf24" "GF24" 24 1 9 14 255 (0.025) "u32" "GoldenFloat" "Experimental" "this work; L15 PHI_BIAS=1364" "server inference" "self" "specs/numeric/gf24.t27 (spec only)" , Format "gf32" "GF32" 32 1 12 19 2047 (0.014) "u32" "GoldenFloat" "Verified" "this work; F0 resolved" "fp32 drop-in" "self" "BENCH-012 (specs/numeric/gf32.t27)" , Format "gf64" "GF64" 64 1 24 39 8388607 (0.003) "u64" "GoldenFloat" "Verified" "this work; EXP_MAX - BIAS" "scientific / double" "self" "BENCH-007b (specs/numeric/gf64.t27)" - , Format "gf6" "GF6 (rule-derived)" 6 1 2 3 1 (0.049) "u8_packed" "GoldenFloat" "Open" "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge" "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint" "experimental" "specs/numeric/gf6.t27" - , Format "gf10" "GF10 (rule-derived)" 10 1 3 6 3 (0.118) "u16" "GoldenFloat" "Open" "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12" "OPEN R&D: tight-precision activations" "experimental" "specs/numeric/gf10.t27" - , Format "gf14" "GF14 (rule-derived)" 14 1 5 8 15 (0.007) "u16" "GoldenFloat" "Open" "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48" "OPEN R&D: drop-in for fp16 with tighter phi alignment" "experimental" "specs/numeric/gf14.t27" - , Format "gf48" "GF48 (rule-derived)" 48 1 18 29 131071 (0.003) "u64_padded" "GoldenFloat" "Open" "this work; rule e=round(47/phi^2)=18" "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs" "experimental" "specs/numeric/gf48.t27" - , Format "gf96" "GF96 (rule-derived)" 96 1 36 59 34359738367 (0.008) "u128_padded" "GoldenFloat" "Open" "this work; rule e=round(95/phi^2)=36" "OPEN R&D: between GF64 and GF128 (phi-aligned extended)" "experimental" "specs/numeric/gf96.t27" - , Format "gf128" "GF128 (rule-derived)" 128 1 49 78 281474976710655 (0.01) "u128" "GoldenFloat" "Open" "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)" "OPEN R&D: phi-aligned binary128 alternative" "experimental" "specs/numeric/gf128.t27" - , Format "gf256" "GF256 (rule-derived)" 256 1 97 158 79228162514264337593543950335 (0.004) "u256_software" "GoldenFloat" "Open" "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1" "OPEN R&D: phi-aligned binary256 alternative" "experimental" "specs/numeric/gf256.t27" - , Format "gf512" "GF512 (rule-derived)" 512 1 195 316 -2 (0.0009) "u512_software" "GoldenFloat" "Open" "this work; rule e=round(511/phi^2)=195" "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)" "experimental" "specs/numeric/gf512.t27" - , Format "gf1024" "GF1024 (rule-derived)" 1024 1 391 632 -2 (0.0006) "u1024_software" "GoldenFloat" "Open" "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder" "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)" "experimental" "specs/numeric/gf1024.t27" + , Format "gf6" "GF6 (predicted)" 6 1 2 3 1 (0.05) "u8_packed" "GoldenFloat" "Experimental" "this work; e=round(5/phi^2)=2, fills FP6 gap" "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint" "experimental" "section12.5" + , Format "gf128" "GF128 (predicted)" 128 1 48 79 0 (0.008) "u128" "GoldenFloat" "Experimental" "this work; e=round(127/phi^2)=48 (Open: bias TBD)" "OPEN R&D: phi-aligned binary128 alternative" "experimental" "section12.5" + , Format "gf256" "GF256 (predicted)" 256 1 97 158 0 (0.005) "u256_software" "GoldenFloat" "Experimental" "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)" "OPEN R&D: phi-aligned binary256 alternative" "experimental" "section12.5; bias Open per skill" , Format "gf8_bfp" "GF8-BFP (block FP atop GF8)" 8 1 3 4 3 (0.132) "u8_plus_shared_exp" "GoldenFloat" "Experimental" "this work; per-tile shared exponent" "OPEN R&D: LLM-quantization-friendly GF8" "experimental" "section12.5" , Format "gf_lns_hybrid" "GF + LNS hybrid (dual-space)" 16 1 6 9 31 (0.049) "u16_plus_lns_path" "GoldenFloat" "Experimental" "this work; mul in log-space, accumulate Lucas-closed" "OPEN R&D: dual-space arithmetic" "experimental" "section12.5" , Format "mxgf6" "MXGF6 (microscaling GF6)" 6 1 2 3 1 (0.05) "u8_packed_plus_e8m0" "GoldenFloat" "Experimental" "this work; OCP MX block + GF6" "OPEN R&D: phi-aligned MX-6 candidate" "experimental" "section12.5" diff --git a/gen/numeric/FormatsCatalog.java b/gen/numeric/FormatsCatalog.java index 147f3807d..2aeac815d 100644 --- a/gen/numeric/FormatsCatalog.java +++ b/gen/numeric/FormatsCatalog.java @@ -86,18 +86,12 @@ public Format(String id, String name, new Format("gf12", "GF12", 12L, 1L, 4L, 7L, 7L, 0.047, "u16", "GoldenFloat", "Verified", "this work; L0/F3", "mid-range / audio", "self", "BENCH-007 (specs/numeric/gf12.t27)"), new Format("gf16", "GF16", 16L, 1L, 6L, 9L, 31L, 0.049, "u16", "GoldenFloat", "Verified", "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", "training and inference (production)", "self", "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)"), new Format("gf20", "GF20", 20L, 1L, 7L, 12L, 63L, 0.035, "u32", "GoldenFloat", "Experimental", "this work; 17-squared empirical PHI_BIAS=289", "high-precision edge", "self", "specs/numeric/gf20.t27 (spec only)"), - new Format("gf24", "GF24", 24L, 1L, 9L, 14L, 255L, 0.025, "u32", "GoldenFloat", "Experimental", "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", "server inference", "self", "specs/numeric/gf24.t27 (spec only)"), + new Format("gf24", "GF24", 24L, 1L, 9L, 14L, 255L, 0.025, "u32", "GoldenFloat", "Experimental", "this work; L15 PHI_BIAS=1364", "server inference", "self", "specs/numeric/gf24.t27 (spec only)"), new Format("gf32", "GF32", 32L, 1L, 12L, 19L, 2047L, 0.014, "u32", "GoldenFloat", "Verified", "this work; F0 resolved", "fp32 drop-in", "self", "BENCH-012 (specs/numeric/gf32.t27)"), new Format("gf64", "GF64", 64L, 1L, 24L, 39L, 8388607L, 0.003, "u64", "GoldenFloat", "Verified", "this work; EXP_MAX - BIAS", "scientific / double", "self", "BENCH-007b (specs/numeric/gf64.t27)"), - new Format("gf6", "GF6 (rule-derived)", 6L, 1L, 2L, 3L, 1L, 0.049, "u8_packed", "GoldenFloat", "Open", "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "specs/numeric/gf6.t27"), - new Format("gf10", "GF10 (rule-derived)", 10L, 1L, 3L, 6L, 3L, 0.118, "u16", "GoldenFloat", "Open", "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", "OPEN R&D: tight-precision activations", "experimental", "specs/numeric/gf10.t27"), - new Format("gf14", "GF14 (rule-derived)", 14L, 1L, 5L, 8L, 15L, 0.007, "u16", "GoldenFloat", "Open", "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", "OPEN R&D: drop-in for fp16 with tighter phi alignment", "experimental", "specs/numeric/gf14.t27"), - new Format("gf48", "GF48 (rule-derived)", 48L, 1L, 18L, 29L, 131071L, 0.003, "u64_padded", "GoldenFloat", "Open", "this work; rule e=round(47/phi^2)=18", "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", "experimental", "specs/numeric/gf48.t27"), - new Format("gf96", "GF96 (rule-derived)", 96L, 1L, 36L, 59L, 34359738367L, 0.008, "u128_padded", "GoldenFloat", "Open", "this work; rule e=round(95/phi^2)=36", "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", "experimental", "specs/numeric/gf96.t27"), - new Format("gf128", "GF128 (rule-derived)", 128L, 1L, 49L, 78L, 281474976710655L, 0.01, "u128", "GoldenFloat", "Open", "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "specs/numeric/gf128.t27"), - new Format("gf256", "GF256 (rule-derived)", 256L, 1L, 97L, 158L, 79228162514264337593543950335L, 0.004, "u256_software", "GoldenFloat", "Open", "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "specs/numeric/gf256.t27"), - new Format("gf512", "GF512 (rule-derived)", 512L, 1L, 195L, 316L, -2L, 0.0009, "u512_software", "GoldenFloat", "Open", "this work; rule e=round(511/phi^2)=195", "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", "experimental", "specs/numeric/gf512.t27"), - new Format("gf1024", "GF1024 (rule-derived)", 1024L, 1L, 391L, 632L, -2L, 0.0006, "u1024_software", "GoldenFloat", "Open", "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", "experimental", "specs/numeric/gf1024.t27"), + new Format("gf6", "GF6 (predicted)", 6L, 1L, 2L, 3L, 1L, 0.05, "u8_packed", "GoldenFloat", "Experimental", "this work; e=round(5/phi^2)=2, fills FP6 gap", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "section12.5"), + new Format("gf128", "GF128 (predicted)", 128L, 1L, 48L, 79L, 0L, 0.008, "u128", "GoldenFloat", "Experimental", "this work; e=round(127/phi^2)=48 (Open: bias TBD)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "section12.5"), + new Format("gf256", "GF256 (predicted)", 256L, 1L, 97L, 158L, 0L, 0.005, "u256_software", "GoldenFloat", "Experimental", "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "section12.5; bias Open per skill"), new Format("gf8_bfp", "GF8-BFP (block FP atop GF8)", 8L, 1L, 3L, 4L, 3L, 0.132, "u8_plus_shared_exp", "GoldenFloat", "Experimental", "this work; per-tile shared exponent", "OPEN R&D: LLM-quantization-friendly GF8", "experimental", "section12.5"), new Format("gf_lns_hybrid", "GF + LNS hybrid (dual-space)", 16L, 1L, 6L, 9L, 31L, 0.049, "u16_plus_lns_path", "GoldenFloat", "Experimental", "this work; mul in log-space, accumulate Lucas-closed", "OPEN R&D: dual-space arithmetic", "experimental", "section12.5"), new Format("mxgf6", "MXGF6 (microscaling GF6)", 6L, 1L, 2L, 3L, 1L, 0.05, "u8_packed_plus_e8m0", "GoldenFloat", "Experimental", "this work; OCP MX block + GF6", "OPEN R&D: phi-aligned MX-6 candidate", "experimental", "section12.5"), diff --git a/gen/numeric/FormatsCatalog.jl b/gen/numeric/FormatsCatalog.jl index 035221085..50d2d84f0 100644 --- a/gen/numeric/FormatsCatalog.jl +++ b/gen/numeric/FormatsCatalog.jl @@ -65,18 +65,12 @@ const FORMATS = Format[ Format("gf12", "GF12", UInt32(12), UInt32(1), UInt32(4), UInt32(7), Int64(7), 0.047, "u16", "GoldenFloat", "Verified", "this work; L0/F3", "mid-range / audio", "self", "BENCH-007 (specs/numeric/gf12.t27)"), Format("gf16", "GF16", UInt32(16), UInt32(1), UInt32(6), UInt32(9), Int64(31), 0.049, "u16", "GoldenFloat", "Verified", "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", "training and inference (production)", "self", "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)"), Format("gf20", "GF20", UInt32(20), UInt32(1), UInt32(7), UInt32(12), Int64(63), 0.035, "u32", "GoldenFloat", "Experimental", "this work; 17-squared empirical PHI_BIAS=289", "high-precision edge", "self", "specs/numeric/gf20.t27 (spec only)"), - Format("gf24", "GF24", UInt32(24), UInt32(1), UInt32(9), UInt32(14), Int64(255), 0.025, "u32", "GoldenFloat", "Experimental", "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", "server inference", "self", "specs/numeric/gf24.t27 (spec only)"), + Format("gf24", "GF24", UInt32(24), UInt32(1), UInt32(9), UInt32(14), Int64(255), 0.025, "u32", "GoldenFloat", "Experimental", "this work; L15 PHI_BIAS=1364", "server inference", "self", "specs/numeric/gf24.t27 (spec only)"), Format("gf32", "GF32", UInt32(32), UInt32(1), UInt32(12), UInt32(19), Int64(2047), 0.014, "u32", "GoldenFloat", "Verified", "this work; F0 resolved", "fp32 drop-in", "self", "BENCH-012 (specs/numeric/gf32.t27)"), Format("gf64", "GF64", UInt32(64), UInt32(1), UInt32(24), UInt32(39), Int64(8388607), 0.003, "u64", "GoldenFloat", "Verified", "this work; EXP_MAX - BIAS", "scientific / double", "self", "BENCH-007b (specs/numeric/gf64.t27)"), - Format("gf6", "GF6 (rule-derived)", UInt32(6), UInt32(1), UInt32(2), UInt32(3), Int64(1), 0.049, "u8_packed", "GoldenFloat", "Open", "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "specs/numeric/gf6.t27"), - Format("gf10", "GF10 (rule-derived)", UInt32(10), UInt32(1), UInt32(3), UInt32(6), Int64(3), 0.118, "u16", "GoldenFloat", "Open", "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", "OPEN R&D: tight-precision activations", "experimental", "specs/numeric/gf10.t27"), - Format("gf14", "GF14 (rule-derived)", UInt32(14), UInt32(1), UInt32(5), UInt32(8), Int64(15), 0.007, "u16", "GoldenFloat", "Open", "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", "OPEN R&D: drop-in for fp16 with tighter phi alignment", "experimental", "specs/numeric/gf14.t27"), - Format("gf48", "GF48 (rule-derived)", UInt32(48), UInt32(1), UInt32(18), UInt32(29), Int64(131071), 0.003, "u64_padded", "GoldenFloat", "Open", "this work; rule e=round(47/phi^2)=18", "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", "experimental", "specs/numeric/gf48.t27"), - Format("gf96", "GF96 (rule-derived)", UInt32(96), UInt32(1), UInt32(36), UInt32(59), Int64(34359738367), 0.008, "u128_padded", "GoldenFloat", "Open", "this work; rule e=round(95/phi^2)=36", "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", "experimental", "specs/numeric/gf96.t27"), - Format("gf128", "GF128 (rule-derived)", UInt32(128), UInt32(1), UInt32(49), UInt32(78), Int64(281474976710655), 0.01, "u128", "GoldenFloat", "Open", "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "specs/numeric/gf128.t27"), - Format("gf256", "GF256 (rule-derived)", UInt32(256), UInt32(1), UInt32(97), UInt32(158), Int64(79228162514264337593543950335), 0.004, "u256_software", "GoldenFloat", "Open", "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "specs/numeric/gf256.t27"), - Format("gf512", "GF512 (rule-derived)", UInt32(512), UInt32(1), UInt32(195), UInt32(316), Int64(-2), 0.0009, "u512_software", "GoldenFloat", "Open", "this work; rule e=round(511/phi^2)=195", "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", "experimental", "specs/numeric/gf512.t27"), - Format("gf1024", "GF1024 (rule-derived)", UInt32(1024), UInt32(1), UInt32(391), UInt32(632), Int64(-2), 0.0006, "u1024_software", "GoldenFloat", "Open", "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", "experimental", "specs/numeric/gf1024.t27"), + Format("gf6", "GF6 (predicted)", UInt32(6), UInt32(1), UInt32(2), UInt32(3), Int64(1), 0.05, "u8_packed", "GoldenFloat", "Experimental", "this work; e=round(5/phi^2)=2, fills FP6 gap", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "section12.5"), + Format("gf128", "GF128 (predicted)", UInt32(128), UInt32(1), UInt32(48), UInt32(79), Int64(0), 0.008, "u128", "GoldenFloat", "Experimental", "this work; e=round(127/phi^2)=48 (Open: bias TBD)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "section12.5"), + Format("gf256", "GF256 (predicted)", UInt32(256), UInt32(1), UInt32(97), UInt32(158), Int64(0), 0.005, "u256_software", "GoldenFloat", "Experimental", "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "section12.5; bias Open per skill"), Format("gf8_bfp", "GF8-BFP (block FP atop GF8)", UInt32(8), UInt32(1), UInt32(3), UInt32(4), Int64(3), 0.132, "u8_plus_shared_exp", "GoldenFloat", "Experimental", "this work; per-tile shared exponent", "OPEN R&D: LLM-quantization-friendly GF8", "experimental", "section12.5"), Format("gf_lns_hybrid", "GF + LNS hybrid (dual-space)", UInt32(16), UInt32(1), UInt32(6), UInt32(9), Int64(31), 0.049, "u16_plus_lns_path", "GoldenFloat", "Experimental", "this work; mul in log-space, accumulate Lucas-closed", "OPEN R&D: dual-space arithmetic", "experimental", "section12.5"), Format("mxgf6", "MXGF6 (microscaling GF6)", UInt32(6), UInt32(1), UInt32(2), UInt32(3), Int64(1), 0.05, "u8_packed_plus_e8m0", "GoldenFloat", "Experimental", "this work; OCP MX block + GF6", "OPEN R&D: phi-aligned MX-6 candidate", "experimental", "section12.5"), diff --git a/gen/numeric/formats_catalog.go b/gen/numeric/formats_catalog.go index 36884b504..02f2856d0 100644 --- a/gen/numeric/formats_catalog.go +++ b/gen/numeric/formats_catalog.go @@ -65,18 +65,12 @@ var Formats = []Format{ { ID: "gf12", Name: "GF12", Bits: 12, SBits: 1, EBits: 4, MBits: 7, Bias: 7, PhiDistance: 0.047, Storage: "u16", Cluster: "GoldenFloat", Status: "Verified", Standard: "this work; L0/F3", UseCase: "mid-range / audio", GFRelation: "self", Source: "BENCH-007 (specs/numeric/gf12.t27)" }, { ID: "gf16", Name: "GF16", Bits: 16, SBits: 1, EBits: 6, MBits: 9, Bias: 31, PhiDistance: 0.049, Storage: "u16", Cluster: "GoldenFloat", Status: "Verified", Standard: "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", UseCase: "training and inference (production)", GFRelation: "self", Source: "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)" }, { ID: "gf20", Name: "GF20", Bits: 20, SBits: 1, EBits: 7, MBits: 12, Bias: 63, PhiDistance: 0.035, Storage: "u32", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; 17-squared empirical PHI_BIAS=289", UseCase: "high-precision edge", GFRelation: "self", Source: "specs/numeric/gf20.t27 (spec only)" }, - { ID: "gf24", Name: "GF24", Bits: 24, SBits: 1, EBits: 9, MBits: 14, Bias: 255, PhiDistance: 0.025, Storage: "u32", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", UseCase: "server inference", GFRelation: "self", Source: "specs/numeric/gf24.t27 (spec only)" }, + { ID: "gf24", Name: "GF24", Bits: 24, SBits: 1, EBits: 9, MBits: 14, Bias: 255, PhiDistance: 0.025, Storage: "u32", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; L15 PHI_BIAS=1364", UseCase: "server inference", GFRelation: "self", Source: "specs/numeric/gf24.t27 (spec only)" }, { ID: "gf32", Name: "GF32", Bits: 32, SBits: 1, EBits: 12, MBits: 19, Bias: 2047, PhiDistance: 0.014, Storage: "u32", Cluster: "GoldenFloat", Status: "Verified", Standard: "this work; F0 resolved", UseCase: "fp32 drop-in", GFRelation: "self", Source: "BENCH-012 (specs/numeric/gf32.t27)" }, { ID: "gf64", Name: "GF64", Bits: 64, SBits: 1, EBits: 24, MBits: 39, Bias: 8388607, PhiDistance: 0.003, Storage: "u64", Cluster: "GoldenFloat", Status: "Verified", Standard: "this work; EXP_MAX - BIAS", UseCase: "scientific / double", GFRelation: "self", Source: "BENCH-007b (specs/numeric/gf64.t27)" }, - { ID: "gf6", Name: "GF6 (rule-derived)", Bits: 6, SBits: 1, EBits: 2, MBits: 3, Bias: 1, PhiDistance: 0.049, Storage: "u8_packed", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", UseCase: "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", GFRelation: "experimental", Source: "specs/numeric/gf6.t27" }, - { ID: "gf10", Name: "GF10 (rule-derived)", Bits: 10, SBits: 1, EBits: 3, MBits: 6, Bias: 3, PhiDistance: 0.118, Storage: "u16", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", UseCase: "OPEN R&D: tight-precision activations", GFRelation: "experimental", Source: "specs/numeric/gf10.t27" }, - { ID: "gf14", Name: "GF14 (rule-derived)", Bits: 14, SBits: 1, EBits: 5, MBits: 8, Bias: 15, PhiDistance: 0.007, Storage: "u16", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", UseCase: "OPEN R&D: drop-in for fp16 with tighter phi alignment", GFRelation: "experimental", Source: "specs/numeric/gf14.t27" }, - { ID: "gf48", Name: "GF48 (rule-derived)", Bits: 48, SBits: 1, EBits: 18, MBits: 29, Bias: 131071, PhiDistance: 0.003, Storage: "u64_padded", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(47/phi^2)=18", UseCase: "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", GFRelation: "experimental", Source: "specs/numeric/gf48.t27" }, - { ID: "gf96", Name: "GF96 (rule-derived)", Bits: 96, SBits: 1, EBits: 36, MBits: 59, Bias: 34359738367, PhiDistance: 0.008, Storage: "u128_padded", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(95/phi^2)=36", UseCase: "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", GFRelation: "experimental", Source: "specs/numeric/gf96.t27" }, - { ID: "gf128", Name: "GF128 (rule-derived)", Bits: 128, SBits: 1, EBits: 49, MBits: 78, Bias: 281474976710655, PhiDistance: 0.01, Storage: "u128", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", UseCase: "OPEN R&D: phi-aligned binary128 alternative", GFRelation: "experimental", Source: "specs/numeric/gf128.t27" }, - { ID: "gf256", Name: "GF256 (rule-derived)", Bits: 256, SBits: 1, EBits: 97, MBits: 158, Bias: 79228162514264337593543950335, PhiDistance: 0.004, Storage: "u256_software", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", UseCase: "OPEN R&D: phi-aligned binary256 alternative", GFRelation: "experimental", Source: "specs/numeric/gf256.t27" }, - { ID: "gf512", Name: "GF512 (rule-derived)", Bits: 512, SBits: 1, EBits: 195, MBits: 316, Bias: -2, PhiDistance: 0.0009, Storage: "u512_software", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(511/phi^2)=195", UseCase: "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", GFRelation: "experimental", Source: "specs/numeric/gf512.t27" }, - { ID: "gf1024", Name: "GF1024 (rule-derived)", Bits: 1024, SBits: 1, EBits: 391, MBits: 632, Bias: -2, PhiDistance: 0.0006, Storage: "u1024_software", Cluster: "GoldenFloat", Status: "Open", Standard: "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", UseCase: "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", GFRelation: "experimental", Source: "specs/numeric/gf1024.t27" }, + { ID: "gf6", Name: "GF6 (predicted)", Bits: 6, SBits: 1, EBits: 2, MBits: 3, Bias: 1, PhiDistance: 0.05, Storage: "u8_packed", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; e=round(5/phi^2)=2, fills FP6 gap", UseCase: "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", GFRelation: "experimental", Source: "section12.5" }, + { ID: "gf128", Name: "GF128 (predicted)", Bits: 128, SBits: 1, EBits: 48, MBits: 79, Bias: 0, PhiDistance: 0.008, Storage: "u128", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; e=round(127/phi^2)=48 (Open: bias TBD)", UseCase: "OPEN R&D: phi-aligned binary128 alternative", GFRelation: "experimental", Source: "section12.5" }, + { ID: "gf256", Name: "GF256 (predicted)", Bits: 256, SBits: 1, EBits: 97, MBits: 158, Bias: 0, PhiDistance: 0.005, Storage: "u256_software", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", UseCase: "OPEN R&D: phi-aligned binary256 alternative", GFRelation: "experimental", Source: "section12.5; bias Open per skill" }, { ID: "gf8_bfp", Name: "GF8-BFP (block FP atop GF8)", Bits: 8, SBits: 1, EBits: 3, MBits: 4, Bias: 3, PhiDistance: 0.132, Storage: "u8_plus_shared_exp", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; per-tile shared exponent", UseCase: "OPEN R&D: LLM-quantization-friendly GF8", GFRelation: "experimental", Source: "section12.5" }, { ID: "gf_lns_hybrid", Name: "GF + LNS hybrid (dual-space)", Bits: 16, SBits: 1, EBits: 6, MBits: 9, Bias: 31, PhiDistance: 0.049, Storage: "u16_plus_lns_path", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; mul in log-space, accumulate Lucas-closed", UseCase: "OPEN R&D: dual-space arithmetic", GFRelation: "experimental", Source: "section12.5" }, { ID: "mxgf6", Name: "MXGF6 (microscaling GF6)", Bits: 6, SBits: 1, EBits: 2, MBits: 3, Bias: 1, PhiDistance: 0.05, Storage: "u8_packed_plus_e8m0", Cluster: "GoldenFloat", Status: "Experimental", Standard: "this work; OCP MX block + GF6", UseCase: "OPEN R&D: phi-aligned MX-6 candidate", GFRelation: "experimental", Source: "section12.5" }, diff --git a/gen/numeric/formats_catalog.h b/gen/numeric/formats_catalog.h index cbc24bca6..406d4394a 100644 --- a/gen/numeric/formats_catalog.h +++ b/gen/numeric/formats_catalog.h @@ -24,7 +24,7 @@ typedef struct { const char *source; } t27_format_t; -#define T27_FORMAT_COUNT 83 +#define T27_FORMAT_COUNT 77 static const t27_format_t T27_FORMATS[T27_FORMAT_COUNT] = { { "binary16", "binary16 (fp16, half)", 16u, 1u, 5u, 10u, 15, 0.118, "u16", "Ieee754Binary", "Verified", "IEEE 754-2008", "GPU activations, inference", "competitor", "IEEE 754-2008" }, @@ -68,18 +68,12 @@ static const t27_format_t T27_FORMATS[T27_FORMAT_COUNT] = { { "gf12", "GF12", 12u, 1u, 4u, 7u, 7, 0.047, "u16", "GoldenFloat", "Verified", "this work; L0/F3", "mid-range / audio", "self", "BENCH-007 (specs/numeric/gf12.t27)" }, { "gf16", "GF16", 16u, 1u, 6u, 9u, 31, 0.049, "u16", "GoldenFloat", "Verified", "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", "training and inference (production)", "self", "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)" }, { "gf20", "GF20", 20u, 1u, 7u, 12u, 63, 0.035, "u32", "GoldenFloat", "Experimental", "this work; 17-squared empirical PHI_BIAS=289", "high-precision edge", "self", "specs/numeric/gf20.t27 (spec only)" }, - { "gf24", "GF24", 24u, 1u, 9u, 14u, 255, 0.025, "u32", "GoldenFloat", "Experimental", "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", "server inference", "self", "specs/numeric/gf24.t27 (spec only)" }, + { "gf24", "GF24", 24u, 1u, 9u, 14u, 255, 0.025, "u32", "GoldenFloat", "Experimental", "this work; L15 PHI_BIAS=1364", "server inference", "self", "specs/numeric/gf24.t27 (spec only)" }, { "gf32", "GF32", 32u, 1u, 12u, 19u, 2047, 0.014, "u32", "GoldenFloat", "Verified", "this work; F0 resolved", "fp32 drop-in", "self", "BENCH-012 (specs/numeric/gf32.t27)" }, { "gf64", "GF64", 64u, 1u, 24u, 39u, 8388607, 0.003, "u64", "GoldenFloat", "Verified", "this work; EXP_MAX - BIAS", "scientific / double", "self", "BENCH-007b (specs/numeric/gf64.t27)" }, - { "gf6", "GF6 (rule-derived)", 6u, 1u, 2u, 3u, 1, 0.049, "u8_packed", "GoldenFloat", "Open", "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "specs/numeric/gf6.t27" }, - { "gf10", "GF10 (rule-derived)", 10u, 1u, 3u, 6u, 3, 0.118, "u16", "GoldenFloat", "Open", "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", "OPEN R&D: tight-precision activations", "experimental", "specs/numeric/gf10.t27" }, - { "gf14", "GF14 (rule-derived)", 14u, 1u, 5u, 8u, 15, 0.007, "u16", "GoldenFloat", "Open", "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", "OPEN R&D: drop-in for fp16 with tighter phi alignment", "experimental", "specs/numeric/gf14.t27" }, - { "gf48", "GF48 (rule-derived)", 48u, 1u, 18u, 29u, 131071, 0.003, "u64_padded", "GoldenFloat", "Open", "this work; rule e=round(47/phi^2)=18", "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", "experimental", "specs/numeric/gf48.t27" }, - { "gf96", "GF96 (rule-derived)", 96u, 1u, 36u, 59u, 34359738367, 0.008, "u128_padded", "GoldenFloat", "Open", "this work; rule e=round(95/phi^2)=36", "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", "experimental", "specs/numeric/gf96.t27" }, - { "gf128", "GF128 (rule-derived)", 128u, 1u, 49u, 78u, 281474976710655, 0.01, "u128", "GoldenFloat", "Open", "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "specs/numeric/gf128.t27" }, - { "gf256", "GF256 (rule-derived)", 256u, 1u, 97u, 158u, 79228162514264337593543950335, 0.004, "u256_software", "GoldenFloat", "Open", "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "specs/numeric/gf256.t27" }, - { "gf512", "GF512 (rule-derived)", 512u, 1u, 195u, 316u, -2, 0.0009, "u512_software", "GoldenFloat", "Open", "this work; rule e=round(511/phi^2)=195", "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", "experimental", "specs/numeric/gf512.t27" }, - { "gf1024", "GF1024 (rule-derived)", 1024u, 1u, 391u, 632u, -2, 0.0006, "u1024_software", "GoldenFloat", "Open", "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", "experimental", "specs/numeric/gf1024.t27" }, + { "gf6", "GF6 (predicted)", 6u, 1u, 2u, 3u, 1, 0.05, "u8_packed", "GoldenFloat", "Experimental", "this work; e=round(5/phi^2)=2, fills FP6 gap", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "section12.5" }, + { "gf128", "GF128 (predicted)", 128u, 1u, 48u, 79u, 0, 0.008, "u128", "GoldenFloat", "Experimental", "this work; e=round(127/phi^2)=48 (Open: bias TBD)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "section12.5" }, + { "gf256", "GF256 (predicted)", 256u, 1u, 97u, 158u, 0, 0.005, "u256_software", "GoldenFloat", "Experimental", "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "section12.5; bias Open per skill" }, { "gf8_bfp", "GF8-BFP (block FP atop GF8)", 8u, 1u, 3u, 4u, 3, 0.132, "u8_plus_shared_exp", "GoldenFloat", "Experimental", "this work; per-tile shared exponent", "OPEN R&D: LLM-quantization-friendly GF8", "experimental", "section12.5" }, { "gf_lns_hybrid", "GF + LNS hybrid (dual-space)", 16u, 1u, 6u, 9u, 31, 0.049, "u16_plus_lns_path", "GoldenFloat", "Experimental", "this work; mul in log-space, accumulate Lucas-closed", "OPEN R&D: dual-space arithmetic", "experimental", "section12.5" }, { "mxgf6", "MXGF6 (microscaling GF6)", 6u, 1u, 2u, 3u, 1, 0.05, "u8_packed_plus_e8m0", "GoldenFloat", "Experimental", "this work; OCP MX block + GF6", "OPEN R&D: phi-aligned MX-6 candidate", "experimental", "section12.5" }, diff --git a/gen/numeric/formats_catalog.hpp b/gen/numeric/formats_catalog.hpp index ad10d9442..9f97ccd62 100644 --- a/gen/numeric/formats_catalog.hpp +++ b/gen/numeric/formats_catalog.hpp @@ -25,7 +25,7 @@ struct Format { std::string_view source; }; -inline constexpr std::array FORMATS = {{ +inline constexpr std::array FORMATS = {{ Format{ "binary16", "binary16 (fp16, half)", 16u, 1u, 5u, 10u, 15, 0.118, "u16", "Ieee754Binary", "Verified", "IEEE 754-2008", "GPU activations, inference", "competitor", "IEEE 754-2008" }, Format{ "binary32", "binary32 (fp32, single)", 32u, 1u, 8u, 23u, 127, 0.27, "u32", "Ieee754Binary", "Verified", "IEEE 754-1985", "industry default", "competitor", "IEEE 754-1985" }, Format{ "binary64", "binary64 (fp64, double)", 64u, 1u, 11u, 52u, 1023, 0.406, "u64", "Ieee754Binary", "Verified", "IEEE 754-1985", "scientific computing", "competitor", "IEEE 754-1985" }, @@ -67,18 +67,12 @@ inline constexpr std::array FORMATS = {{ Format{ "gf12", "GF12", 12u, 1u, 4u, 7u, 7, 0.047, "u16", "GoldenFloat", "Verified", "this work; L0/F3", "mid-range / audio", "self", "BENCH-007 (specs/numeric/gf12.t27)" }, Format{ "gf16", "GF16", 16u, 1u, 6u, 9u, 31, 0.049, "u16", "GoldenFloat", "Verified", "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", "training and inference (production)", "self", "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)" }, Format{ "gf20", "GF20", 20u, 1u, 7u, 12u, 63, 0.035, "u32", "GoldenFloat", "Experimental", "this work; 17-squared empirical PHI_BIAS=289", "high-precision edge", "self", "specs/numeric/gf20.t27 (spec only)" }, - Format{ "gf24", "GF24", 24u, 1u, 9u, 14u, 255, 0.025, "u32", "GoldenFloat", "Experimental", "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", "server inference", "self", "specs/numeric/gf24.t27 (spec only)" }, + Format{ "gf24", "GF24", 24u, 1u, 9u, 14u, 255, 0.025, "u32", "GoldenFloat", "Experimental", "this work; L15 PHI_BIAS=1364", "server inference", "self", "specs/numeric/gf24.t27 (spec only)" }, Format{ "gf32", "GF32", 32u, 1u, 12u, 19u, 2047, 0.014, "u32", "GoldenFloat", "Verified", "this work; F0 resolved", "fp32 drop-in", "self", "BENCH-012 (specs/numeric/gf32.t27)" }, Format{ "gf64", "GF64", 64u, 1u, 24u, 39u, 8388607, 0.003, "u64", "GoldenFloat", "Verified", "this work; EXP_MAX - BIAS", "scientific / double", "self", "BENCH-007b (specs/numeric/gf64.t27)" }, - Format{ "gf6", "GF6 (rule-derived)", 6u, 1u, 2u, 3u, 1, 0.049, "u8_packed", "GoldenFloat", "Open", "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "specs/numeric/gf6.t27" }, - Format{ "gf10", "GF10 (rule-derived)", 10u, 1u, 3u, 6u, 3, 0.118, "u16", "GoldenFloat", "Open", "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", "OPEN R&D: tight-precision activations", "experimental", "specs/numeric/gf10.t27" }, - Format{ "gf14", "GF14 (rule-derived)", 14u, 1u, 5u, 8u, 15, 0.007, "u16", "GoldenFloat", "Open", "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", "OPEN R&D: drop-in for fp16 with tighter phi alignment", "experimental", "specs/numeric/gf14.t27" }, - Format{ "gf48", "GF48 (rule-derived)", 48u, 1u, 18u, 29u, 131071, 0.003, "u64_padded", "GoldenFloat", "Open", "this work; rule e=round(47/phi^2)=18", "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", "experimental", "specs/numeric/gf48.t27" }, - Format{ "gf96", "GF96 (rule-derived)", 96u, 1u, 36u, 59u, 34359738367, 0.008, "u128_padded", "GoldenFloat", "Open", "this work; rule e=round(95/phi^2)=36", "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", "experimental", "specs/numeric/gf96.t27" }, - Format{ "gf128", "GF128 (rule-derived)", 128u, 1u, 49u, 78u, 281474976710655, 0.01, "u128", "GoldenFloat", "Open", "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "specs/numeric/gf128.t27" }, - Format{ "gf256", "GF256 (rule-derived)", 256u, 1u, 97u, 158u, 79228162514264337593543950335, 0.004, "u256_software", "GoldenFloat", "Open", "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "specs/numeric/gf256.t27" }, - Format{ "gf512", "GF512 (rule-derived)", 512u, 1u, 195u, 316u, -2, 0.0009, "u512_software", "GoldenFloat", "Open", "this work; rule e=round(511/phi^2)=195", "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", "experimental", "specs/numeric/gf512.t27" }, - Format{ "gf1024", "GF1024 (rule-derived)", 1024u, 1u, 391u, 632u, -2, 0.0006, "u1024_software", "GoldenFloat", "Open", "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", "experimental", "specs/numeric/gf1024.t27" }, + Format{ "gf6", "GF6 (predicted)", 6u, 1u, 2u, 3u, 1, 0.05, "u8_packed", "GoldenFloat", "Experimental", "this work; e=round(5/phi^2)=2, fills FP6 gap", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "section12.5" }, + Format{ "gf128", "GF128 (predicted)", 128u, 1u, 48u, 79u, 0, 0.008, "u128", "GoldenFloat", "Experimental", "this work; e=round(127/phi^2)=48 (Open: bias TBD)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "section12.5" }, + Format{ "gf256", "GF256 (predicted)", 256u, 1u, 97u, 158u, 0, 0.005, "u256_software", "GoldenFloat", "Experimental", "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "section12.5; bias Open per skill" }, Format{ "gf8_bfp", "GF8-BFP (block FP atop GF8)", 8u, 1u, 3u, 4u, 3, 0.132, "u8_plus_shared_exp", "GoldenFloat", "Experimental", "this work; per-tile shared exponent", "OPEN R&D: LLM-quantization-friendly GF8", "experimental", "section12.5" }, Format{ "gf_lns_hybrid", "GF + LNS hybrid (dual-space)", 16u, 1u, 6u, 9u, 31, 0.049, "u16_plus_lns_path", "GoldenFloat", "Experimental", "this work; mul in log-space, accumulate Lucas-closed", "OPEN R&D: dual-space arithmetic", "experimental", "section12.5" }, Format{ "mxgf6", "MXGF6 (microscaling GF6)", 6u, 1u, 2u, 3u, 1, 0.05, "u8_packed_plus_e8m0", "GoldenFloat", "Experimental", "this work; OCP MX block + GF6", "OPEN R&D: phi-aligned MX-6 candidate", "experimental", "section12.5" }, diff --git a/gen/numeric/formats_catalog.json b/gen/numeric/formats_catalog.json index dbd074e91..08f22450b 100644 --- a/gen/numeric/formats_catalog.json +++ b/gen/numeric/formats_catalog.json @@ -1,5 +1,5 @@ { - "count": 83, + "count": 77, "formats": [ { "id": "binary16", @@ -9,7 +9,6 @@ "e_bits": 5, "m_bits": 10, "bias": 15, - "bias_formula": "15", "phi_distance": 0.118, "storage": "u16", "cluster": "Ieee754Binary", @@ -27,7 +26,6 @@ "e_bits": 8, "m_bits": 23, "bias": 127, - "bias_formula": "127", "phi_distance": 0.27, "storage": "u32", "cluster": "Ieee754Binary", @@ -45,7 +43,6 @@ "e_bits": 11, "m_bits": 52, "bias": 1023, - "bias_formula": "1023", "phi_distance": 0.406, "storage": "u64", "cluster": "Ieee754Binary", @@ -63,7 +60,6 @@ "e_bits": 15, "m_bits": 112, "bias": 16383, - "bias_formula": "16383", "phi_distance": 0.484, "storage": "u128", "cluster": "Ieee754Binary", @@ -81,7 +77,6 @@ "e_bits": 19, "m_bits": 236, "bias": 262143, - "bias_formula": "262143", "phi_distance": 0.538, "storage": "u256_software", "cluster": "Ieee754Binary", @@ -99,7 +94,6 @@ "e_bits": 11, "m_bits": 20, "bias": 101, - "bias_formula": "101", "phi_distance": -1.0, "storage": "u32", "cluster": "Ieee754Decimal", @@ -117,7 +111,6 @@ "e_bits": 13, "m_bits": 50, "bias": 398, - "bias_formula": "398", "phi_distance": -1.0, "storage": "u64", "cluster": "Ieee754Decimal", @@ -135,7 +128,6 @@ "e_bits": 17, "m_bits": 110, "bias": 6176, - "bias_formula": "6176", "phi_distance": -1.0, "storage": "u128", "cluster": "Ieee754Decimal", @@ -153,7 +145,6 @@ "e_bits": 15, "m_bits": 64, "bias": 16383, - "bias_formula": "16383", "phi_distance": -1.0, "storage": "u80_padded", "cluster": "ExtendedFloat", @@ -171,7 +162,6 @@ "e_bits": 22, "m_bits": 104, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "two_u64", "cluster": "ExtendedFloat", @@ -189,7 +179,6 @@ "e_bits": 44, "m_bits": 208, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "four_u64", "cluster": "ExtendedFloat", @@ -207,7 +196,6 @@ "e_bits": 8, "m_bits": 7, "bias": 127, - "bias_formula": "127", "phi_distance": 0.525, "storage": "u16", "cluster": "MlLowPrecision", @@ -225,7 +213,6 @@ "e_bits": 8, "m_bits": 10, "bias": 127, - "bias_formula": "127", "phi_distance": 0.27, "storage": "u32_padded", "cluster": "MlLowPrecision", @@ -243,7 +230,6 @@ "e_bits": 4, "m_bits": 3, "bias": 7, - "bias_formula": "7", "phi_distance": 0.715, "storage": "u8", "cluster": "MlLowPrecision", @@ -261,7 +247,6 @@ "e_bits": 5, "m_bits": 2, "bias": 15, - "bias_formula": "15", "phi_distance": 1.882, "storage": "u8", "cluster": "MlLowPrecision", @@ -279,7 +264,6 @@ "e_bits": 3, "m_bits": 2, "bias": 3, - "bias_formula": "3", "phi_distance": 0.882, "storage": "u8_packed", "cluster": "MlLowPrecision", @@ -297,7 +281,6 @@ "e_bits": 2, "m_bits": 3, "bias": 1, - "bias_formula": "1", "phi_distance": 0.049, "storage": "u8_packed", "cluster": "MlLowPrecision", @@ -315,7 +298,6 @@ "e_bits": 2, "m_bits": 1, "bias": 1, - "bias_formula": "1", "phi_distance": 1.382, "storage": "u8_packed", "cluster": "MlLowPrecision", @@ -333,7 +315,6 @@ "e_bits": 4, "m_bits": 3, "bias": 7, - "bias_formula": "7", "phi_distance": 0.715, "storage": "u8_plus_shared_e8m0", "cluster": "Microscaling", @@ -351,7 +332,6 @@ "e_bits": 3, "m_bits": 2, "bias": 3, - "bias_formula": "3", "phi_distance": 0.882, "storage": "u8_packed_plus_e8m0", "cluster": "Microscaling", @@ -369,7 +349,6 @@ "e_bits": 2, "m_bits": 1, "bias": 1, - "bias_formula": "1", "phi_distance": 1.382, "storage": "u8_packed_plus_e8m0", "cluster": "Microscaling", @@ -387,7 +366,6 @@ "e_bits": 0, "m_bits": 4, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u8_packed", "cluster": "QuantTuned", @@ -405,7 +383,6 @@ "e_bits": 8, "m_bits": 7, "bias": 127, - "bias_formula": "127", "phi_distance": -1.0, "storage": "u16_plus_tensor_shift", "cluster": "QuantTuned", @@ -423,7 +400,6 @@ "e_bits": 2, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u8", "cluster": "PositUnumIII", @@ -441,7 +417,6 @@ "e_bits": 2, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u16", "cluster": "PositUnumIII", @@ -459,7 +434,6 @@ "e_bits": 2, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u32", "cluster": "PositUnumIII", @@ -477,7 +451,6 @@ "e_bits": 2, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u64", "cluster": "PositUnumIII", @@ -495,7 +468,6 @@ "e_bits": 0, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u8", "cluster": "PositUnumIII", @@ -513,7 +485,6 @@ "e_bits": 0, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u16", "cluster": "PositUnumIII", @@ -531,7 +502,6 @@ "e_bits": 0, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u32", "cluster": "PositUnumIII", @@ -549,7 +519,6 @@ "e_bits": 0, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u64", "cluster": "PositUnumIII", @@ -567,7 +536,6 @@ "e_bits": 7, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u8", "cluster": "Lns", @@ -585,7 +553,6 @@ "e_bits": 15, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u16", "cluster": "Lns", @@ -603,7 +570,6 @@ "e_bits": 31, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u32", "cluster": "Lns", @@ -621,7 +587,6 @@ "e_bits": 63, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u64", "cluster": "Lns", @@ -639,7 +604,6 @@ "e_bits": 0, "m_bits": 2, "bias": 0, - "bias_formula": "0", "phi_distance": 0.0, "storage": "u2", "cluster": "GoldenFloat", @@ -657,7 +621,6 @@ "e_bits": 1, "m_bits": 2, "bias": 0, - "bias_formula": "0", "phi_distance": 0.118, "storage": "u8", "cluster": "GoldenFloat", @@ -675,7 +638,6 @@ "e_bits": 3, "m_bits": 4, "bias": 3, - "bias_formula": "3", "phi_distance": 0.132, "storage": "u8", "cluster": "GoldenFloat", @@ -693,7 +655,6 @@ "e_bits": 4, "m_bits": 7, "bias": 7, - "bias_formula": "7", "phi_distance": 0.047, "storage": "u16", "cluster": "GoldenFloat", @@ -711,7 +672,6 @@ "e_bits": 6, "m_bits": 9, "bias": 31, - "bias_formula": "31", "phi_distance": 0.049, "storage": "u16", "cluster": "GoldenFloat", @@ -729,7 +689,6 @@ "e_bits": 7, "m_bits": 12, "bias": 63, - "bias_formula": "63", "phi_distance": 0.035, "storage": "u32", "cluster": "GoldenFloat", @@ -747,12 +706,11 @@ "e_bits": 9, "m_bits": 14, "bias": 255, - "bias_formula": "255", "phi_distance": 0.025, "storage": "u32", "cluster": "GoldenFloat", "status": "Experimental", - "standard": "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", + "standard": "this work; L15 PHI_BIAS=1364", "use_case": "server inference", "gf_relation": "self", "source": "specs/numeric/gf24.t27 (spec only)" @@ -765,7 +723,6 @@ "e_bits": 12, "m_bits": 19, "bias": 2047, - "bias_formula": "2047", "phi_distance": 0.014, "storage": "u32", "cluster": "GoldenFloat", @@ -783,7 +740,6 @@ "e_bits": 24, "m_bits": 39, "bias": 8388607, - "bias_formula": "8388607", "phi_distance": 0.003, "storage": "u64", "cluster": "GoldenFloat", @@ -795,165 +751,54 @@ }, { "id": "gf6", - "name": "GF6 (rule-derived)", + "name": "GF6 (predicted)", "bits": 6, "s_bits": 1, "e_bits": 2, "m_bits": 3, "bias": 1, - "bias_formula": "1", - "phi_distance": 0.049, + "phi_distance": 0.05, "storage": "u8_packed", "cluster": "GoldenFloat", - "status": "Open", - "standard": "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", + "status": "Experimental", + "standard": "this work; e=round(5/phi^2)=2, fills FP6 gap", "use_case": "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "gf_relation": "experimental", - "source": "specs/numeric/gf6.t27" - }, - { - "id": "gf10", - "name": "GF10 (rule-derived)", - "bits": 10, - "s_bits": 1, - "e_bits": 3, - "m_bits": 6, - "bias": 3, - "bias_formula": "3", - "phi_distance": 0.118, - "storage": "u16", - "cluster": "GoldenFloat", - "status": "Open", - "standard": "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", - "use_case": "OPEN R&D: tight-precision activations", - "gf_relation": "experimental", - "source": "specs/numeric/gf10.t27" - }, - { - "id": "gf14", - "name": "GF14 (rule-derived)", - "bits": 14, - "s_bits": 1, - "e_bits": 5, - "m_bits": 8, - "bias": 15, - "bias_formula": "15", - "phi_distance": 0.007, - "storage": "u16", - "cluster": "GoldenFloat", - "status": "Open", - "standard": "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", - "use_case": "OPEN R&D: drop-in for fp16 with tighter phi alignment", - "gf_relation": "experimental", - "source": "specs/numeric/gf14.t27" - }, - { - "id": "gf48", - "name": "GF48 (rule-derived)", - "bits": 48, - "s_bits": 1, - "e_bits": 18, - "m_bits": 29, - "bias": 131071, - "bias_formula": "131071", - "phi_distance": 0.003, - "storage": "u64_padded", - "cluster": "GoldenFloat", - "status": "Open", - "standard": "this work; rule e=round(47/phi^2)=18", - "use_case": "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", - "gf_relation": "experimental", - "source": "specs/numeric/gf48.t27" - }, - { - "id": "gf96", - "name": "GF96 (rule-derived)", - "bits": 96, - "s_bits": 1, - "e_bits": 36, - "m_bits": 59, - "bias": 34359738367, - "bias_formula": "34359738367", - "phi_distance": 0.008, - "storage": "u128_padded", - "cluster": "GoldenFloat", - "status": "Open", - "standard": "this work; rule e=round(95/phi^2)=36", - "use_case": "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", - "gf_relation": "experimental", - "source": "specs/numeric/gf96.t27" + "source": "section12.5" }, { "id": "gf128", - "name": "GF128 (rule-derived)", + "name": "GF128 (predicted)", "bits": 128, "s_bits": 1, - "e_bits": 49, - "m_bits": 78, - "bias": 281474976710655, - "bias_formula": "281474976710655", - "phi_distance": 0.01, + "e_bits": 48, + "m_bits": 79, + "bias": 0, + "phi_distance": 0.008, "storage": "u128", "cluster": "GoldenFloat", - "status": "Open", - "standard": "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", + "status": "Experimental", + "standard": "this work; e=round(127/phi^2)=48 (Open: bias TBD)", "use_case": "OPEN R&D: phi-aligned binary128 alternative", "gf_relation": "experimental", - "source": "specs/numeric/gf128.t27" + "source": "section12.5" }, { "id": "gf256", - "name": "GF256 (rule-derived)", + "name": "GF256 (predicted)", "bits": 256, "s_bits": 1, "e_bits": 97, "m_bits": 158, - "bias": 79228162514264337593543950335, - "bias_formula": "79228162514264337593543950335", - "phi_distance": 0.004, + "bias": 0, + "phi_distance": 0.005, "storage": "u256_software", "cluster": "GoldenFloat", - "status": "Open", - "standard": "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", + "status": "Experimental", + "standard": "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", "use_case": "OPEN R&D: phi-aligned binary256 alternative", "gf_relation": "experimental", - "source": "specs/numeric/gf256.t27" - }, - { - "id": "gf512", - "name": "GF512 (rule-derived)", - "bits": 512, - "s_bits": 1, - "e_bits": 195, - "m_bits": 316, - "bias": -2, - "bias_formula": "2^194-1", - "phi_distance": 0.0009, - "storage": "u512_software", - "cluster": "GoldenFloat", - "status": "Open", - "standard": "this work; rule e=round(511/phi^2)=195", - "use_case": "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", - "gf_relation": "experimental", - "source": "specs/numeric/gf512.t27" - }, - { - "id": "gf1024", - "name": "GF1024 (rule-derived)", - "bits": 1024, - "s_bits": 1, - "e_bits": 391, - "m_bits": 632, - "bias": -2, - "bias_formula": "2^390-1", - "phi_distance": 0.0006, - "storage": "u1024_software", - "cluster": "GoldenFloat", - "status": "Open", - "standard": "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", - "use_case": "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", - "gf_relation": "experimental", - "source": "specs/numeric/gf1024.t27" + "source": "section12.5; bias Open per skill" }, { "id": "gf8_bfp", @@ -963,7 +808,6 @@ "e_bits": 3, "m_bits": 4, "bias": 3, - "bias_formula": "3", "phi_distance": 0.132, "storage": "u8_plus_shared_exp", "cluster": "GoldenFloat", @@ -981,7 +825,6 @@ "e_bits": 6, "m_bits": 9, "bias": 31, - "bias_formula": "31", "phi_distance": 0.049, "storage": "u16_plus_lns_path", "cluster": "GoldenFloat", @@ -999,7 +842,6 @@ "e_bits": 2, "m_bits": 3, "bias": 1, - "bias_formula": "1", "phi_distance": 0.05, "storage": "u8_packed_plus_e8m0", "cluster": "GoldenFloat", @@ -1017,7 +859,6 @@ "e_bits": 1, "m_bits": 2, "bias": 0, - "bias_formula": "0", "phi_distance": 0.118, "storage": "u8_packed_plus_e8m0", "cluster": "GoldenFloat", @@ -1035,7 +876,6 @@ "e_bits": 0, "m_bits": 3, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u8_packed", "cluster": "IntegerFixed", @@ -1053,7 +893,6 @@ "e_bits": 0, "m_bits": 7, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u8", "cluster": "IntegerFixed", @@ -1071,7 +910,6 @@ "e_bits": 0, "m_bits": 15, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u16", "cluster": "IntegerFixed", @@ -1089,7 +927,6 @@ "e_bits": 0, "m_bits": 31, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u32", "cluster": "IntegerFixed", @@ -1107,7 +944,6 @@ "e_bits": 0, "m_bits": 63, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u64", "cluster": "IntegerFixed", @@ -1125,7 +961,6 @@ "e_bits": 0, "m_bits": 127, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u128", "cluster": "IntegerFixed", @@ -1143,7 +978,6 @@ "e_bits": 0, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "varies", "cluster": "IntegerFixed", @@ -1161,7 +995,6 @@ "e_bits": 0, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u4_per_digit", "cluster": "IntegerFixed", @@ -1179,7 +1012,6 @@ "e_bits": 7, "m_bits": 24, "bias": 64, - "bias_formula": "64", "phi_distance": -1.0, "storage": "u32", "cluster": "HistoricalVendor", @@ -1197,7 +1029,6 @@ "e_bits": 7, "m_bits": 56, "bias": 64, - "bias_formula": "64", "phi_distance": -1.0, "storage": "u64", "cluster": "HistoricalVendor", @@ -1215,7 +1046,6 @@ "e_bits": 7, "m_bits": 120, "bias": 64, - "bias_formula": "64", "phi_distance": -1.0, "storage": "u128", "cluster": "HistoricalVendor", @@ -1233,7 +1063,6 @@ "e_bits": 8, "m_bits": 23, "bias": 129, - "bias_formula": "129", "phi_distance": -1.0, "storage": "u32", "cluster": "HistoricalVendor", @@ -1251,7 +1080,6 @@ "e_bits": 8, "m_bits": 55, "bias": 129, - "bias_formula": "129", "phi_distance": -1.0, "storage": "u64", "cluster": "HistoricalVendor", @@ -1269,7 +1097,6 @@ "e_bits": 8, "m_bits": 23, "bias": 128, - "bias_formula": "128", "phi_distance": -1.0, "storage": "u32", "cluster": "HistoricalVendor", @@ -1287,7 +1114,6 @@ "e_bits": 8, "m_bits": 55, "bias": 128, - "bias_formula": "128", "phi_distance": -1.0, "storage": "u64", "cluster": "HistoricalVendor", @@ -1305,7 +1131,6 @@ "e_bits": 11, "m_bits": 52, "bias": 1024, - "bias_formula": "1024", "phi_distance": -1.0, "storage": "u64", "cluster": "HistoricalVendor", @@ -1323,7 +1148,6 @@ "e_bits": 15, "m_bits": 112, "bias": 16384, - "bias_formula": "16384", "phi_distance": -1.0, "storage": "u128", "cluster": "HistoricalVendor", @@ -1341,7 +1165,6 @@ "e_bits": 15, "m_bits": 48, "bias": 16384, - "bias_formula": "16384", "phi_distance": -1.0, "storage": "u64", "cluster": "HistoricalVendor", @@ -1359,7 +1182,6 @@ "e_bits": 0, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "varies", "cluster": "Theoretical", @@ -1377,7 +1199,6 @@ "e_bits": 0, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "varies", "cluster": "Theoretical", @@ -1395,7 +1216,6 @@ "e_bits": 0, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "lookup_table", "cluster": "Theoretical", @@ -1413,7 +1233,6 @@ "e_bits": 0, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "varies", "cluster": "Theoretical", @@ -1431,7 +1250,6 @@ "e_bits": 0, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "varies", "cluster": "CompressionTrick", @@ -1449,7 +1267,6 @@ "e_bits": 0, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "varies", "cluster": "CompressionTrick", @@ -1467,7 +1284,6 @@ "e_bits": 0, "m_bits": 7, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "u8_plus_fp32_scale", "cluster": "CompressionTrick", @@ -1485,7 +1301,6 @@ "e_bits": 0, "m_bits": 0, "bias": 0, - "bias_formula": "0", "phi_distance": -1.0, "storage": "varies", "cluster": "CompressionTrick", diff --git a/gen/numeric/formats_catalog.kt b/gen/numeric/formats_catalog.kt index fdbc4619c..3d5ec2604 100644 --- a/gen/numeric/formats_catalog.kt +++ b/gen/numeric/formats_catalog.kt @@ -62,18 +62,12 @@ val FORMATS: List = listOf( Format("gf12", "GF12", 12, 1, 4, 7, 7L, 0.047, "u16", "GoldenFloat", "Verified", "this work; L0/F3", "mid-range / audio", "self", "BENCH-007 (specs/numeric/gf12.t27)"), Format("gf16", "GF16", 16, 1, 6, 9, 31L, 0.049, "u16", "GoldenFloat", "Verified", "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", "training and inference (production)", "self", "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)"), Format("gf20", "GF20", 20, 1, 7, 12, 63L, 0.035, "u32", "GoldenFloat", "Experimental", "this work; 17-squared empirical PHI_BIAS=289", "high-precision edge", "self", "specs/numeric/gf20.t27 (spec only)"), - Format("gf24", "GF24", 24, 1, 9, 14, 255L, 0.025, "u32", "GoldenFloat", "Experimental", "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", "server inference", "self", "specs/numeric/gf24.t27 (spec only)"), + Format("gf24", "GF24", 24, 1, 9, 14, 255L, 0.025, "u32", "GoldenFloat", "Experimental", "this work; L15 PHI_BIAS=1364", "server inference", "self", "specs/numeric/gf24.t27 (spec only)"), Format("gf32", "GF32", 32, 1, 12, 19, 2047L, 0.014, "u32", "GoldenFloat", "Verified", "this work; F0 resolved", "fp32 drop-in", "self", "BENCH-012 (specs/numeric/gf32.t27)"), Format("gf64", "GF64", 64, 1, 24, 39, 8388607L, 0.003, "u64", "GoldenFloat", "Verified", "this work; EXP_MAX - BIAS", "scientific / double", "self", "BENCH-007b (specs/numeric/gf64.t27)"), - Format("gf6", "GF6 (rule-derived)", 6, 1, 2, 3, 1L, 0.049, "u8_packed", "GoldenFloat", "Open", "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "specs/numeric/gf6.t27"), - Format("gf10", "GF10 (rule-derived)", 10, 1, 3, 6, 3L, 0.118, "u16", "GoldenFloat", "Open", "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", "OPEN R&D: tight-precision activations", "experimental", "specs/numeric/gf10.t27"), - Format("gf14", "GF14 (rule-derived)", 14, 1, 5, 8, 15L, 0.007, "u16", "GoldenFloat", "Open", "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", "OPEN R&D: drop-in for fp16 with tighter phi alignment", "experimental", "specs/numeric/gf14.t27"), - Format("gf48", "GF48 (rule-derived)", 48, 1, 18, 29, 131071L, 0.003, "u64_padded", "GoldenFloat", "Open", "this work; rule e=round(47/phi^2)=18", "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", "experimental", "specs/numeric/gf48.t27"), - Format("gf96", "GF96 (rule-derived)", 96, 1, 36, 59, 34359738367L, 0.008, "u128_padded", "GoldenFloat", "Open", "this work; rule e=round(95/phi^2)=36", "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", "experimental", "specs/numeric/gf96.t27"), - Format("gf128", "GF128 (rule-derived)", 128, 1, 49, 78, 281474976710655L, 0.01, "u128", "GoldenFloat", "Open", "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "specs/numeric/gf128.t27"), - Format("gf256", "GF256 (rule-derived)", 256, 1, 97, 158, 79228162514264337593543950335L, 0.004, "u256_software", "GoldenFloat", "Open", "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "specs/numeric/gf256.t27"), - Format("gf512", "GF512 (rule-derived)", 512, 1, 195, 316, -2L, 0.0009, "u512_software", "GoldenFloat", "Open", "this work; rule e=round(511/phi^2)=195", "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", "experimental", "specs/numeric/gf512.t27"), - Format("gf1024", "GF1024 (rule-derived)", 1024, 1, 391, 632, -2L, 0.0006, "u1024_software", "GoldenFloat", "Open", "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", "experimental", "specs/numeric/gf1024.t27"), + Format("gf6", "GF6 (predicted)", 6, 1, 2, 3, 1L, 0.05, "u8_packed", "GoldenFloat", "Experimental", "this work; e=round(5/phi^2)=2, fills FP6 gap", "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", "experimental", "section12.5"), + Format("gf128", "GF128 (predicted)", 128, 1, 48, 79, 0L, 0.008, "u128", "GoldenFloat", "Experimental", "this work; e=round(127/phi^2)=48 (Open: bias TBD)", "OPEN R&D: phi-aligned binary128 alternative", "experimental", "section12.5"), + Format("gf256", "GF256 (predicted)", 256, 1, 97, 158, 0L, 0.005, "u256_software", "GoldenFloat", "Experimental", "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", "OPEN R&D: phi-aligned binary256 alternative", "experimental", "section12.5; bias Open per skill"), Format("gf8_bfp", "GF8-BFP (block FP atop GF8)", 8, 1, 3, 4, 3L, 0.132, "u8_plus_shared_exp", "GoldenFloat", "Experimental", "this work; per-tile shared exponent", "OPEN R&D: LLM-quantization-friendly GF8", "experimental", "section12.5"), Format("gf_lns_hybrid", "GF + LNS hybrid (dual-space)", 16, 1, 6, 9, 31L, 0.049, "u16_plus_lns_path", "GoldenFloat", "Experimental", "this work; mul in log-space, accumulate Lucas-closed", "OPEN R&D: dual-space arithmetic", "experimental", "section12.5"), Format("mxgf6", "MXGF6 (microscaling GF6)", 6, 1, 2, 3, 1L, 0.05, "u8_packed_plus_e8m0", "GoldenFloat", "Experimental", "this work; OCP MX block + GF6", "OPEN R&D: phi-aligned MX-6 candidate", "experimental", "section12.5"), diff --git a/gen/numeric/formats_catalog.md b/gen/numeric/formats_catalog.md index eda266d90..5ae411efb 100644 --- a/gen/numeric/formats_catalog.md +++ b/gen/numeric/formats_catalog.md @@ -7,7 +7,7 @@ Status labels: Verified | EmpiricalFit | Open | Risk | Retracted | Experimental | Historical. phi_distance: lower = more phi-aligned; -1 sentinel = undefined (non-radix-2 or non-FP). -Total formats: 83. +Total formats: 77. | ID | Bits | S:E:M | Bias | phi_dist | Storage | Cluster | Status | Standard | Use case | GF rel. | |----|-----:|------|-----:|--------:|---------|---------|--------|----------|----------|---------| @@ -52,18 +52,12 @@ Total formats: 83. | gf12 | 12 | 1:4:7 | 7 | 0.047 | u16 | GoldenFloat | Verified | this work; L0/F3 | mid-range / audio | self | | gf16 | 16 | 1:6:9 | 31 | 0.049 | u16 | GoldenFloat | Verified | this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7 | training and inference (production) | self | | gf20 | 20 | 1:7:12 | 63 | 0.035 | u32 | GoldenFloat | Experimental | this work; 17-squared empirical PHI_BIAS=289 | high-precision edge | self | -| gf24 | 24 | 1:9:14 | 255 | 0.025 | u32 | GoldenFloat | Experimental | this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN | server inference | self | +| gf24 | 24 | 1:9:14 | 255 | 0.025 | u32 | GoldenFloat | Experimental | this work; L15 PHI_BIAS=1364 | server inference | self | | gf32 | 32 | 1:12:19 | 2047 | 0.014 | u32 | GoldenFloat | Verified | this work; F0 resolved | fp32 drop-in | self | | gf64 | 64 | 1:24:39 | 8388607 | 0.003 | u64 | GoldenFloat | Verified | this work; EXP_MAX - BIAS | scientific / double | self | -| gf6 | 6 | 1:2:3 | 1 | 0.049 | u8_packed | GoldenFloat | Open | this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge | OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint | experimental | -| gf10 | 10 | 1:3:6 | 3 | 0.118 | u16 | GoldenFloat | Open | this work; rule e=round(9/phi^2)=3; bridge GF8-GF12 | OPEN R&D: tight-precision activations | experimental | -| gf14 | 14 | 1:5:8 | 15 | 0.007 | u16 | GoldenFloat | Open | this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48 | OPEN R&D: drop-in for fp16 with tighter phi alignment | experimental | -| gf48 | 48 | 1:18:29 | 131071 | 0.003 | u64_padded | GoldenFloat | Open | this work; rule e=round(47/phi^2)=18 | OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs | experimental | -| gf96 | 96 | 1:36:59 | 34359738367 | 0.008 | u128_padded | GoldenFloat | Open | this work; rule e=round(95/phi^2)=36 | OPEN R&D: between GF64 and GF128 (phi-aligned extended) | experimental | -| gf128 | 128 | 1:49:78 | 281474976710655 | 0.010 | u128 | GoldenFloat | Open | this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48) | OPEN R&D: phi-aligned binary128 alternative | experimental | -| gf256 | 256 | 1:97:158 | 79228162514264337593543950335 | 0.004 | u256_software | GoldenFloat | Open | this work; rule e=round(255/phi^2)=97; normative bias=2^96-1 | OPEN R&D: phi-aligned binary256 alternative | experimental | -| gf512 | 512 | 1:195:316 | -2 | 0.001 | u512_software | GoldenFloat | Open | this work; rule e=round(511/phi^2)=195 | OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL) | experimental | -| gf1024 | 1024 | 1:391:632 | -2 | 0.001 | u1024_software | GoldenFloat | Open | this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder | OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL) | experimental | +| gf6 | 6 | 1:2:3 | 1 | 0.050 | u8_packed | GoldenFloat | Experimental | this work; e=round(5/phi^2)=2, fills FP6 gap | OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint | experimental | +| gf128 | 128 | 1:48:79 | 0 | 0.008 | u128 | GoldenFloat | Experimental | this work; e=round(127/phi^2)=48 (Open: bias TBD) | OPEN R&D: phi-aligned binary128 alternative | experimental | +| gf256 | 256 | 1:97:158 | 0 | 0.005 | u256_software | GoldenFloat | Experimental | this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed) | OPEN R&D: phi-aligned binary256 alternative | experimental | | gf8_bfp | 8 | 1:3:4 | 3 | 0.132 | u8_plus_shared_exp | GoldenFloat | Experimental | this work; per-tile shared exponent | OPEN R&D: LLM-quantization-friendly GF8 | experimental | | gf_lns_hybrid | 16 | 1:6:9 | 31 | 0.049 | u16_plus_lns_path | GoldenFloat | Experimental | this work; mul in log-space, accumulate Lucas-closed | OPEN R&D: dual-space arithmetic | experimental | | mxgf6 | 6 | 1:2:3 | 1 | 0.050 | u8_packed_plus_e8m0 | GoldenFloat | Experimental | this work; OCP MX block + GF6 | OPEN R&D: phi-aligned MX-6 candidate | experimental | diff --git a/gen/numeric/formats_catalog.ml b/gen/numeric/formats_catalog.ml index 9d103099c..b0bfa0e14 100644 --- a/gen/numeric/formats_catalog.ml +++ b/gen/numeric/formats_catalog.ml @@ -61,18 +61,12 @@ let formats : format list = [ { id = "gf12"; name = "GF12"; bits = 12; s_bits = 1; e_bits = 4; m_bits = 7; bias = 7; phi_distance = 0.047; storage = "u16"; cluster = "GoldenFloat"; status = "Verified"; standard = "this work; L0/F3"; use_case = "mid-range / audio"; gf_relation = "self"; source = "BENCH-007 (specs/numeric/gf12.t27)" }; { id = "gf16"; name = "GF16"; bits = 16; s_bits = 1; e_bits = 6; m_bits = 9; bias = 31; phi_distance = 0.049; storage = "u16"; cluster = "GoldenFloat"; status = "Verified"; standard = "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7"; use_case = "training and inference (production)"; gf_relation = "self"; source = "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)" }; { id = "gf20"; name = "GF20"; bits = 20; s_bits = 1; e_bits = 7; m_bits = 12; bias = 63; phi_distance = 0.035; storage = "u32"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; 17-squared empirical PHI_BIAS=289"; use_case = "high-precision edge"; gf_relation = "self"; source = "specs/numeric/gf20.t27 (spec only)" }; - { id = "gf24"; name = "GF24"; bits = 24; s_bits = 1; e_bits = 9; m_bits = 14; bias = 255; phi_distance = 0.025; storage = "u32"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN"; use_case = "server inference"; gf_relation = "self"; source = "specs/numeric/gf24.t27 (spec only)" }; + { id = "gf24"; name = "GF24"; bits = 24; s_bits = 1; e_bits = 9; m_bits = 14; bias = 255; phi_distance = 0.025; storage = "u32"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; L15 PHI_BIAS=1364"; use_case = "server inference"; gf_relation = "self"; source = "specs/numeric/gf24.t27 (spec only)" }; { id = "gf32"; name = "GF32"; bits = 32; s_bits = 1; e_bits = 12; m_bits = 19; bias = 2047; phi_distance = 0.014; storage = "u32"; cluster = "GoldenFloat"; status = "Verified"; standard = "this work; F0 resolved"; use_case = "fp32 drop-in"; gf_relation = "self"; source = "BENCH-012 (specs/numeric/gf32.t27)" }; { id = "gf64"; name = "GF64"; bits = 64; s_bits = 1; e_bits = 24; m_bits = 39; bias = 8388607; phi_distance = 0.003; storage = "u64"; cluster = "GoldenFloat"; status = "Verified"; standard = "this work; EXP_MAX - BIAS"; use_case = "scientific / double"; gf_relation = "self"; source = "BENCH-007b (specs/numeric/gf64.t27)" }; - { id = "gf6"; name = "GF6 (rule-derived)"; bits = 6; s_bits = 1; e_bits = 2; m_bits = 3; bias = 1; phi_distance = 0.049; storage = "u8_packed"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge"; use_case = "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint"; gf_relation = "experimental"; source = "specs/numeric/gf6.t27" }; - { id = "gf10"; name = "GF10 (rule-derived)"; bits = 10; s_bits = 1; e_bits = 3; m_bits = 6; bias = 3; phi_distance = 0.118; storage = "u16"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12"; use_case = "OPEN R&D: tight-precision activations"; gf_relation = "experimental"; source = "specs/numeric/gf10.t27" }; - { id = "gf14"; name = "GF14 (rule-derived)"; bits = 14; s_bits = 1; e_bits = 5; m_bits = 8; bias = 15; phi_distance = 0.007; storage = "u16"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48"; use_case = "OPEN R&D: drop-in for fp16 with tighter phi alignment"; gf_relation = "experimental"; source = "specs/numeric/gf14.t27" }; - { id = "gf48"; name = "GF48 (rule-derived)"; bits = 48; s_bits = 1; e_bits = 18; m_bits = 29; bias = 131071; phi_distance = 0.003; storage = "u64_padded"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(47/phi^2)=18"; use_case = "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs"; gf_relation = "experimental"; source = "specs/numeric/gf48.t27" }; - { id = "gf96"; name = "GF96 (rule-derived)"; bits = 96; s_bits = 1; e_bits = 36; m_bits = 59; bias = 34359738367; phi_distance = 0.008; storage = "u128_padded"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(95/phi^2)=36"; use_case = "OPEN R&D: between GF64 and GF128 (phi-aligned extended)"; gf_relation = "experimental"; source = "specs/numeric/gf96.t27" }; - { id = "gf128"; name = "GF128 (rule-derived)"; bits = 128; s_bits = 1; e_bits = 49; m_bits = 78; bias = 281474976710655; phi_distance = 0.01; storage = "u128"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)"; use_case = "OPEN R&D: phi-aligned binary128 alternative"; gf_relation = "experimental"; source = "specs/numeric/gf128.t27" }; - { id = "gf256"; name = "GF256 (rule-derived)"; bits = 256; s_bits = 1; e_bits = 97; m_bits = 158; bias = 79228162514264337593543950335; phi_distance = 0.004; storage = "u256_software"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1"; use_case = "OPEN R&D: phi-aligned binary256 alternative"; gf_relation = "experimental"; source = "specs/numeric/gf256.t27" }; - { id = "gf512"; name = "GF512 (rule-derived)"; bits = 512; s_bits = 1; e_bits = 195; m_bits = 316; bias = -2; phi_distance = 0.0009; storage = "u512_software"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(511/phi^2)=195"; use_case = "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)"; gf_relation = "experimental"; source = "specs/numeric/gf512.t27" }; - { id = "gf1024"; name = "GF1024 (rule-derived)"; bits = 1024; s_bits = 1; e_bits = 391; m_bits = 632; bias = -2; phi_distance = 0.0006; storage = "u1024_software"; cluster = "GoldenFloat"; status = "Open"; standard = "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder"; use_case = "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)"; gf_relation = "experimental"; source = "specs/numeric/gf1024.t27" }; + { id = "gf6"; name = "GF6 (predicted)"; bits = 6; s_bits = 1; e_bits = 2; m_bits = 3; bias = 1; phi_distance = 0.05; storage = "u8_packed"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; e=round(5/phi^2)=2, fills FP6 gap"; use_case = "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint"; gf_relation = "experimental"; source = "section12.5" }; + { id = "gf128"; name = "GF128 (predicted)"; bits = 128; s_bits = 1; e_bits = 48; m_bits = 79; bias = 0; phi_distance = 0.008; storage = "u128"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; e=round(127/phi^2)=48 (Open: bias TBD)"; use_case = "OPEN R&D: phi-aligned binary128 alternative"; gf_relation = "experimental"; source = "section12.5" }; + { id = "gf256"; name = "GF256 (predicted)"; bits = 256; s_bits = 1; e_bits = 97; m_bits = 158; bias = 0; phi_distance = 0.005; storage = "u256_software"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)"; use_case = "OPEN R&D: phi-aligned binary256 alternative"; gf_relation = "experimental"; source = "section12.5; bias Open per skill" }; { id = "gf8_bfp"; name = "GF8-BFP (block FP atop GF8)"; bits = 8; s_bits = 1; e_bits = 3; m_bits = 4; bias = 3; phi_distance = 0.132; storage = "u8_plus_shared_exp"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; per-tile shared exponent"; use_case = "OPEN R&D: LLM-quantization-friendly GF8"; gf_relation = "experimental"; source = "section12.5" }; { id = "gf_lns_hybrid"; name = "GF + LNS hybrid (dual-space)"; bits = 16; s_bits = 1; e_bits = 6; m_bits = 9; bias = 31; phi_distance = 0.049; storage = "u16_plus_lns_path"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; mul in log-space, accumulate Lucas-closed"; use_case = "OPEN R&D: dual-space arithmetic"; gf_relation = "experimental"; source = "section12.5" }; { id = "mxgf6"; name = "MXGF6 (microscaling GF6)"; bits = 6; s_bits = 1; e_bits = 2; m_bits = 3; bias = 1; phi_distance = 0.05; storage = "u8_packed_plus_e8m0"; cluster = "GoldenFloat"; status = "Experimental"; standard = "this work; OCP MX block + GF6"; use_case = "OPEN R&D: phi-aligned MX-6 candidate"; gf_relation = "experimental"; source = "section12.5" }; diff --git a/gen/numeric/formats_catalog.py b/gen/numeric/formats_catalog.py index f80ac0c3a..f5ab58f7e 100644 --- a/gen/numeric/formats_catalog.py +++ b/gen/numeric/formats_catalog.py @@ -67,18 +67,12 @@ class Format: Format(id='gf12', name='GF12', bits=12, s_bits=1, e_bits=4, m_bits=7, bias=7, phi_distance=0.047, storage='u16', cluster='GoldenFloat', status='Verified', standard='this work; L0/F3', use_case='mid-range / audio', gf_relation='self', source='BENCH-007 (specs/numeric/gf12.t27)'), Format(id='gf16', name='GF16', bits=16, s_bits=1, e_bits=6, m_bits=9, bias=31, phi_distance=0.049, storage='u16', cluster='GoldenFloat', status='Verified', standard='this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7', use_case='training and inference (production)', gf_relation='self', source='specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)'), Format(id='gf20', name='GF20', bits=20, s_bits=1, e_bits=7, m_bits=12, bias=63, phi_distance=0.035, storage='u32', cluster='GoldenFloat', status='Experimental', standard='this work; 17-squared empirical PHI_BIAS=289', use_case='high-precision edge', gf_relation='self', source='specs/numeric/gf20.t27 (spec only)'), - Format(id='gf24', name='GF24', bits=24, s_bits=1, e_bits=9, m_bits=14, bias=255, phi_distance=0.025, storage='u32', cluster='GoldenFloat', status='Experimental', standard='this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN', use_case='server inference', gf_relation='self', source='specs/numeric/gf24.t27 (spec only)'), + Format(id='gf24', name='GF24', bits=24, s_bits=1, e_bits=9, m_bits=14, bias=255, phi_distance=0.025, storage='u32', cluster='GoldenFloat', status='Experimental', standard='this work; L15 PHI_BIAS=1364', use_case='server inference', gf_relation='self', source='specs/numeric/gf24.t27 (spec only)'), Format(id='gf32', name='GF32', bits=32, s_bits=1, e_bits=12, m_bits=19, bias=2047, phi_distance=0.014, storage='u32', cluster='GoldenFloat', status='Verified', standard='this work; F0 resolved', use_case='fp32 drop-in', gf_relation='self', source='BENCH-012 (specs/numeric/gf32.t27)'), Format(id='gf64', name='GF64', bits=64, s_bits=1, e_bits=24, m_bits=39, bias=8388607, phi_distance=0.003, storage='u64', cluster='GoldenFloat', status='Verified', standard='this work; EXP_MAX - BIAS', use_case='scientific / double', gf_relation='self', source='BENCH-007b (specs/numeric/gf64.t27)'), - Format(id='gf6', name='GF6 (rule-derived)', bits=6, s_bits=1, e_bits=2, m_bits=3, bias=1, phi_distance=0.049, storage='u8_packed', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge', use_case='OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint', gf_relation='experimental', source='specs/numeric/gf6.t27'), - Format(id='gf10', name='GF10 (rule-derived)', bits=10, s_bits=1, e_bits=3, m_bits=6, bias=3, phi_distance=0.118, storage='u16', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(9/phi^2)=3; bridge GF8-GF12', use_case='OPEN R&D: tight-precision activations', gf_relation='experimental', source='specs/numeric/gf10.t27'), - Format(id='gf14', name='GF14 (rule-derived)', bits=14, s_bits=1, e_bits=5, m_bits=8, bias=15, phi_distance=0.007, storage='u16', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48', use_case='OPEN R&D: drop-in for fp16 with tighter phi alignment', gf_relation='experimental', source='specs/numeric/gf14.t27'), - Format(id='gf48', name='GF48 (rule-derived)', bits=48, s_bits=1, e_bits=18, m_bits=29, bias=131071, phi_distance=0.003, storage='u64_padded', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(47/phi^2)=18', use_case='OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs', gf_relation='experimental', source='specs/numeric/gf48.t27'), - Format(id='gf96', name='GF96 (rule-derived)', bits=96, s_bits=1, e_bits=36, m_bits=59, bias=34359738367, phi_distance=0.008, storage='u128_padded', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(95/phi^2)=36', use_case='OPEN R&D: between GF64 and GF128 (phi-aligned extended)', gf_relation='experimental', source='specs/numeric/gf96.t27'), - Format(id='gf128', name='GF128 (rule-derived)', bits=128, s_bits=1, e_bits=49, m_bits=78, bias=281474976710655, phi_distance=0.01, storage='u128', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)', use_case='OPEN R&D: phi-aligned binary128 alternative', gf_relation='experimental', source='specs/numeric/gf128.t27'), - Format(id='gf256', name='GF256 (rule-derived)', bits=256, s_bits=1, e_bits=97, m_bits=158, bias=79228162514264337593543950335, phi_distance=0.004, storage='u256_software', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(255/phi^2)=97; normative bias=2^96-1', use_case='OPEN R&D: phi-aligned binary256 alternative', gf_relation='experimental', source='specs/numeric/gf256.t27'), - Format(id='gf512', name='GF512 (rule-derived)', bits=512, s_bits=1, e_bits=195, m_bits=316, bias=-2, phi_distance=0.0009, storage='u512_software', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(511/phi^2)=195', use_case='OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)', gf_relation='experimental', source='specs/numeric/gf512.t27'), - Format(id='gf1024', name='GF1024 (rule-derived)', bits=1024, s_bits=1, e_bits=391, m_bits=632, bias=-2, phi_distance=0.0006, storage='u1024_software', cluster='GoldenFloat', status='Open', standard='this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder', use_case='OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)', gf_relation='experimental', source='specs/numeric/gf1024.t27'), + Format(id='gf6', name='GF6 (predicted)', bits=6, s_bits=1, e_bits=2, m_bits=3, bias=1, phi_distance=0.05, storage='u8_packed', cluster='GoldenFloat', status='Experimental', standard='this work; e=round(5/phi^2)=2, fills FP6 gap', use_case='OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint', gf_relation='experimental', source='section12.5'), + Format(id='gf128', name='GF128 (predicted)', bits=128, s_bits=1, e_bits=48, m_bits=79, bias=0, phi_distance=0.008, storage='u128', cluster='GoldenFloat', status='Experimental', standard='this work; e=round(127/phi^2)=48 (Open: bias TBD)', use_case='OPEN R&D: phi-aligned binary128 alternative', gf_relation='experimental', source='section12.5'), + Format(id='gf256', name='GF256 (predicted)', bits=256, s_bits=1, e_bits=97, m_bits=158, bias=0, phi_distance=0.005, storage='u256_software', cluster='GoldenFloat', status='Experimental', standard='this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)', use_case='OPEN R&D: phi-aligned binary256 alternative', gf_relation='experimental', source='section12.5; bias Open per skill'), Format(id='gf8_bfp', name='GF8-BFP (block FP atop GF8)', bits=8, s_bits=1, e_bits=3, m_bits=4, bias=3, phi_distance=0.132, storage='u8_plus_shared_exp', cluster='GoldenFloat', status='Experimental', standard='this work; per-tile shared exponent', use_case='OPEN R&D: LLM-quantization-friendly GF8', gf_relation='experimental', source='section12.5'), Format(id='gf_lns_hybrid', name='GF + LNS hybrid (dual-space)', bits=16, s_bits=1, e_bits=6, m_bits=9, bias=31, phi_distance=0.049, storage='u16_plus_lns_path', cluster='GoldenFloat', status='Experimental', standard='this work; mul in log-space, accumulate Lucas-closed', use_case='OPEN R&D: dual-space arithmetic', gf_relation='experimental', source='section12.5'), Format(id='mxgf6', name='MXGF6 (microscaling GF6)', bits=6, s_bits=1, e_bits=2, m_bits=3, bias=1, phi_distance=0.05, storage='u8_packed_plus_e8m0', cluster='GoldenFloat', status='Experimental', standard='this work; OCP MX block + GF6', use_case='OPEN R&D: phi-aligned MX-6 candidate', gf_relation='experimental', source='section12.5'), diff --git a/gen/numeric/formats_catalog.rs b/gen/numeric/formats_catalog.rs index 1926d0f44..7a97dcacf 100644 --- a/gen/numeric/formats_catalog.rs +++ b/gen/numeric/formats_catalog.rs @@ -20,7 +20,7 @@ pub struct Format { pub source: &'static str, } -pub const FORMATS: [Format; 83] = [ +pub const FORMATS: [Format; 77] = [ Format { id: 'binary16', name: 'binary16 (fp16, half)', bits: 16, s_bits: 1, e_bits: 5, m_bits: 10, bias: 15, phi_distance: 0.118f64, storage: 'u16', cluster: 'Ieee754Binary', status: 'Verified', standard: 'IEEE 754-2008', use_case: 'GPU activations, inference', gf_relation: 'competitor', source: 'IEEE 754-2008' }, Format { id: 'binary32', name: 'binary32 (fp32, single)', bits: 32, s_bits: 1, e_bits: 8, m_bits: 23, bias: 127, phi_distance: 0.27f64, storage: 'u32', cluster: 'Ieee754Binary', status: 'Verified', standard: 'IEEE 754-1985', use_case: 'industry default', gf_relation: 'competitor', source: 'IEEE 754-1985' }, Format { id: 'binary64', name: 'binary64 (fp64, double)', bits: 64, s_bits: 1, e_bits: 11, m_bits: 52, bias: 1023, phi_distance: 0.406f64, storage: 'u64', cluster: 'Ieee754Binary', status: 'Verified', standard: 'IEEE 754-1985', use_case: 'scientific computing', gf_relation: 'competitor', source: 'IEEE 754-1985' }, @@ -62,18 +62,12 @@ pub const FORMATS: [Format; 83] = [ Format { id: 'gf12', name: 'GF12', bits: 12, s_bits: 1, e_bits: 4, m_bits: 7, bias: 7, phi_distance: 0.047f64, storage: 'u16', cluster: 'GoldenFloat', status: 'Verified', standard: 'this work; L0/F3', use_case: 'mid-range / audio', gf_relation: 'self', source: 'BENCH-007 (specs/numeric/gf12.t27)' }, Format { id: 'gf16', name: 'GF16', bits: 16, s_bits: 1, e_bits: 6, m_bits: 9, bias: 31, phi_distance: 0.049f64, storage: 'u16', cluster: 'GoldenFloat', status: 'Verified', standard: 'this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7', use_case: 'training and inference (production)', gf_relation: 'self', source: 'specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)' }, Format { id: 'gf20', name: 'GF20', bits: 20, s_bits: 1, e_bits: 7, m_bits: 12, bias: 63, phi_distance: 0.035f64, storage: 'u32', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; 17-squared empirical PHI_BIAS=289', use_case: 'high-precision edge', gf_relation: 'self', source: 'specs/numeric/gf20.t27 (spec only)' }, - Format { id: 'gf24', name: 'GF24', bits: 24, s_bits: 1, e_bits: 9, m_bits: 14, bias: 255, phi_distance: 0.025f64, storage: 'u32', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN', use_case: 'server inference', gf_relation: 'self', source: 'specs/numeric/gf24.t27 (spec only)' }, + Format { id: 'gf24', name: 'GF24', bits: 24, s_bits: 1, e_bits: 9, m_bits: 14, bias: 255, phi_distance: 0.025f64, storage: 'u32', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; L15 PHI_BIAS=1364', use_case: 'server inference', gf_relation: 'self', source: 'specs/numeric/gf24.t27 (spec only)' }, Format { id: 'gf32', name: 'GF32', bits: 32, s_bits: 1, e_bits: 12, m_bits: 19, bias: 2047, phi_distance: 0.014f64, storage: 'u32', cluster: 'GoldenFloat', status: 'Verified', standard: 'this work; F0 resolved', use_case: 'fp32 drop-in', gf_relation: 'self', source: 'BENCH-012 (specs/numeric/gf32.t27)' }, Format { id: 'gf64', name: 'GF64', bits: 64, s_bits: 1, e_bits: 24, m_bits: 39, bias: 8388607, phi_distance: 0.003f64, storage: 'u64', cluster: 'GoldenFloat', status: 'Verified', standard: 'this work; EXP_MAX - BIAS', use_case: 'scientific / double', gf_relation: 'self', source: 'BENCH-007b (specs/numeric/gf64.t27)' }, - Format { id: 'gf6', name: 'GF6 (rule-derived)', bits: 6, s_bits: 1, e_bits: 2, m_bits: 3, bias: 1, phi_distance: 0.049f64, storage: 'u8_packed', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge', use_case: 'OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint', gf_relation: 'experimental', source: 'specs/numeric/gf6.t27' }, - Format { id: 'gf10', name: 'GF10 (rule-derived)', bits: 10, s_bits: 1, e_bits: 3, m_bits: 6, bias: 3, phi_distance: 0.118f64, storage: 'u16', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(9/phi^2)=3; bridge GF8-GF12', use_case: 'OPEN R&D: tight-precision activations', gf_relation: 'experimental', source: 'specs/numeric/gf10.t27' }, - Format { id: 'gf14', name: 'GF14 (rule-derived)', bits: 14, s_bits: 1, e_bits: 5, m_bits: 8, bias: 15, phi_distance: 0.007f64, storage: 'u16', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48', use_case: 'OPEN R&D: drop-in for fp16 with tighter phi alignment', gf_relation: 'experimental', source: 'specs/numeric/gf14.t27' }, - Format { id: 'gf48', name: 'GF48 (rule-derived)', bits: 48, s_bits: 1, e_bits: 18, m_bits: 29, bias: 131071, phi_distance: 0.003f64, storage: 'u64_padded', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(47/phi^2)=18', use_case: 'OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs', gf_relation: 'experimental', source: 'specs/numeric/gf48.t27' }, - Format { id: 'gf96', name: 'GF96 (rule-derived)', bits: 96, s_bits: 1, e_bits: 36, m_bits: 59, bias: 34359738367, phi_distance: 0.008f64, storage: 'u128_padded', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(95/phi^2)=36', use_case: 'OPEN R&D: between GF64 and GF128 (phi-aligned extended)', gf_relation: 'experimental', source: 'specs/numeric/gf96.t27' }, - Format { id: 'gf128', name: 'GF128 (rule-derived)', bits: 128, s_bits: 1, e_bits: 49, m_bits: 78, bias: 281474976710655, phi_distance: 0.01f64, storage: 'u128', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)', use_case: 'OPEN R&D: phi-aligned binary128 alternative', gf_relation: 'experimental', source: 'specs/numeric/gf128.t27' }, - Format { id: 'gf256', name: 'GF256 (rule-derived)', bits: 256, s_bits: 1, e_bits: 97, m_bits: 158, bias: 79228162514264337593543950335, phi_distance: 0.004f64, storage: 'u256_software', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(255/phi^2)=97; normative bias=2^96-1', use_case: 'OPEN R&D: phi-aligned binary256 alternative', gf_relation: 'experimental', source: 'specs/numeric/gf256.t27' }, - Format { id: 'gf512', name: 'GF512 (rule-derived)', bits: 512, s_bits: 1, e_bits: 195, m_bits: 316, bias: -2, phi_distance: 0.0009f64, storage: 'u512_software', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(511/phi^2)=195', use_case: 'OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)', gf_relation: 'experimental', source: 'specs/numeric/gf512.t27' }, - Format { id: 'gf1024', name: 'GF1024 (rule-derived)', bits: 1024, s_bits: 1, e_bits: 391, m_bits: 632, bias: -2, phi_distance: 0.0006f64, storage: 'u1024_software', cluster: 'GoldenFloat', status: 'Open', standard: 'this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder', use_case: 'OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)', gf_relation: 'experimental', source: 'specs/numeric/gf1024.t27' }, + Format { id: 'gf6', name: 'GF6 (predicted)', bits: 6, s_bits: 1, e_bits: 2, m_bits: 3, bias: 1, phi_distance: 0.05f64, storage: 'u8_packed', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; e=round(5/phi^2)=2, fills FP6 gap', use_case: 'OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint', gf_relation: 'experimental', source: 'section12.5' }, + Format { id: 'gf128', name: 'GF128 (predicted)', bits: 128, s_bits: 1, e_bits: 48, m_bits: 79, bias: 0, phi_distance: 0.008f64, storage: 'u128', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; e=round(127/phi^2)=48 (Open: bias TBD)', use_case: 'OPEN R&D: phi-aligned binary128 alternative', gf_relation: 'experimental', source: 'section12.5' }, + Format { id: 'gf256', name: 'GF256 (predicted)', bits: 256, s_bits: 1, e_bits: 97, m_bits: 158, bias: 0, phi_distance: 0.005f64, storage: 'u256_software', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)', use_case: 'OPEN R&D: phi-aligned binary256 alternative', gf_relation: 'experimental', source: 'section12.5; bias Open per skill' }, Format { id: 'gf8_bfp', name: 'GF8-BFP (block FP atop GF8)', bits: 8, s_bits: 1, e_bits: 3, m_bits: 4, bias: 3, phi_distance: 0.132f64, storage: 'u8_plus_shared_exp', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; per-tile shared exponent', use_case: 'OPEN R&D: LLM-quantization-friendly GF8', gf_relation: 'experimental', source: 'section12.5' }, Format { id: 'gf_lns_hybrid', name: 'GF + LNS hybrid (dual-space)', bits: 16, s_bits: 1, e_bits: 6, m_bits: 9, bias: 31, phi_distance: 0.049f64, storage: 'u16_plus_lns_path', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; mul in log-space, accumulate Lucas-closed', use_case: 'OPEN R&D: dual-space arithmetic', gf_relation: 'experimental', source: 'section12.5' }, Format { id: 'mxgf6', name: 'MXGF6 (microscaling GF6)', bits: 6, s_bits: 1, e_bits: 2, m_bits: 3, bias: 1, phi_distance: 0.05f64, storage: 'u8_packed_plus_e8m0', cluster: 'GoldenFloat', status: 'Experimental', standard: 'this work; OCP MX block + GF6', use_case: 'OPEN R&D: phi-aligned MX-6 candidate', gf_relation: 'experimental', source: 'section12.5' }, diff --git a/gen/numeric/formats_catalog.swift b/gen/numeric/formats_catalog.swift index 7f6d0e451..f1079fe60 100644 --- a/gen/numeric/formats_catalog.swift +++ b/gen/numeric/formats_catalog.swift @@ -61,18 +61,12 @@ public let FORMATS: [Format] = [ Format(id: "gf12", name: "GF12", bits: 12, sBits: 1, eBits: 4, mBits: 7, bias: 7, phiDistance: 0.047, storage: "u16", cluster: "GoldenFloat", status: "Verified", standard: "this work; L0/F3", useCase: "mid-range / audio", gfRelation: "self", source: "BENCH-007 (specs/numeric/gf12.t27)"), Format(id: "gf16", name: "GF16", bits: 16, sBits: 1, eBits: 6, mBits: 9, bias: 31, phiDistance: 0.049, storage: "u16", cluster: "GoldenFloat", status: "Verified", standard: "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", useCase: "training and inference (production)", gfRelation: "self", source: "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)"), Format(id: "gf20", name: "GF20", bits: 20, sBits: 1, eBits: 7, mBits: 12, bias: 63, phiDistance: 0.035, storage: "u32", cluster: "GoldenFloat", status: "Experimental", standard: "this work; 17-squared empirical PHI_BIAS=289", useCase: "high-precision edge", gfRelation: "self", source: "specs/numeric/gf20.t27 (spec only)"), - Format(id: "gf24", name: "GF24", bits: 24, sBits: 1, eBits: 9, mBits: 14, bias: 255, phiDistance: 0.025, storage: "u32", cluster: "GoldenFloat", status: "Experimental", standard: "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", useCase: "server inference", gfRelation: "self", source: "specs/numeric/gf24.t27 (spec only)"), + Format(id: "gf24", name: "GF24", bits: 24, sBits: 1, eBits: 9, mBits: 14, bias: 255, phiDistance: 0.025, storage: "u32", cluster: "GoldenFloat", status: "Experimental", standard: "this work; L15 PHI_BIAS=1364", useCase: "server inference", gfRelation: "self", source: "specs/numeric/gf24.t27 (spec only)"), Format(id: "gf32", name: "GF32", bits: 32, sBits: 1, eBits: 12, mBits: 19, bias: 2047, phiDistance: 0.014, storage: "u32", cluster: "GoldenFloat", status: "Verified", standard: "this work; F0 resolved", useCase: "fp32 drop-in", gfRelation: "self", source: "BENCH-012 (specs/numeric/gf32.t27)"), Format(id: "gf64", name: "GF64", bits: 64, sBits: 1, eBits: 24, mBits: 39, bias: 8388607, phiDistance: 0.003, storage: "u64", cluster: "GoldenFloat", status: "Verified", standard: "this work; EXP_MAX - BIAS", useCase: "scientific / double", gfRelation: "self", source: "BENCH-007b (specs/numeric/gf64.t27)"), - Format(id: "gf6", name: "GF6 (rule-derived)", bits: 6, sBits: 1, eBits: 2, mBits: 3, bias: 1, phiDistance: 0.049, storage: "u8_packed", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", useCase: "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", gfRelation: "experimental", source: "specs/numeric/gf6.t27"), - Format(id: "gf10", name: "GF10 (rule-derived)", bits: 10, sBits: 1, eBits: 3, mBits: 6, bias: 3, phiDistance: 0.118, storage: "u16", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", useCase: "OPEN R&D: tight-precision activations", gfRelation: "experimental", source: "specs/numeric/gf10.t27"), - Format(id: "gf14", name: "GF14 (rule-derived)", bits: 14, sBits: 1, eBits: 5, mBits: 8, bias: 15, phiDistance: 0.007, storage: "u16", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", useCase: "OPEN R&D: drop-in for fp16 with tighter phi alignment", gfRelation: "experimental", source: "specs/numeric/gf14.t27"), - Format(id: "gf48", name: "GF48 (rule-derived)", bits: 48, sBits: 1, eBits: 18, mBits: 29, bias: 131071, phiDistance: 0.003, storage: "u64_padded", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(47/phi^2)=18", useCase: "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", gfRelation: "experimental", source: "specs/numeric/gf48.t27"), - Format(id: "gf96", name: "GF96 (rule-derived)", bits: 96, sBits: 1, eBits: 36, mBits: 59, bias: 34359738367, phiDistance: 0.008, storage: "u128_padded", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(95/phi^2)=36", useCase: "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", gfRelation: "experimental", source: "specs/numeric/gf96.t27"), - Format(id: "gf128", name: "GF128 (rule-derived)", bits: 128, sBits: 1, eBits: 49, mBits: 78, bias: 281474976710655, phiDistance: 0.01, storage: "u128", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", useCase: "OPEN R&D: phi-aligned binary128 alternative", gfRelation: "experimental", source: "specs/numeric/gf128.t27"), - Format(id: "gf256", name: "GF256 (rule-derived)", bits: 256, sBits: 1, eBits: 97, mBits: 158, bias: 79228162514264337593543950335, phiDistance: 0.004, storage: "u256_software", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", useCase: "OPEN R&D: phi-aligned binary256 alternative", gfRelation: "experimental", source: "specs/numeric/gf256.t27"), - Format(id: "gf512", name: "GF512 (rule-derived)", bits: 512, sBits: 1, eBits: 195, mBits: 316, bias: -2, phiDistance: 0.0009, storage: "u512_software", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(511/phi^2)=195", useCase: "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", gfRelation: "experimental", source: "specs/numeric/gf512.t27"), - Format(id: "gf1024", name: "GF1024 (rule-derived)", bits: 1024, sBits: 1, eBits: 391, mBits: 632, bias: -2, phiDistance: 0.0006, storage: "u1024_software", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", useCase: "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", gfRelation: "experimental", source: "specs/numeric/gf1024.t27"), + Format(id: "gf6", name: "GF6 (predicted)", bits: 6, sBits: 1, eBits: 2, mBits: 3, bias: 1, phiDistance: 0.05, storage: "u8_packed", cluster: "GoldenFloat", status: "Experimental", standard: "this work; e=round(5/phi^2)=2, fills FP6 gap", useCase: "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", gfRelation: "experimental", source: "section12.5"), + Format(id: "gf128", name: "GF128 (predicted)", bits: 128, sBits: 1, eBits: 48, mBits: 79, bias: 0, phiDistance: 0.008, storage: "u128", cluster: "GoldenFloat", status: "Experimental", standard: "this work; e=round(127/phi^2)=48 (Open: bias TBD)", useCase: "OPEN R&D: phi-aligned binary128 alternative", gfRelation: "experimental", source: "section12.5"), + Format(id: "gf256", name: "GF256 (predicted)", bits: 256, sBits: 1, eBits: 97, mBits: 158, bias: 0, phiDistance: 0.005, storage: "u256_software", cluster: "GoldenFloat", status: "Experimental", standard: "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", useCase: "OPEN R&D: phi-aligned binary256 alternative", gfRelation: "experimental", source: "section12.5; bias Open per skill"), Format(id: "gf8_bfp", name: "GF8-BFP (block FP atop GF8)", bits: 8, sBits: 1, eBits: 3, mBits: 4, bias: 3, phiDistance: 0.132, storage: "u8_plus_shared_exp", cluster: "GoldenFloat", status: "Experimental", standard: "this work; per-tile shared exponent", useCase: "OPEN R&D: LLM-quantization-friendly GF8", gfRelation: "experimental", source: "section12.5"), Format(id: "gf_lns_hybrid", name: "GF + LNS hybrid (dual-space)", bits: 16, sBits: 1, eBits: 6, mBits: 9, bias: 31, phiDistance: 0.049, storage: "u16_plus_lns_path", cluster: "GoldenFloat", status: "Experimental", standard: "this work; mul in log-space, accumulate Lucas-closed", useCase: "OPEN R&D: dual-space arithmetic", gfRelation: "experimental", source: "section12.5"), Format(id: "mxgf6", name: "MXGF6 (microscaling GF6)", bits: 6, sBits: 1, eBits: 2, mBits: 3, bias: 1, phiDistance: 0.05, storage: "u8_packed_plus_e8m0", cluster: "GoldenFloat", status: "Experimental", standard: "this work; OCP MX block + GF6", useCase: "OPEN R&D: phi-aligned MX-6 candidate", gfRelation: "experimental", source: "section12.5"), diff --git a/gen/numeric/formats_catalog.ts b/gen/numeric/formats_catalog.ts index 10a339ba3..8c90247a7 100644 --- a/gen/numeric/formats_catalog.ts +++ b/gen/numeric/formats_catalog.ts @@ -61,18 +61,12 @@ export const FORMATS: ReadonlyArray = [ { id: "gf12", name: "GF12", bits: 12, s_bits: 1, e_bits: 4, m_bits: 7, bias: 7, phi_distance: 0.047, storage: "u16", cluster: "GoldenFloat", status: "Verified", standard: "this work; L0/F3", use_case: "mid-range / audio", gf_relation: "self", source: "BENCH-007 (specs/numeric/gf12.t27)" }, { id: "gf16", name: "GF16", bits: 16, s_bits: 1, e_bits: 6, m_bits: 9, bias: 31, phi_distance: 0.049, storage: "u16", cluster: "GoldenFloat", status: "Verified", standard: "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", use_case: "training and inference (production)", gf_relation: "self", source: "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)" }, { id: "gf20", name: "GF20", bits: 20, s_bits: 1, e_bits: 7, m_bits: 12, bias: 63, phi_distance: 0.035, storage: "u32", cluster: "GoldenFloat", status: "Experimental", standard: "this work; 17-squared empirical PHI_BIAS=289", use_case: "high-precision edge", gf_relation: "self", source: "specs/numeric/gf20.t27 (spec only)" }, - { id: "gf24", name: "GF24", bits: 24, s_bits: 1, e_bits: 9, m_bits: 14, bias: 255, phi_distance: 0.025, storage: "u32", cluster: "GoldenFloat", status: "Experimental", standard: "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", use_case: "server inference", gf_relation: "self", source: "specs/numeric/gf24.t27 (spec only)" }, + { id: "gf24", name: "GF24", bits: 24, s_bits: 1, e_bits: 9, m_bits: 14, bias: 255, phi_distance: 0.025, storage: "u32", cluster: "GoldenFloat", status: "Experimental", standard: "this work; L15 PHI_BIAS=1364", use_case: "server inference", gf_relation: "self", source: "specs/numeric/gf24.t27 (spec only)" }, { id: "gf32", name: "GF32", bits: 32, s_bits: 1, e_bits: 12, m_bits: 19, bias: 2047, phi_distance: 0.014, storage: "u32", cluster: "GoldenFloat", status: "Verified", standard: "this work; F0 resolved", use_case: "fp32 drop-in", gf_relation: "self", source: "BENCH-012 (specs/numeric/gf32.t27)" }, { id: "gf64", name: "GF64", bits: 64, s_bits: 1, e_bits: 24, m_bits: 39, bias: 8388607, phi_distance: 0.003, storage: "u64", cluster: "GoldenFloat", status: "Verified", standard: "this work; EXP_MAX - BIAS", use_case: "scientific / double", gf_relation: "self", source: "BENCH-007b (specs/numeric/gf64.t27)" }, - { id: "gf6", name: "GF6 (rule-derived)", bits: 6, s_bits: 1, e_bits: 2, m_bits: 3, bias: 1, phi_distance: 0.049, storage: "u8_packed", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", use_case: "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", gf_relation: "experimental", source: "specs/numeric/gf6.t27" }, - { id: "gf10", name: "GF10 (rule-derived)", bits: 10, s_bits: 1, e_bits: 3, m_bits: 6, bias: 3, phi_distance: 0.118, storage: "u16", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", use_case: "OPEN R&D: tight-precision activations", gf_relation: "experimental", source: "specs/numeric/gf10.t27" }, - { id: "gf14", name: "GF14 (rule-derived)", bits: 14, s_bits: 1, e_bits: 5, m_bits: 8, bias: 15, phi_distance: 0.007, storage: "u16", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", use_case: "OPEN R&D: drop-in for fp16 with tighter phi alignment", gf_relation: "experimental", source: "specs/numeric/gf14.t27" }, - { id: "gf48", name: "GF48 (rule-derived)", bits: 48, s_bits: 1, e_bits: 18, m_bits: 29, bias: 131071, phi_distance: 0.003, storage: "u64_padded", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(47/phi^2)=18", use_case: "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", gf_relation: "experimental", source: "specs/numeric/gf48.t27" }, - { id: "gf96", name: "GF96 (rule-derived)", bits: 96, s_bits: 1, e_bits: 36, m_bits: 59, bias: 34359738367, phi_distance: 0.008, storage: "u128_padded", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(95/phi^2)=36", use_case: "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", gf_relation: "experimental", source: "specs/numeric/gf96.t27" }, - { id: "gf128", name: "GF128 (rule-derived)", bits: 128, s_bits: 1, e_bits: 49, m_bits: 78, bias: 281474976710655, phi_distance: 0.01, storage: "u128", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", use_case: "OPEN R&D: phi-aligned binary128 alternative", gf_relation: "experimental", source: "specs/numeric/gf128.t27" }, - { id: "gf256", name: "GF256 (rule-derived)", bits: 256, s_bits: 1, e_bits: 97, m_bits: 158, bias: 79228162514264337593543950335, phi_distance: 0.004, storage: "u256_software", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", use_case: "OPEN R&D: phi-aligned binary256 alternative", gf_relation: "experimental", source: "specs/numeric/gf256.t27" }, - { id: "gf512", name: "GF512 (rule-derived)", bits: 512, s_bits: 1, e_bits: 195, m_bits: 316, bias: -2, phi_distance: 0.0009, storage: "u512_software", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(511/phi^2)=195", use_case: "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", gf_relation: "experimental", source: "specs/numeric/gf512.t27" }, - { id: "gf1024", name: "GF1024 (rule-derived)", bits: 1024, s_bits: 1, e_bits: 391, m_bits: 632, bias: -2, phi_distance: 0.0006, storage: "u1024_software", cluster: "GoldenFloat", status: "Open", standard: "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", use_case: "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", gf_relation: "experimental", source: "specs/numeric/gf1024.t27" }, + { id: "gf6", name: "GF6 (predicted)", bits: 6, s_bits: 1, e_bits: 2, m_bits: 3, bias: 1, phi_distance: 0.05, storage: "u8_packed", cluster: "GoldenFloat", status: "Experimental", standard: "this work; e=round(5/phi^2)=2, fills FP6 gap", use_case: "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", gf_relation: "experimental", source: "section12.5" }, + { id: "gf128", name: "GF128 (predicted)", bits: 128, s_bits: 1, e_bits: 48, m_bits: 79, bias: 0, phi_distance: 0.008, storage: "u128", cluster: "GoldenFloat", status: "Experimental", standard: "this work; e=round(127/phi^2)=48 (Open: bias TBD)", use_case: "OPEN R&D: phi-aligned binary128 alternative", gf_relation: "experimental", source: "section12.5" }, + { id: "gf256", name: "GF256 (predicted)", bits: 256, s_bits: 1, e_bits: 97, m_bits: 158, bias: 0, phi_distance: 0.005, storage: "u256_software", cluster: "GoldenFloat", status: "Experimental", standard: "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", use_case: "OPEN R&D: phi-aligned binary256 alternative", gf_relation: "experimental", source: "section12.5; bias Open per skill" }, { id: "gf8_bfp", name: "GF8-BFP (block FP atop GF8)", bits: 8, s_bits: 1, e_bits: 3, m_bits: 4, bias: 3, phi_distance: 0.132, storage: "u8_plus_shared_exp", cluster: "GoldenFloat", status: "Experimental", standard: "this work; per-tile shared exponent", use_case: "OPEN R&D: LLM-quantization-friendly GF8", gf_relation: "experimental", source: "section12.5" }, { id: "gf_lns_hybrid", name: "GF + LNS hybrid (dual-space)", bits: 16, s_bits: 1, e_bits: 6, m_bits: 9, bias: 31, phi_distance: 0.049, storage: "u16_plus_lns_path", cluster: "GoldenFloat", status: "Experimental", standard: "this work; mul in log-space, accumulate Lucas-closed", use_case: "OPEN R&D: dual-space arithmetic", gf_relation: "experimental", source: "section12.5" }, { id: "mxgf6", name: "MXGF6 (microscaling GF6)", bits: 6, s_bits: 1, e_bits: 2, m_bits: 3, bias: 1, phi_distance: 0.05, storage: "u8_packed_plus_e8m0", cluster: "GoldenFloat", status: "Experimental", standard: "this work; OCP MX block + GF6", use_case: "OPEN R&D: phi-aligned MX-6 candidate", gf_relation: "experimental", source: "section12.5" }, diff --git a/gen/numeric/formats_catalog.vh b/gen/numeric/formats_catalog.vh index 7ecbc0ff3..f7f18a3b7 100644 --- a/gen/numeric/formats_catalog.vh +++ b/gen/numeric/formats_catalog.vh @@ -6,7 +6,7 @@ `ifndef T27_FORMATS_CATALOG_VH `define T27_FORMATS_CATALOG_VH -`define T27_FORMAT_COUNT 83 +`define T27_FORMAT_COUNT 77 `define T27_FMT_BINARY16_BITS 16 `define T27_FMT_BINARY16_S 1 @@ -233,46 +233,16 @@ `define T27_FMT_GF6_E 2 `define T27_FMT_GF6_M 3 `define T27_FMT_GF6_BIAS 1 -`define T27_FMT_GF10_BITS 10 -`define T27_FMT_GF10_S 1 -`define T27_FMT_GF10_E 3 -`define T27_FMT_GF10_M 6 -`define T27_FMT_GF10_BIAS 3 -`define T27_FMT_GF14_BITS 14 -`define T27_FMT_GF14_S 1 -`define T27_FMT_GF14_E 5 -`define T27_FMT_GF14_M 8 -`define T27_FMT_GF14_BIAS 15 -`define T27_FMT_GF48_BITS 48 -`define T27_FMT_GF48_S 1 -`define T27_FMT_GF48_E 18 -`define T27_FMT_GF48_M 29 -`define T27_FMT_GF48_BIAS 131071 -`define T27_FMT_GF96_BITS 96 -`define T27_FMT_GF96_S 1 -`define T27_FMT_GF96_E 36 -`define T27_FMT_GF96_M 59 -`define T27_FMT_GF96_BIAS 34359738367 `define T27_FMT_GF128_BITS 128 `define T27_FMT_GF128_S 1 -`define T27_FMT_GF128_E 49 -`define T27_FMT_GF128_M 78 -`define T27_FMT_GF128_BIAS 281474976710655 +`define T27_FMT_GF128_E 48 +`define T27_FMT_GF128_M 79 +`define T27_FMT_GF128_BIAS 0 `define T27_FMT_GF256_BITS 256 `define T27_FMT_GF256_S 1 `define T27_FMT_GF256_E 97 `define T27_FMT_GF256_M 158 -`define T27_FMT_GF256_BIAS 79228162514264337593543950335 -`define T27_FMT_GF512_BITS 512 -`define T27_FMT_GF512_S 1 -`define T27_FMT_GF512_E 195 -`define T27_FMT_GF512_M 316 -`define T27_FMT_GF512_BIAS -2 -`define T27_FMT_GF1024_BITS 1024 -`define T27_FMT_GF1024_S 1 -`define T27_FMT_GF1024_E 391 -`define T27_FMT_GF1024_M 632 -`define T27_FMT_GF1024_BIAS -2 +`define T27_FMT_GF256_BIAS 0 `define T27_FMT_GF8_BFP_BITS 8 `define T27_FMT_GF8_BFP_S 1 `define T27_FMT_GF8_BFP_E 3 diff --git a/gen/numeric/formats_catalog.zig b/gen/numeric/formats_catalog.zig index 8cf218300..039c4b2f6 100644 --- a/gen/numeric/formats_catalog.zig +++ b/gen/numeric/formats_catalog.zig @@ -61,18 +61,12 @@ pub const formats = [_]Format{ .{ .id = "gf12", .name = "GF12", .bits = 12, .s_bits = 1, .e_bits = 4, .m_bits = 7, .bias = 7, .phi_distance = 0.047, .storage = "u16", .cluster = "GoldenFloat", .status = "Verified", .standard = "this work; L0/F3", .use_case = "mid-range / audio", .gf_relation = "self", .source = "BENCH-007 (specs/numeric/gf12.t27)" }, .{ .id = "gf16", .name = "GF16", .bits = 16, .s_bits = 1, .e_bits = 6, .m_bits = 9, .bias = 31, .phi_distance = 0.049, .storage = "u16", .cluster = "GoldenFloat", .status = "Verified", .standard = "this work; PHI_BIAS=60; FPGA 35/35 at 323 MHz Artix-7", .use_case = "training and inference (production)", .gf_relation = "self", .source = "specs/numeric/gf16.t27; zenodo 10.5281/zenodo.19227877 (HW archive)" }, .{ .id = "gf20", .name = "GF20", .bits = 20, .s_bits = 1, .e_bits = 7, .m_bits = 12, .bias = 63, .phi_distance = 0.035, .storage = "u32", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; 17-squared empirical PHI_BIAS=289", .use_case = "high-precision edge", .gf_relation = "self", .source = "specs/numeric/gf20.t27 (spec only)" }, - .{ .id = "gf24", .name = "GF24", .bits = 24, .s_bits = 1, .e_bits = 9, .m_bits = 14, .bias = 255, .phi_distance = 0.025, .storage = "u32", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; rule e=round(23/phi^2)=9; normative bias=2^(e-1)-1=255; empirical PHI_BIAS=1364 (=L15) OPEN", .use_case = "server inference", .gf_relation = "self", .source = "specs/numeric/gf24.t27 (spec only)" }, + .{ .id = "gf24", .name = "GF24", .bits = 24, .s_bits = 1, .e_bits = 9, .m_bits = 14, .bias = 255, .phi_distance = 0.025, .storage = "u32", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; L15 PHI_BIAS=1364", .use_case = "server inference", .gf_relation = "self", .source = "specs/numeric/gf24.t27 (spec only)" }, .{ .id = "gf32", .name = "GF32", .bits = 32, .s_bits = 1, .e_bits = 12, .m_bits = 19, .bias = 2047, .phi_distance = 0.014, .storage = "u32", .cluster = "GoldenFloat", .status = "Verified", .standard = "this work; F0 resolved", .use_case = "fp32 drop-in", .gf_relation = "self", .source = "BENCH-012 (specs/numeric/gf32.t27)" }, .{ .id = "gf64", .name = "GF64", .bits = 64, .s_bits = 1, .e_bits = 24, .m_bits = 39, .bias = 8388607, .phi_distance = 0.003, .storage = "u64", .cluster = "GoldenFloat", .status = "Verified", .standard = "this work; EXP_MAX - BIAS", .use_case = "scientific / double", .gf_relation = "self", .source = "BENCH-007b (specs/numeric/gf64.t27)" }, - .{ .id = "gf6", .name = "GF6 (rule-derived)", .bits = 6, .s_bits = 1, .e_bits = 2, .m_bits = 3, .bias = 1, .phi_distance = 0.049, .storage = "u8_packed", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(5/phi^2)=2; FP6 E2M3 bridge", .use_case = "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", .gf_relation = "experimental", .source = "specs/numeric/gf6.t27" }, - .{ .id = "gf10", .name = "GF10 (rule-derived)", .bits = 10, .s_bits = 1, .e_bits = 3, .m_bits = 6, .bias = 3, .phi_distance = 0.118, .storage = "u16", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(9/phi^2)=3; bridge GF8-GF12", .use_case = "OPEN R&D: tight-precision activations", .gf_relation = "experimental", .source = "specs/numeric/gf10.t27" }, - .{ .id = "gf14", .name = "GF14 (rule-derived)", .bits = 14, .s_bits = 1, .e_bits = 5, .m_bits = 8, .bias = 15, .phi_distance = 0.007, .storage = "u16", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(13/phi^2)=5; bridge GF12-GF16; lowest phi-dist below GF48", .use_case = "OPEN R&D: drop-in for fp16 with tighter phi alignment", .gf_relation = "experimental", .source = "specs/numeric/gf14.t27" }, - .{ .id = "gf48", .name = "GF48 (rule-derived)", .bits = 48, .s_bits = 1, .e_bits = 18, .m_bits = 29, .bias = 131071, .phi_distance = 0.003, .storage = "u64_padded", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(47/phi^2)=18", .use_case = "OPEN R&D: between GF32 and GF64; tightest phi-dist of the wide rungs", .gf_relation = "experimental", .source = "specs/numeric/gf48.t27" }, - .{ .id = "gf96", .name = "GF96 (rule-derived)", .bits = 96, .s_bits = 1, .e_bits = 36, .m_bits = 59, .bias = 34359738367, .phi_distance = 0.008, .storage = "u128_padded", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(95/phi^2)=36", .use_case = "OPEN R&D: between GF64 and GF128 (phi-aligned extended)", .gf_relation = "experimental", .source = "specs/numeric/gf96.t27" }, - .{ .id = "gf128", .name = "GF128 (rule-derived)", .bits = 128, .s_bits = 1, .e_bits = 49, .m_bits = 78, .bias = 281474976710655, .phi_distance = 0.01, .storage = "u128", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(127/phi^2)=49 (corrects v1.1 typo e=48)", .use_case = "OPEN R&D: phi-aligned binary128 alternative", .gf_relation = "experimental", .source = "specs/numeric/gf128.t27" }, - .{ .id = "gf256", .name = "GF256 (rule-derived)", .bits = 256, .s_bits = 1, .e_bits = 97, .m_bits = 158, .bias = 79228162514264337593543950335, .phi_distance = 0.004, .storage = "u256_software", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(255/phi^2)=97; normative bias=2^96-1", .use_case = "OPEN R&D: phi-aligned binary256 alternative", .gf_relation = "experimental", .source = "specs/numeric/gf256.t27" }, - .{ .id = "gf512", .name = "GF512 (rule-derived)", .bits = 512, .s_bits = 1, .e_bits = 195, .m_bits = 316, .bias = -2, .phi_distance = 0.0009, .storage = "u512_software", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(511/phi^2)=195", .use_case = "OPEN R&D: ultra-wide phi-aligned (extrapolation, no RTL)", .gf_relation = "experimental", .source = "specs/numeric/gf512.t27" }, - .{ .id = "gf1024", .name = "GF1024 (rule-derived)", .bits = 1024, .s_bits = 1, .e_bits = 391, .m_bits = 632, .bias = -2, .phi_distance = 0.0006, .storage = "u1024_software", .cluster = "GoldenFloat", .status = "Open", .standard = "this work; rule e=round(1023/phi^2)=391; lowest phi-distance in the ladder", .use_case = "OPEN R&D: limit-of-ladder phi alignment (extrapolation, no RTL)", .gf_relation = "experimental", .source = "specs/numeric/gf1024.t27" }, + .{ .id = "gf6", .name = "GF6 (predicted)", .bits = 6, .s_bits = 1, .e_bits = 2, .m_bits = 3, .bias = 1, .phi_distance = 0.05, .storage = "u8_packed", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; e=round(5/phi^2)=2, fills FP6 gap", .use_case = "OPEN R&D: bridge GF4-GF8; FP6 E2M3 hint", .gf_relation = "experimental", .source = "section12.5" }, + .{ .id = "gf128", .name = "GF128 (predicted)", .bits = 128, .s_bits = 1, .e_bits = 48, .m_bits = 79, .bias = 0, .phi_distance = 0.008, .storage = "u128", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; e=round(127/phi^2)=48 (Open: bias TBD)", .use_case = "OPEN R&D: phi-aligned binary128 alternative", .gf_relation = "experimental", .source = "section12.5" }, + .{ .id = "gf256", .name = "GF256 (predicted)", .bits = 256, .s_bits = 1, .e_bits = 97, .m_bits = 158, .bias = 0, .phi_distance = 0.005, .storage = "u256_software", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; e=round(255/phi^2)=97 (Open: bias ~2^71 unconfirmed)", .use_case = "OPEN R&D: phi-aligned binary256 alternative", .gf_relation = "experimental", .source = "section12.5; bias Open per skill" }, .{ .id = "gf8_bfp", .name = "GF8-BFP (block FP atop GF8)", .bits = 8, .s_bits = 1, .e_bits = 3, .m_bits = 4, .bias = 3, .phi_distance = 0.132, .storage = "u8_plus_shared_exp", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; per-tile shared exponent", .use_case = "OPEN R&D: LLM-quantization-friendly GF8", .gf_relation = "experimental", .source = "section12.5" }, .{ .id = "gf_lns_hybrid", .name = "GF + LNS hybrid (dual-space)", .bits = 16, .s_bits = 1, .e_bits = 6, .m_bits = 9, .bias = 31, .phi_distance = 0.049, .storage = "u16_plus_lns_path", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; mul in log-space, accumulate Lucas-closed", .use_case = "OPEN R&D: dual-space arithmetic", .gf_relation = "experimental", .source = "section12.5" }, .{ .id = "mxgf6", .name = "MXGF6 (microscaling GF6)", .bits = 6, .s_bits = 1, .e_bits = 2, .m_bits = 3, .bias = 1, .phi_distance = 0.05, .storage = "u8_packed_plus_e8m0", .cluster = "GoldenFloat", .status = "Experimental", .standard = "this work; OCP MX block + GF6", .use_case = "OPEN R&D: phi-aligned MX-6 candidate", .gf_relation = "experimental", .source = "section12.5" },