FLOPS

FLOPS（フロップス、"Floating-point Operations Per Second"）はコンピュータの性能指標の一つ。
概要.
FLoating point number Operations Per Secondの名称が示す通り、1秒間に浮動小数点演算が何回できるかの指標値ひいては性能値の事を指す。
ハードウェアの仕様として用いられるのは理論値であるが、ベンチマークソフトなどの計測から導き出される計測値は、理論値からは原則的に下がる。その為、理論値だけでなく、「理論的に算出された値の何%で実際のプログラムが動作するか」ということが重要になる（実測値）。実際の値が理論値に近いほど、より効率的なコンピュータだと考えられるからである。
パーソナルコンピュータ（以下PCと表記）向けのCPUやGPUメーカーは、計算ノードとしては単一のノードとなるので通常理論値で発表する（理論値がほぼそのまま実効値となる）が、一般的に並列方式スーパーコンピュータ（以下スパコンと表記）では多数の計算ノードのクラスタとして構築されるため、実際の計算能力を理論値に近づけるには高度な運用能力が必要であり、理論値ではなく LINPACK ベンチマークでの実測値がよく使われている。
2016年前後の時点において、普及している家庭用のPCのCPUはGFLOPS、スパコンの世界1位はPFLOPSの単位であるが、ムーアの法則にそって高速化が進んでおり、2018年に並列度1億でLINPACK性能値はEFLOPSの単位に到達すると予想されている。2000年頃からの理論値ではPCとスパコンの比例値は、おおよそ1万倍の差で推移している。
2020年4月現在、世界最高速のスパコンはSummitで200PFLOPS。分散コンピューティングでは、Folding@homeが一時的に2.4EFLOPSを突破した。
代表的なハードウェアの浮動小数点数演算能力.
PC (Intel).
Core 2 Duoより1クロックで SSE で加算と乗算が計算できるようになり128ビット幅だと倍精度で 4 FLOPS/クロック。Sandy Bridgeより搭載した Intel AVXは256ビット幅なので8FLOPS/クロック。Intel FMAは融合積和命令により1命令で積と和の2演算ができるので16FLOPS/クロック。単精度だと、これらの演算回数は2倍。Atomは1クロックで1つのSSE加算命令が、2クロックで1つのSSE乗算命令が実行できるため、合計すると倍精度で3FLOPS/クロックとなる。
PC/Server (AMD).
Bulldozer は1モジュールにつき2つの128ビット積和演算器があり、倍精度は2つのFMA命令を同時実行することにより 8 FLOPS/Cycle。
ARM.
ARM NEON はCortex-A15までは倍精度が扱えなく、単精度のみ。ARM NEON は 128ビット幅で単精度だと 4 FLOPS/Cycle だが、Cortex-A15 は FMA があるので 8 FLOPS/Cycle。
倍精度は、Cortex-A9 は VFPv3 により、2 cycle で足し算2回、乗算1回、合計3演算できるので、1.5 FLOPS/Cycle。Cortex-A15 は VFPv4 により、1 cycle で1回 FMA が計算できるので、2 FLOPS/Cycle。Cortex-A57より、NEONでも倍精度が扱えるようになる。
ゲーム機.
※いずれも単精度（FP32）
グラフィックスカード.
単精度の積和算を 2 FLOPS/Clock で行える。
AMD.
ハイエンドでは倍精度(fp64)は 0.5 FLOPS/Cycle であるが、ミドルレンジ以下は 0.125 FLOPS/Cycle であったり、倍精度の計算が出来なかったりする。
Intel.
HD Graphicsの各EUは4-way SIMDの演算器を備えており、1命令で4並列の単精度浮動小数点演算が可能である。Sandy Bridgeより前の世代では1クロックでEUあたり1つの加算もしくは乗算命令を実行可能で、4FLOPS/EU。Sandy Bridge世代では1クロックでEUあたり1つのFMA命令を実行可能で、8FLOPS/EU。Ivy Bridge世代以降は1クロックでEUあたり2つのFMA命令を実行可能で、16FLOPS/EUとなる。