CPUとGPUの比較

CPUとGPUの比較

はじめまして、Link-Uの山田です。

社内ではサーバーなど、ハードウェアの調達担当です。

GPUサーバーはお高い買い物になりがちですので、GPUサーバーを買う理由を考えてみましょう。

*社内への言い訳記事ではありません、多分。

まずは性能を比較してみましょう

とりあえず、CPUメーカーの長たるIntelの最上位モデルとNVIDIAのゲーム向け、サーバー向けの最上位モデルの浮動小数点演算能力を比較してみましょう。

Xeon Platinum 8180 GeForce 1080Ti Tesla V100
倍精度(64bit) 1.12 TFLOPS 0.33TFLOPS 6.38TFLOPS
単精度(32bit) 2.24 TFLOPS 10.61TFLOPS 12.75TFLOPS
半精度(16bit) 2.24 TFLOPS 10.61TFLOPS 25.5TFLOPS
消費電力 205W 250W 250W
お値段 $10009 $699 $8000~$9000

* この他V100にはTensor Coreという行列演算のアクセラレーターもあります。
* 定格の能力で比較しています。実際には温度等の環境によって性能が上下します。

やはり最上位というだけあってお値段は中々ですね。特にXeonの場合はモデルのバリエーションも多いので、最上位モデルを買う意味はあまりないかと思います。

各種演算の使い道

倍精度浮動小数点演算

主に科学技術計算、シミュレーション等の昔ながらの伝統的なエンタープライズ用途での計算に用います。

ゲーム用途のGeForceではバッサリ切られています。

完全に切らなかったのは、一応エンタープライズのGPU向けに書いたプログラムが「動かないわけではない」状態にしたかったからではないかと思います。

単精度浮動小数点演算

一般的に利用する浮動小数点の命令になります。ゲームも単精度浮動小数点演算になります。

ゲーム用途になった時のGeForceのパフォーマンスの良さが光ります。

もっともこんな話もあり、GeForceを商用利用するには注意が必要です。

半精度浮動小数点演算

最近までは注目されていませんでしたが、Deep Learningでよく使います。

Deep Learningは精度があまり必要なく、とにかく計算量をこなしたいので、使われます。

最近は半精度に飽き足らず、半々精度の活用まで行われつつあります。

Xeon、GeForceは特に半精度のことを意識していないので、単精度と同じになっています。

というか半精度であっても単精度で演算してるだけですね。

一方でTeslaは半精度をうまく扱えるようになっており、きれいに単精度の倍出るようになっています。

これはTeslaの大きなメリットであると言えます。

CPUとGPUの構造の比較

CPUは科学技術計算や機械学習、ゲームの他にもさまざまなアプリケーションを動作させます。

その中には処理を複数のコアに分散しにくいものや、複雑な条件分岐を含むものもあります。

それらを処理するため、CPUはコア1つ1つが極めて強力かつ巨大にできています。

逆にGPUはCPUに比べて単純な計算機が大量に載せられています。

さきほど出した浮動小数点演算の能力の計算式ですが、

コア数 × クロック(コアの動作速度) × IPC(クロック当たりの命令実行数)

で計算できます。この計算式に従ってGeForceとTeslaを比較してみましょう。

Xeon Platinum 8180 GeForce 1080Ti Tesla V100
コア数 28 3584 5120
クロック 2.5GHz 1.48GHz 1.245Ghz
IPC 32 2 2
単精度演算能力 2.24TFLOPS 10.61TFLOPS 12.75TFLOPS

Tesla V100には1枚のカードになんと5120コアも載っています。一方でIPCが高くなかったり、クロックがCPUに比べると抑えられていたりするのもわかります。

CPUでGPUに対抗してみる

Xeon Platinumは8 CPUの構成まで取ることができます。8個搭載した場合の演算能力は

2.24TFLOPS × 8 = 17.92TFLOPS

これはTesla V100の12.75TFLOPSを超えます。

こう考えてみると、消費電力の問題さえ考えなければ、8 CPUのサーバーを持っている人はGPUを買わないでCPUで押し切るというのも1つの選択肢であることがわかります。

勿論、既存のサーバーのない環境下でDeep LearningをしたいのであればGPUを買ったほうがいいことは言うまでもありません。
そしてデータセンターに設置するのでなければGeForceのほうがコストパフォーマンスが良いこともまた、言うまでもありません。

*もっとも、Teslaの方が長時間稼働を前提とした設計となっているので、Deep Learningを長時間回すのであればTeslaも選択肢に上がると思います。

消費電力とラック

実際にGPUサーバーを購入する場合、2Uの筐体に8枚までGPUを挿せるサーバーが発売されています。

このサーバーを弊社の契約しているラックに入れることを考えてみましょう。

まず、8 GPUサーバーの消費電力は、

250W(GPU) × 8 + 150W(CPU) × 2 + その他 + 予備

で、大体3000Wぐらい見ておけば大丈夫だと思います。

Link-Uの契約しているラックは42U(フルラック)で4KVA ≒ 4000Wです。

このラックに何台収容できるかというと・・・

1台ですね!

何ということでしょう。42Uのラックに2Uのサーバーというさみしい光景が浮かびます。

いやいやいや、データセンターはお金を払えば契約電力を引き上げることができます。

Link-Uの利用しているデータセンターはお金さえ払えば6KVA≒6000Wまで引き上げることができます。

お金を払えば何台まで引き上げれるかというと・・・

2台ですね!

何ということでしょう。やはり42Uのラックに2Uのサーバーが2台というさみしい光景が浮かびます。

ちなみに弊社の利用しているデータセンターは2009年竣工のデータセンターで、

特に新しいわけではありませんが、特に古いわけでもありません。

日本のデータセンターは電力供給能力、冷却能力が低いため、GPUを大量に搭載したサーバーは場所に余裕があっても設置できないことがあります。

まとめ

非商業用途でDeep Learningを行うのであればGeForceのコスパが良いですが、利用制限があったり絶対的な性能はTeslaに劣ったりします。

 

いざGPUサーバーを購入する際は電力供給能力、冷却能力に気を付けましょう。