Каталог из 83 форматов с плавающей точкой, который сам себя проверяет

Если вы ловили расхождение точности между двумя реализациями одной сети, то знаете это чувство: один matmul на двух устройствах даёт разные числа, и непонятно — это баг, bf16 округлил или формат не тот. Две команды меряют один результат разными линейками. Я сделал одну линейку с точными насечками: машинно-проверяемый каталог из 83 числовых форматов в 13 кластерах. Для каждого — разрядка битов, смещение, кодирование inf/NaN/субнормалей и общий якорь проверки 0x47C0. Из одного источника истины генерируются Markdown, JSON, Python, Rust, C и RTL для кремния. У каждого формата стоит метка зрелости: 51 Verified, 12 Historical, 11 Experimental, 9 Open. И отдельная ось — граница RTL: где правило e = round((N−1)/φ²) ещё работающее железо (GF16 доведён до кремния), а где уже гипотеза (GF512/GF1024 — экстраполяция без строки Verilog). Внутри — лестница зрелости форматов, связь с IEEE P3109 и реальный баг в умножителе, который нашли только потому, что под форматом есть железо. Как устроена линейка

https://habr.com/ru/articles/1051520/

#числовые_форматы #floating_point #FP8 #bfloat16 #GoldenFloat #IEEE_754 #квантизация #RTL #posit #машинная_точность

Каталог из 83 форматов с плавающей точкой, который сам себя проверяет

Вторая статья про проект GoldenFloat. Первая была про φ-лестницу форматов и троичную «Сетунь» Брусенцова. Здесь — про инструмент, который из той работы вырос: один машинно-проверяемый каталог числовых...

Хабр

Линейка для чисел: как я собрал каталог из 83 форматов с плавающей точкой — и почему он всё время «не сходится»

Любой, кто дебажил несовпадение точности между двумя реализациями нейросети, знает это чувство: один и тот же matmul на двух устройствах даёт разный результат — баг это или просто bf16 так округлил? Инженеры на разных концах конвейера меряют один результат разными линейками. Я собрал одну линейку с точными насечками — машинно-проверяемый каталог из 83 числовых форматов в 13 кластерах. Для каждого: разрядка битов (знак/экспонента/мантисса), смещение, кодирование inf/NaN/субнормалей и единый якорь проверки 0x47C0. Из одного источника истины генерируются Markdown, JSON, Python, Rust, C и RTL для кремния. Главное в проекте — не размер, а честные статус-метки: 51 формат Verified, 12 Historical, 11 Experimental, 9 Open. И отдельная честная ось — граница RTL: где правило e = round((N−1)/φ²) ещё работающее железо (GF16 проверен вплоть до кремния), а где уже гипотеза (GF512/GF1024 — чистая экстраполяция без единой строки Verilog). Парадокс: самая близкая к φ ступень — наименее проверенная. Внутри — лестница зрелости форматов, связь с IEEE P3109 и реальный баг в умножителе, который нашли только потому, что под форматом есть железо Как устроена линейка

https://habr.com/ru/articles/1051010/

#числовые_форматы #floating_point #GoldenFloat #bfloat16 #FP8 #P3109 #RTL #квантизация #машинное_обучение #числа_с_плавающей_точкой

Линейка для чисел: как я собрал каталог из 83 форматов с плавающей точкой — и почему он всё время «не сходится»

Это вторая статья про проект GoldenFloat. Первая была про φ-лестницу форматов и троичную «Сетунь». Здесь — про инструмент, который вырос из той работы: единый, машинно-проверяемый каталог форматов...

Хабр