メインメニューを開く

積和演算 (せきわえんざん) は、演算のひとつで、を求める、つまり乗算の結果を順次加算する演算である。乗累算 (じょうるいざん) とも言う。MAD/MADD (multiply-add) [1][2]もしくは MAC/MACC (multiply-accumulate) と呼ばれることもある。演算式は以下のように表される。

積和演算はデジタル信号処理において非常に多く使用される演算で、デジタルシグナルプロセッサでは積和算命令を1クロックで実行できる[3]専用の演算回路を持つ。また、1秒間にこの積和演算を何回実行できるか、がプロセッサの性能指標として使われることもある[4]

なお、和ではなくを用いる場合は、積差演算と呼ばれる。

融合積和演算編集

積和の演算式において、途中の積算 の演算結果を浮動小数点数の値としていったん丸めてしまうと、最終演算結果に大きな誤差が発生する。途中の積算を丸めず、積和演算を1命令で行なってしまうことで、最終演算結果の誤差を小さくするのが融合積和演算 (fused multiply-add, FMA/FMAD) である[5]。FMAはIEEE 754規格の2008年改訂版 (IEEE 754-2008) で標準化されている。

CPUでは、インテルx86系プロセッサの拡張命令であるIntel AVX2命令セット、ARMの拡張命令であるVFPv4やNEONv2で、このFMA命令が実装されている[6][7][8]CPUDSPに限らず、GPUNVIDIA製やAMD製やインテル製など)でもFMA命令がサポートされている[9][10][2][11]

脚注編集

関連項目編集