Описание тега half-precision-float
В большинстве случаев 16-битные числа с плавающей запятой используются в формате ieee-754 binary16, также известном как формат с плавающей запятой половинной точности, но возможны и другие форматы с другим выбором битов экспоненты и значащей.
(Однако связанные форматы, такие как Posit, которые имеют аналогичное использование, но другой двоичный формат, не охватываются этим тегом)
С плавающей точкой тег вика содержит ссылки на более подробную информацию, а также списки других тегов. (Этот тег временно был синонимом точности, но должен оставаться отдельным, потому что половинная точность менее широко применяется, чемfloat
/ binary32 и double
/ binary64.)
16-битные числа с плавающей запятой имеют меньшую точность (мантисса, иначе значимые биты) и меньший диапазон (биты экспоненты), чем широко используемый 32-битный двоичный код одинарной точности IEEE75432. float
или 64-битный binary64 double
. Но он занимает меньше места, что снижает требования к пропускной способности памяти, а на некоторых графических процессорах имеет лучшую пропускную способность.
Он довольно широко поддерживается на графических процессорах, но, по крайней мере, на процессорах x86 поддержка ограничена преобразованием в / из float
. (И только на процессорах, поддерживающих AVX и расширение F16C, например, Intel, начиная с IvyBridge.)
Если бы какое-либо расширение CPU SIMD напрямую поддерживало математику с половинной точностью, у него было бы в два раза больше элементов на вектор SIMD и, следовательно, в два раза больше пропускной способности float
для векторизуемых задач. Но такая поддержка в 2020 году не получит широкого распространения, если вообще будет.