FMA演算

提供: MonoBook
ナビゲーションに移動 検索に移動

FMA演算(Fused Multiply-Add)とは、積と和が合体した演算です。

数式で表すと x * y + z となります。この数式は「行列の乗算」や「ベクトルの内積」でよく使われます。行列ベクトルといえばSIMD演算の効果が絶大なので昨今のCPUSIMD命令やGPUでは「FMA演算をSIMD実行できる機能(1命令で複数データにFMA演算を行う機能)」が定番機能となっています。

このFMA演算をCPUGPUにおいて1命令で行うことで途中の積算を丸めずに積和演算を最終演算結果の誤差を小さくする工夫が考案されており、IEEE 754規格の2008年改訂版で標準化されています。これに準拠したCPUやGPUでの挙動は常に一定となります。