FLOPS(1秒あたりの浮動小数点演算回数)
FLOPSは、システムが1秒間に実行できる浮動小数点演算の回数を示す指標です。CPU、GPU、スーパーコンピュータの比較に用いられ、MFLOPS、GFLOPS、TFLOPS、PFLOPSなどで表されます。
概要
FLOPSは、Floating Point Operations per Second(1秒あたりの浮動小数点演算回数)の略です。プロセッサまたはシステムが1秒間に実行できる浮動小数点算術演算の回数を表すスループットの単位です。科学計算、工学、機械学習の多くの処理は浮動小数点演算に大きく依存するため、FLOPSはCPU、GPU、さらにはクラスター全体の生の数値計算能力を比較する一般的な方法となっています。
測定対象と一般的な単位
FLOPSは、浮動小数点数に対する加算、乗算、積和演算(FMA)などの算術演算を数えます。性能は通常、複数の規模で報告されます。
- MFLOPS — 100万FLOPS
- GFLOPS — 10億FLOPS
- TFLOPS — 1兆FLOPS
- PFLOPS — 1000兆FLOPS以上
精度、演算、および数え方
単精度、倍精度、半精度、bfloat16などの精度の違いは、スループットと数値的な挙動の両方に影響します。ハードウェアでは低精度の演算をより高速に実行できることが多いため、単精度演算と倍精度演算について別々のFLOPS値を報告するプロセッサもあります。数え方にも違いがあり、複素数演算や、1クロックサイクルで複数の浮動小数点計算を実行するベクトル化命令を含める測定もあります。
測定:ピーク性能と持続性能
報告されるFLOPSでは、理論ピーク性能と持続性能(実測性能)が区別されるのが一般的です。理論ピーク性能はコア数、クロック速度、ベクトル幅などのハードウェア仕様から導かれ、持続性能はベンチマークを実行して得られます。数値演算スループットの報告や順位付けに使われる代表的なベンチマークには、行列および線形代数カーネルに負荷をかける実装があります。これらは、メモリ、相互接続、ソフトウェアが実際のスループットをどのように制限するかを示します。詳しくは、システム性能テストに関するリンクを参照してください。
用途と重要性
高いFLOPS値は、ハイパフォーマンスコンピューティング(HPC)、科学シミュレーション、気象モデリング、ディープラーニングで重要です。グラフィックスプロセッサや専用アクセラレータは、並列処理のワークロードで非常に高いFLOPSを達成することがよくあります。生のFLOPS値だけではアプリケーションの高速な実行は保証されないため、設計者はFLOPSとメモリ帯域幅、レイテンシ、エネルギー効率との均衡を図ります。
区別と限界
FLOPSが測るのは浮動小数点算術のスループットだけであり、命令の構成、整数性能、I/O、ソフトウェアの効率は対象としません。FLOPSが似通う2台のマシンでも、一方がより優れたメモリ帯域幅またはコンパイラのサポートを備えていれば、特定のアプリケーションでは異なる性能を示すことがあります。コンピュータ一般の背景についてはコンピュータに関する資料を、浮動小数点演算そのものについては浮動小数点に関する資料を参照してください。
関連項目
著者
AlegsaOnline.com FLOPS(1秒あたりの浮動小数点演算回数) Leandro Alegsa
URL: https://ja.alegsaonline.com/art/35167