Minifloat: различия между версиями

Материал из in.wiki
Перейти к навигации Перейти к поиску
 
Строка 26: Строка 26:
  
 
Обозначение (S, E, M, B) можно преобразовать в формат (B, P, L, U) как ([[Число с плавающей запятой#Диапазон чисел, представимых в формате с плавающей запятой|2, M + 1, B + 1, 2^S - B]]) (с использованием экспонент в смысле нотации IEEE).
 
Обозначение (S, E, M, B) можно преобразовать в формат (B, P, L, U) как ([[Число с плавающей запятой#Диапазон чисел, представимых в формате с плавающей запятой|2, M + 1, B + 1, 2^S - B]]) (с использованием экспонент в смысле нотации IEEE).
 +
 +
== Пример 8-битного числа с плавающей запятой ==
 +
 +
{| class="wikitable" style="text-align: center"
 +
|+Схема примера 8-битного числа minifloat (1.4.3)
 +
! width=12.5% | знак
 +
! width=50% colspan="4" | экпонента
 +
! width=37.5% colspan="3" | мантисса
 +
|-
 +
| style="background: #d5ffff" | 0
 +
| style="background: #a4ffb4" | 0
 +
| style="background: #a4ffb4" | 0
 +
| style="background: #a4ffb4" | 0
 +
| style="background: #a4ffb4" | 0
 +
| style="background: #ffb2b4" | 0
 +
| style="background: #ffb2b4" | 0
 +
| style="background: #ffb2b4" | 0
 +
|}
  
 
== Примечания ==
 
== Примечания ==
 
[[Категория:Числовые типы данных]]
 
[[Категория:Числовые типы данных]]

Текущая версия от 23:42, 7 января 2024

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.