Minifloat
Это незавершённая статья. Вы можете помочь проекту, исправив и дополнив её. |
В вычислительной техник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-битного числа с плавающей запятойПравить
знак | экпонента | мантисса | |||||
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ПримечанияПравить
- ↑ В зависимости от контекста, их можно было бы рассматривать как одно представлений определённого типа данных, но, если рассматривать вопрос строго, то, всё-таки постановка вопроса о том, что каждый конкретный формат minifloat соответствует именно определённому типу данных выглядит более правильной.
- ↑ 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.