NVIDIA Tesla,Quadro,GeforceからAMD Radeonまでグラボを横断的に単精度浮動小数点演算FLOPS(フロップス)性能で比較しています。
単精度(FP32)の演算性能重視でグラボを選ぶ目的で調べた結果を覚え書きとしてまとめて作成しているものです。
FLOPSとは何か
FLOPS(フロップス)とはfloating point operations per secondのことで、1秒間あたりに浮動小数点演算を何回実行できるかという指標です。浮動小数点演算には主に単精度表現の32bitデータに対する単精度浮動小数点演算と、倍精度表現の64bitデータに対する倍精度浮動小数点演算があるのですが、機械学習やゲーム等のグラフィクス処理では単精度の性能が非常に重要です。
FLOPSの前に使われていたIPC
1サイクル(クロック)あたりにいくつの命令(instructions)を処理できるかを表すIPCという指標があるのですが、これは2000年代には既に時代遅れとなっていた指標です。なぜなら1命令で複数のデータに対して同時に(並列に)演算を実行するSIMD(シムディ)演算命令の使用によって性能向上をはかることが一般的になり、IPCという指標ではSIMDによる性能向上が反映されず不適格となったためです。
2000年代以前に大学に入った高齢世代(特に情報科学科等のコンピュータ科学分野の学科がまだ整備されていなかった時代の電気電子系卒業者)はこのIPC=コンピュータの性能という教育を受けてきた古い世代なのでFLOPSよりもIPCを重視する傾向にあります。米国や日本も含めて各国のスパコンの性能を見てみるとわかりますがFLOPS性能で競っており、1PFLOPS以上の性能を持っているとスパコンとしてみなされる基準になっています。京コンピュータは10ペタ(1京)FLOPSなので京と命名されています。
またSIMDであっても並列(parallel)ではなく平行(concurrent)に実行するベクトル型もあります。例えばスパコンで言えば地球シミュレータがベクトル型計算機でした。演算器は1つだけ用意して、その演算器に対しパイプラインのように立て続けに命令を流し平行実行し、あたかも演算器が複数あるかのようなSIMD演算に見えるタイプの計算機です。
しかしSIMDといったらハードウェアとしての演算器が複数用意されており、全データに対して並列に演算を施すタイプを意味するのが普通です。
スパコンの性能比較でも主要な指標として使われるFLOPS
現在ではFLOPS値でコンピュータの性能を比較するのが一般的です。
例えば日本のスパコンの「京コンピュータ」は倍精度浮動小数点演算で10P(ペタ)FLOPSの性能があります。
これは1秒間に10P(10,000,000,000,000,000=10,000兆=1京)回の倍精度浮動小数点演算を実行できる性能を意味しています。
世界各国の政府が予算を付けて建造するスパコンのみならず、コンピュータ・アーキテクチャ分野の大学・大学院の研究者もFLOPS性能で競っています。スパコンではグラボのようなコプロセッサ(Xeon Phi等)を大量に並列接続して性能向上を図っており、Xeon Phiは高価なため安いコプロセッサとしてGeForceやTITANのようなグラボを使って大量に並列接続して「小規模なスパコン」を大学の研究室で用意していたりします。
ヘネパタとして有名な書籍「Computer Architecture」の序章にIPC指標の欠点と、FLOPS指標が有用な理由が詳しく記述されていますのでFLOPS値の重要性がわからない場合には参照することをおすすめします。
機械学習のようにデータレベルの並列度が極めて高い分野ならクロックを下げてコア数を増やしたほうが消費電力あたりのFLOPSが高い
機械学習は行列演算の連続です。つまりデータレベル並列性が非常に高い応用分野です。このような分野ではクロックは低くてもいいから、コア数を多く確保して1サイクルあたりに発行するSIMD演算命令を増やすことが重要です。また同時に、1回のSIMD演算命令で演算する対象のデータ数を増やすのも効果的です(Tensor Coreはこの方向性で単精度性能を伸ばしている)。
同じコア数のGPUで動作クロックを1/2にすると消費電力は1/4にできます。
GeForce RTX 2080Tiは2,100MHz程度を達成するために500W程度の電力が必要です。しかし1,000MHzの動作クロックで同じGPUを動作させるだけで120W程度の電力で済みます。
これは電気代の観点だけでなく、温度が上がると性能が落ちる事実を踏まえても、「コア数を増やして動作クロックを落とす」のが有利になります。HPC(ハイパフォーマンス・コンピューティング)の分野では冷却性能=演算性能です。
TeslaやQuadroは最初からクロックが低いですが高価なため安価なGeForceで済ます人が多いです。そこで今回のランキングではGeForceも含めています。GeForceであってもNVIDIA公式ツールでクロックを下げることができます。
1位: NVISIA Tesla V100【14.028TFLOPS】
2017年リリース。Voltaアーキテクチャ採用。
ベースクロック1,245MHz、ブーストクロック1,380MHz、TDP250W
Streaming Multiprocessor80基。CUDA Cores:5120、Tensor Cores:640
2位: NVIDIA Tesla T4 【8.1TFLOPS】
2018年リリース。Turingアーキテクチャ採用。
ベースクロック585MHz、ブーストクロック1,590MHz、TDP70W
Streaming Multiprocessor40基。CUDA Cores:2560、Tensor Cores:320