T27.AI

Блог

Двадцать три эталонные модели, потому что реализация конкурента по памяти всегда льстит

2026-08-11 · 6 мин чтения

У каждого формата, с которым мы сравниваемся, своя эталонная реализация по его спецификации — после пяти ошибок, каждая из которых ослабляла конкурента и все в одну сторону.

Numeric formatsBenchmarkingMethodologyOpen source

Если сравниваешь свой числовой формат с другими, другие приходится реализовать. Звучит как рутина, а решается на этом результат.

Пять ошибок, все в одну сторону

Я реализовал пять чужих форматов по памяти. У каждого нашлась ошибка, и каждая ослабляла конкурента:

#форматошибка
1MX shared scaleпотолок вместо floor(log2 max) − emax
2E2M1пропущено субнормальное — 7 величин вместо 8
3NF4симметричная реконструкция вместо таблицы на 16 значений
4E4M3проигнорирован зарезервированный NaN — максимум 480 вместо 448
5E5M2проигнорирована зарезервированная экспонента — 114688 вместо 57344

Пять из пяти, одно направление. Это не везение и не нечестность — это структурно.

Почему направление не случайно

Каждая из этих пяти — упрощение. Субнормальное число, зарезервированная кодировка, несимметричная таблица: ровно те детали, которые формат добавляет, чтобы лучше работать на краях диапазона.

Реализация по памяти реализует ИДЕЮ формата, а идея всегда проще спецификации.

Значит реализация по памяти выдаёт конкуренту худшую версию его самого — каждый раз и в сторону, выгодную тебе. Ошибки не выбирают. Выбирают не открыть спецификацию.

Что делаем вместо этого

Двадцать три эталонные модели, по одной на семейство форматов, с которым сравниваемся, каждая написана по собственной спецификации формата или по его опубликованной эталонной реализации.

Проверка, применимая к чужой статье

Когда статья сообщает, что обходит E4M3 или NF4, вопрос не в том, какие там числа. Вопрос в том, откуда взялась реализация конкурента. Три ответа: из спецификации — числа стоит обсуждать; из опубликованной эталонной реализации — тоже; из статьи, описывающей формат — здесь и начинается моя таблица.

Третий выглядит добросовестным и им не является: статья даёт идею, а не спецификацию, и в зазоре между ними жили все пять моих ошибок.

Одна конкретная проверка стоит нисколько: E4M3 даёт максимум 448, E5M2 — 57344. Если сравнение подразумевает 480 или 114688, зарезервированные кодировки пропущены и конкуренту выдан диапазон, которого у него нет.

Чего это не решает

Пруфы

Каждая цифра выше измерена, и рядом с ней названы её пределы.