「半精度浮動小数点数」の版間の差分
Administrator (トーク | 投稿記録) (→事の経緯) |
Administrator (トーク | 投稿記録) (→事の経緯) |
||
27行目: | 27行目: | ||
まさに典型的なNVIDIAとAMDの争いのひとつであり、時代背景的には[[PS3]]と[[Xbox 360]]がモロに直撃していた。 | まさに典型的なNVIDIAとAMDの争いのひとつであり、時代背景的には[[PS3]]と[[Xbox 360]]がモロに直撃していた。 | ||
− | + | この争いはハリウッドの映画会社である「Industrial Light & Magic」が「16ビットの度浮動小数点数」の仕様を含む「[[OpenEXR]]」を発表したことで終焉を迎える。 | |
現在では[[OpenGL]]や[[Direct3D]]にも採用されている。 | 現在では[[OpenGL]]や[[Direct3D]]にも採用されている。 | ||
2022年9月26日 (月) 02:38時点における版
半精度浮動小数点数(読み:はんせいどふどうしょうすうてん)とは、浮動小数点の表現方法のひとつで、16ビット形式のものをいう。巷では「FP16」や「Half」などとも呼ばれる。
IEEE 754-2008では「binary16」と命名されている。単に半精度浮動小数点数という場合はほぼ「binary16」を指している。
IEEE 754形式
IEEE 754標準はbinary16を以下のように定めている。
概要
半精度浮動小数点数は主にコンピューターグラフィックス界隈で流行りの「HDR」で使われている数値形式である。
一方で機械学習とは若干相性が悪いらしく、別途「bfloat16」というもの作られ、現在ではそちらが主流らしいぞ。
事の経緯
その昔、RGB各8ビット整数の24ビット(穴埋めして32ビット)では「色表現できる範囲が狭い」という問題を叫ぶ人があらわれた。 かつて「人間の目で認識できる限界」と絶賛された「24ビットカラー(16,777,216色)とかショボいじゃん」という時代が到来したのである。 これは本物の写真のような自然画ならともなく、色の偏ったアニメ調の絵や現実離れしたCGだと最悪256色しか表現できないケースがあったためである。
これに対してNVIDIAは2002年ごろに「RGB各16ビットの浮動小数点数で表す」という手法を発表した。 この手法はRGB表現で32ビット整数より1.5倍の48ビットの帯域を必要とし、絵は綺麗になるがレンダリングが死ぬほど遅いという問題点を抱えていた。
一方、ATI(現AMD)からはRGB各10ビットの浮動小数点で表すという手法が登場した(Radeon X三桁シリーズ)。 この手法は計30ビットであるため当時のハードウェアへの負荷の差はなく有利であったが、「10ビット刻み」はプログラマが死ぬほど扱いにくいという問題点を抱えていた。
まさに典型的なNVIDIAとAMDの争いのひとつであり、時代背景的にはPS3とXbox 360がモロに直撃していた。
この争いはハリウッドの映画会社である「Industrial Light & Magic」が「16ビットの度浮動小数点数」の仕様を含む「OpenEXR」を発表したことで終焉を迎える。 現在ではOpenGLやDirect3Dにも採用されている。