半精度浮動小数点数
半精度浮動小数点数(はんせいどふどうしょうすうてんすう、英: half-precision floating point number)は浮動小数点方式で表現された数(浮動小数点数)の一種で、16ビット(2オクテット)の形式によりコンピュータ上で表現可能な浮動小数点数である。
IEEE 754-2008ではbinary16と名づけられている他、処理系や文脈によってs10e5やhalf、fp16などと表記される。
OpenCL - OpenCL 1.0の拡張として、cl_khr_fp16が有効であれば利用可能。
OpenCV - 3.3.0以降でfloatとhalfの変換が利用可能。
Cg - 組み込みのhalf型として実装されている。
CUDA - half型を直接扱う演算子のサポートはないが、float型などとの相互変換関数や各種演算用の組み込み関数が用意されている。
Direct3D/HLSL - Direct3D 9以降のテクスチャフォーマットとしてFP16をサポート。また、Direct3D 9以降のHLSLでhalf型をサポート。Direct3D 10ではhalfは常にfloatとして扱われる。DirectX 11.1 (Direct3D 11.1) 以降では低精度シェーダー(最低精度シェーダー)をサポートし、min16floatとして対応ハードウェア上で利用できるが、この低精度シェーダー機能はMicrosoft Windows 8以降でしか動作しない。
OpenGL/OpenGL ES/GLSL - OpenGL 3.0以降のテクスチャフォーマットとしてFP16をサポート。GLSLではmediumpとして利用可能。
C++ - s10e5として実装例がある。
OpenEXR - C++向けのhalfクラス型が提供されている。
macOSではMac OS X v10.4以降にて、RGBA各チャンネルが16ビット浮動小数点数(ピクセルあたり64ビット)のピクセルフォーマットkCIFormatRGBAhがサポートされている。