vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2022-11-03 01:43 pm

Про форматы чисел с плавающей точкой, познавательное

"FP64, FP32, FP16, BFloat16, TF32, and other members of the Zoo"



Библиотека Си++, реализующая плавающие числа с произвольным размером экспоненты и мантиссы: https://github.com/oprecomp/FloatX

К примеру, BFloat16 реализуется как тип float<8,7>. Размер экспоненты равен 8, размер мантиссы - 7.
juan_gandhi: (Default)

[personal profile] juan_gandhi 2022-11-03 08:48 pm (UTC)(link)

Для всякого машинного лернинга годится или bfloat16, или вообще сразу брать логарифмы и не мучаться. (Я когда-то сразу в логарифмы перегонял, все равно на больших данных будут большие числа.)

ircicq: (Default)

[personal profile] ircicq 2022-11-03 11:48 pm (UTC)(link)
Если логарифм не округлять до целого или 1/2, 1/4..., встаёт та же проблема: как его представлять?
Edited 2022-11-03 23:48 (UTC)
juan_gandhi: (Default)

[personal profile] juan_gandhi 2022-11-04 06:46 am (UTC)(link)

или bfloat16, или float16 - зависит от того, хватит ли пяти бит для порядка (вряд ли)

spamsink: (Default)

[personal profile] spamsink 2022-11-04 03:28 am (UTC)(link)
bfloat16 удобен с точки зрения преобразования <-> float32, но для разных вычислений могут пригодиться и числа с 6 или 7 битами порядка. 3⏨38 кажется многовато, а 6.5⏨4 - маловато.
spamsink: (Default)

[personal profile] spamsink 2022-11-04 10:32 pm (UTC)(link)
Немонотонность на w=5 очень удивительна.