CPUやGPUの性能を表す単位の一つFLOPSですが、一体この単位は何を表しているのか?どのような性能の目安になるのか?というのを調べてみました。最近はグラボのことを調べていて、アーキテクチャなどの単位などにも興味が出てきましたが、相変わらず自分の脳内整理として備忘録として書かせていただいております。不足しているところや、違うところがあったらご指摘・ご鞭撻ください。
FLOPSとは
まずFLOPSはFLoating-point Operations Per Secondの略です。調べてみると浮動小数点演算を1秒間にどれだけ行えるかを表した単位になっております。
1秒間に浮動小数点の計算を10回行えれば10FLOPSとなり、1000回で1K(キロ)FLOPSとなり、10億回行えば10G(ギガ)FLOPSです。もうギガを超えて、テラの域にも達しております。
浮動小数点とは?
浮動小数点は、小数点のある計算を乗数に直して計算する方法です。コンピューター上0.12は12×10のマイナス2乗として表します。
しかし、PCの中ではそう簡単には行かず、いろいろな形式(IEEE754形式やbfloat16形式やIBM方式など)があるので単純ではないようです。
ここを理解するのはかなり難しそうであり、私は計算式系が苦手なので見ていて『ムムムムム・・・。』となってしまっております。
浮動少数を計算して何に役立つ?
ゲームでは3DCG等の座標計算などの処理に活用されております。3DCGでは多くの点を用いて図形を描画するため、瞬時の座標計算等に用いられており、計算能力が高いほど滑らかな処理が可能となります。ほかにも様々な処理に活用されております。
他の機能と連動して高性能に
FLOPSという単位だけが高ければ高性能というわけでもなく、他にも色々な演算機能が関わってきます。CUDA数の記事でも書きましたが、FLOPSだけでは性能の全ては測れません。
しかし、知っておけば比較ができるので、知っておくとなんとなくCPUやクラボ選びが楽しくなる数値でもあります。