はじめまして、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サーバーを購入する際は電力供給能力、冷却能力に気を付けましょう。