Minifloat: различия между версиями
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
{{Болванка}} | {{Болванка}} | ||
− | В вычислительной техникe '''minifloat''' - группа типов данных<ref>В зависимости от контекста, их можно было бы рассматривать как одно [[Представление типа данных|представлений]] определённого типа данных, но, если рассматривать вопрос строго, то, всё-таки постановка вопроса о том, что каждый конкретный формат minifloat соответствует именно определённому | + | В вычислительной техникe '''minifloat''' - группа типов данных<ref>В зависимости от контекста, их можно было бы рассматривать как одно [[Представление типа данных|представлений]] определённого типа данных, но, если рассматривать вопрос строго, то, всё-таки постановка вопроса о том, что каждый конкретный формат minifloat соответствует именно определённому [[Тип данных|типу данных]] выглядит более правильной.</ref>, выраженных как [[числа с плавающей запятой]], представленные очень небольшим количеством битов. Они не очень подходят для численных расчетов общего назначения, но используются для специальных целей, чаще всего в компьютерной графике, где точность вычисления не имеет принципиального значения<ref>{{cite journal|last1=Mocerino|first1=Luca|last2=Calimera|first2=Andrea|title=AxP: A HW-SW Co-Design Pipeline for Energy-Efficient Approximated ConvNets via Associative Matching|journal=Applied Sciences|date=24 November 2021|volume=11|issue=23|page=11164|doi=10.3390/app112311164|doi-access=free}}</ref>. |
В последние годы подобные форматы данных, такие как [[bfloat16]], также используются в машинном обучении. Кроме того, они часто используются в качестве педагогического инструмента на курсах информатики для демонстрации свойств и структур арифметики с плавающей запятой и чисел [[IEEE 754]]. | В последние годы подобные форматы данных, такие как [[bfloat16]], также используются в машинном обучении. Кроме того, они часто используются в качестве педагогического инструмента на курсах информатики для демонстрации свойств и структур арифметики с плавающей запятой и чисел [[IEEE 754]]. | ||
Строка 10: | Строка 10: | ||
Нормализованные числа хранятся со [[Смещённая экспонента|смещённой экспонентой]]. Новая версия стандарта [[IEEE 754-2008]] содержит 16-битные двоичные числа с плавающей запятой. | Нормализованные числа хранятся со [[Смещённая экспонента|смещённой экспонентой]]. Новая версия стандарта [[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-битного числа с плавающей запятой == | ||
+ | |||
+ | {| 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
![]() |
Это незавершённая статья. Вы можете помочь проекту, исправив и дополнив её. |
В вычислительной техник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.