積和演算
提供: miniwiki
積和演算 (せきわえんざん)は、演算のひとつで、積の和を求める、つまり乗算の結果を順次加算する演算である。乗累算 (じょうるいざん) とも言う。MAD/MADD (multiply-add) [1] [2]もしくは MAC/MACC (multiply-accumulate) と呼ばれることもある。演算式は以下のように表される。
- [math]a \leftarrow a + b \times c[/math]。また、1秒間にこの積和演算を何回実行できるか、がプロセッサの性能指標として使われることもある[3]。
なお、和ではなく差を用いる場合は、積差演算と呼ばれる。
- [math]a \leftarrow a - b \times c[/math]
融合積和演算
積和の演算式において、途中の積算[math]b \times c[/math]の演算結果を浮動小数点数の値としていったん丸めてしまうと、最終演算結果に大きな誤差が発生する。途中の積算を丸めず、積和演算を1命令で行なってしまうことで、最終演算結果の誤差を小さくするのが融合積和演算 (fused multiply-add, FMA/FMAD) である[4]。FMAはIEEE 754規格の2008年改訂版 (IEEE 754-2008) で標準化されている。
CPUでは、Intel x86系プロセッサの拡張命令であるIntel AVX2命令セット、ARMの拡張命令であるVFPv4やNEONv2で、このFMA命令が実装されている[5][6][7]。CPUやDSPに限らず、GPU(NVIDIA製やAMD製やIntel製など)でもFMA命令がサポートされている[8][9][10][11]。
脚注
- ↑ 【後藤弘茂のWeekly海外ニュース】HaswellのGPUコア「Iris」はなぜ強力なのか - PC Watch
- ↑ 科学技術計算向け演算能力が引き上げられたGPUアーキテクチャ「Fermi」 (2) 科学技術計算向けのさまざまな工夫 | マイナビニュース
- ↑ 2013年のプロセッサのFLOPS値計算方法 - トータル・ディスクロージャ・サイト(事実をありのままに)
- ↑ HPC性能が大幅に強化されたHaswell(前編) -各コアに256bit長のFMAを2個装備 | マイナビニュース
- ↑ 概要: インテル® Advanced Vector Extensions (インテル® AVX) 命令の組み込み関数
- ↑ インテル® Advanced Vector Extensions (インテル® AVX) 組み込み関数と FMA (Fused Multiply-Add) 組み込み関数の詳細
- ↑ FMA(Fused Multiply Add)コンパイラ組み込み関数
- ↑ 後藤弘茂のWeekly海外ニュース: GeForce GTX 280の倍精度浮動小数点演算
- ↑ 4Gamer.net ― AMD,世界初のDX11 GPU「ATI Radeon HD 5800」を発表。HD 4800の大幅な進化形
- ↑ 科学技術計算向け演算能力が引き上げられたGPUアーキテクチャ「Fermi」 (2) 科学技術計算向けのさまざまな工夫 | マイナビニュース
- ↑ GTC 2014 - GPUの浮動小数点演算の精度:理論と実践(前編) | マイナビニュース