Minifloat

Материал из in.wiki
Перейти к навигации Перейти к поиску
800px-T64 and pencil.jpg Это незавершённая статья.
Вы можете помочь проекту, исправив и дополнив её.


В вычислительной техникe minifloat - группа типов данных[1], выраженных как числа с плавающей запятой, представленные очень небольшим количеством битов. Они не очень подходят для численных расчетов общего назначения, но используются для специальных целей, чаще всего в компьютерной графике, где точность вычисления не имеет принципиального значения[2].

В последние годы подобные форматы данных, такие как bfloat16, также используются в машинном обучении. Кроме того, они часто используются в качестве педагогического инструмента на курсах информатики для демонстрации свойств и структур арифметики с плавающей запятой и чисел IEEE 754.

Числа minifloat с 16 битами представляют собой числа половинной точности (в отличие от одинарной и двойной точности). Существуют также minifloat с 8 битами или даже меньшей разрядностью.

Minifloat могут быть спроектированы в соответствии с принципами стандарта IEEE 754. В этом случае они должны, неявным образом, подчиняться правилам определения границы между субнормальными и нормальными числами и должны иметь специальные значения для бесконечности и NaN.

Нормализованные числа хранятся со смещённой экспонентой. Новая версия стандарта IEEE 754-2008 содержит 16-битные двоичные числа с плавающей запятой.

Нотация[править | править код]

Различные виды minifloat обычно описывается кортежем из четырех чисел (S, E, M, B):

  • S — длина знакового поля. Обычно это либо 0, либо 1.
  • E — длина поля экпоненты.
  • M — длина поля мантиссы (значения без учёта порядка величины).
  • B — смещение экспоненты.

Таким образом, формат minifloat, обозначаемый (S, E, M, B), имеет длину S + E + M бит. В компьютерной графике minifloat иногда используются для представления только целых значений.

Если, в то же время ,должны существовать субнормальные значения, наименьшее субнормальное число должно быть равно 1.

В этом случае значение смещения будет B = E - M - 1, при условии, что в соответствии со стандартом IEEE 754 используются два специальных значения показателя степени.

Обозначение (S, E, M, B) можно преобразовать в формат (B, P, L, U) как (2, M + 1, B + 1, 2^S - B) (с использованием экспонент в смысле нотации IEEE).

Пример 8-битного числа с плавающей запятой[править | править код]

Схема примера 8-битного числа minifloat (1.4.3)
знак экпонента мантисса
0 0 0 0 0 0 0 0

Примечания[править | править код]

  1. В зависимости от контекста, их можно было бы рассматривать как одно представлений определённого типа данных, но, если рассматривать вопрос строго, то, всё-таки постановка вопроса о том, что каждый конкретный формат minifloat соответствует именно определённому типу данных выглядит более правильной.
  2. Mocerino, Luca; Calimera, Andrea (24 November 2021). "AxP: A HW-SW Co-Design Pipeline for Energy-Efficient Approximated ConvNets via Associative Matching". Applied Sciences. 11 (23): 11164. doi:10.3390/app112311164.