半精度浮動小数点数型 【half-precision floating point number type】
概要
半精度浮動小数点数型(half-precision floating point number type)とは、プログラミング言語などで用いられる数値データ型の一つで、16ビット長の浮動小数点数を格納することができるもの。言語や処理系により「half」「fp16」「binary16」などの型名で表される。小数点数以下の桁数が可変であるような実数値を表現することができる浮動小数点数型の一つで、一つの数値を16ビットの長さのデータとして表す。標準規格として普及しているIEEE 754の「binary16」形式の場合、十進数で-65,504~65,504の範囲を表現することができ、精度は3桁である。
binary16形式では、先頭1ビットが正負を表す符号部、続く5ビットが小数点の位置を表す指数部、残りの10ビットが各桁の値の並びを表す仮数部となっている。仮数の先頭が「1」になるよう調整され、この1を省略して2桁目から格納するケチ表現を採用しているため、実質的には11ビットで仮数を表す。
多くのプログラミング言語やCPUは、32ビットの単精度浮動小数点数型を標準の浮動小数点数型として扱っているが、3次元コンピュータグラフィックス(3DCG)や機械学習などの分野では計算精度より計算回数の方が重要な場面が多く、大量のデータを扱うため記憶容量の削減にも繋がることから、半精度浮動小数点数型への対応が進みつつある。
(2023.4.14更新)