#goldenfloat — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #goldenfloat, aggregated by home.social.
-
Каталог из 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 форматов с плавающей точкой, который сам себя проверяет
Если вы ловили расхождение точности между двумя реализациями одной сети, то знаете это чувство: один 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 форматов с плавающей точкой, который сам себя проверяет
Если вы ловили расхождение точности между двумя реализациями одной сети, то знаете это чувство: один 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 форматов с плавающей точкой — и почему он всё время «не сходится»
Любой, кто дебажил несовпадение точности между двумя реализациями нейросети, знает это чувство: один и тот же 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 форматов с плавающей точкой — и почему он всё время «не сходится»
Любой, кто дебажил несовпадение точности между двумя реализациями нейросети, знает это чувство: один и тот же 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 форматов с плавающей точкой — и почему он всё время «не сходится»
Любой, кто дебажил несовпадение точности между двумя реализациями нейросети, знает это чувство: один и тот же 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 #квантизация #машинное_обучение #числа_с_плавающей_точкой