用語集 · コンピューティング
FLOPS
別名:FLOP、TFLOPS、テラフロップス、teraflops、GFLOPS、ピーク性能、peak、演算律速、compute-bound、フロップス
1秒あたりの浮動小数点演算回数です。プロセッサが1秒間に実数の足し算と掛け算を何回できるかを表します。
浮動小数点演算とは、2つの実数(浮動小数点数)の足し算か掛け算1回のことです。FLOPS はプロセッサが1秒間にその演算を何回こなせるかを数えたもので、1テラフロップス(TFLOPS)は1兆回です。
プロセッサのピーク性能は、すべての演算ユニットが毎サイクル働いた場合にできる量です。
実際のプログラムはそれより少なくなります。データはメモリから届くのを待たなければならず、小さな行列ではすべてのユニットを忙しくしておけず、スレッドは互いを待ちます。ニューラルネットワークの学習はほとんどが行列の積です。 の行列に の行列を掛けるには 回の演算が要ります。この回数をかかった時間と比べると、プログラムがプロセッサのピーク性能をどれだけ使えているかがわかります。すでにかなりの割合を使えているなら、プログラムを大きく速くするには、演算を減らすか、たとえば bfloat16 のように安い演算にするしかありません。
このプロジェクトでは
2人のファイターと視覚では、CPU トレーナーの更新のミニバッチ1つ(2,048サンプル、方策ネットワークと価値ネットワークの順伝播と逆伝播)が約250億回の演算です。Intel Xeon の12スレッドで、更新は約 1 TFLOPS で動きました。これは12コアの理論ピークの約半分で、この程度の小さな行列としては普通の値です。スレッドや学習器プロセスを増やしてもほとんど伸びず、大きな違いを生んだのは bfloat16 だけでした。