積和演算

積和演算はデジタル信号処理において非常に多く使用される演算で、デジタルシグナルプロセッサでは積和算命令を1クロックで実行できる専用の演算回路を持つ。また、1秒間にこの積和演算を何回実行できるか、がプロセッサの性能指標として使われることもある2013年のプロセッサのFLOPS値計算方法 - トータル・ディスクロージャ・サイト（事実をありのままに）。

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

積和演算はドット積の計算に現れる。ベクトル  と  のドット積は「アキュムレータ  に対し要素の積  を足し込む」という積和演算を要素分繰り返すことで得られる。行列積（GEMM）の各要素は行と列のドット積で計算されるため、行列積は積和演算の集まりと言える。

 融合積和演算 
積和の演算式において、途中の積算の演算結果を浮動小数点数の値としていったん丸めてしまうと、最終演算結果に大きな誤差が発生する。途中の積算を丸めず、積和演算を1命令で行なってしまうことで、最終演算結果の誤差を小さくするのが融合積和演算 (fused multiply-add, FMA/FMAD) であるHPC性能が大幅に強化されたHaswell(前編) -各コアに256bit長のFMAを2個装備 | マイナビニュース。FMAはIEEE 754規格の2008年改訂版 (IEEE 754-2008) で標準化されている。

CPUでは、HPのPA-RISC、IBMのメインフレームコンピュータ3090のVF拡張、IBMのPowerプロセッサ、インテルのItaniumプロセッサ、インテルx86系プロセッサの拡張命令であるFMA命令セット"FMA (Fused Multiply-Add) は、インテル® AVX の別の拡張機能 ... インテル® AVX と FMA". Intel. 概要: インテル® Advanced Vector Extensions (インテル® AVX) 命令の組み込み関数.、ARMの拡張命令であるVFPv4やNEONv2で、このFMA命令が実装されているインテル® Advanced Vector Extensions (インテル® AVX) 組み込み関数と FMA (Fused Multiply-Add) 組み込み関数の詳細FMA（Fused Multiply Add）コンパイラ組み込み関数。CPUやDSPに限らず、GPU（NVIDIA製やAMD製やインテル製など）でもFMA命令がサポートされている後藤弘茂のWeekly海外ニュース: GeForce GTX 280の倍精度浮動小数点演算4Gamer.net ― AMD，世界初のDX11 GPU「ATI Radeon HD 5800」を発表。HD 4800の大幅な進化形GTC 2014 - GPUの浮動小数点演算の精度:理論と実践(前編) | マイナビニュース。

 行列積和演算 

行列積和演算の GPU 向けの仕様では NVIDIA CUDA の WMMA APINVIDIAが語るVoltaとTuring、最新GPUはこう使おう p.3 ITmedia 2018年9月20日、AMD ROCm の rocWMMAWhat is rocWMMA? AMD、Intel oneAPI の SYCL Joint Matrix ExtensionProgramming Intel® XMX Using SYCL Joint Matrix Extension Intelsycl_ext_oneapi_matrix Intel、HLSL 向けの WaveMMA 機能DirectX-Specs Microsoft、GLSL 向けの GLSL_KHR_cooperative_matrix 拡張GL_KHR_cooperative_matrix Khronos Groupなどが存在する。

 脚注 

 関連項目 
 SIMD

Category:代数学
Category:数学に関する記事
Category:デジタル回路