迷ったらコレ!ディープラーニング用PCのGPU選び2018年決定版

目標

the-gpu-1316015_640

ディープラーニング用PCを用意するためにGPUを買うことにしました。PCを自作というよりはデスクトップPCにGPUを増設して済ませる予定です。GPUにかける予算は5万円前後です。

他のパーツに関してはCPUだとi5、メモリは8GBあれば大丈夫そうなのでそのままです。

結果から言うと次の2択になりました。

機械学習用のPCを個人で作る人はそこまで多くないので国内のサイトだけを見ていると情報が少し足りなかったので海外の記事も参考にしました。結果的には次の2択になりました。

2018年、GPU購入の注意点(追記)

2017年末ごろから2018年に入り、ビットコインなどの仮想通貨のマイニング需要が急増しています。それにともないマイニングマシン用に人気のNVIDIA GeForce GTX 1070の価格が若干ですが高騰しています。

時々の相場によっては多少高くてもNVIDIA GeForce GTX 1080のほうがコストパフォーマンスがよくなっている場合があるので、価格をチェックしてから購入しましょう。

NVIDIA GeForce GTX 1080のほうは仮想通貨マイニング用としてはあまり人気がないので価格は
比較的落ち着いています。

0からディープラーニングPCを用意する場合はゲーミングPCのセール品がおすすめ

0からディープラーニング用PCを作りたい場合、ゲーミングPCがおすすめです。
パソコン工房【公式通販サイト】
はサイトが見やすくセール品が多いのでおすすめです。

また、ゲーミングPCの場合、高性能なCPUを積む人が多いので
i5は人気がなく安くなってることがあります。

よってGPUはGeForce GTX 1080または1070で絞り込んでCPUがi5のセール品を買うのがオススメです。

BTO PCはGPUの相場に左右されにくい

また、主観ですがBTO PCの方がGPUの相場に左右されにくい気がします。

なので、NVIDIA GeForce GTX 1070搭載のPCが欲しいけど
GPUの価格が高騰している場合、BTOのほうがお得な可能性があります。

マイニング用としてGPUを単品で購入する人が多く、BTOで買う人が少ないからかもしれません。

CPUよりGPUにこだわる理由(ここは飛ばしてもOK)

CPUよりGPUを優先すべき理由が気になったので調べてみました。

We can simply do this by doing all the operations at the same time instead of doing it one after the other. This is in a nutshell why we use GPU (graphics processing units) instead of a CPU (central processing unit) for training a neural network.

GPUはCPUと違って、すべての操作を順番に行うのではなく、同じ操作を同時に行うこと(並行化)ができます。これが、ニューラルネットワークを訓練するためにCPUの代わりにGPUを使用する理由です。

もう少し詳しく説明すると…

GPUのほうが機械学習に向いているのはなぜでしょうか?
それは深層学習の大部分の処理は行列の掛け算でだからです。

では、なぜ行列の掛け算はGPUと相性が良いのでしょうか?
行列の掛け算の各要素は行ベクトルと列ベクトルの内積計算で行うことができます。

すなわち、「数の掛け算を並行して計算」→「掛け算の結果を足す」という工程で計算できます。
「数の掛け算を並行して計算」のところがGPUと相性が良いです。さらに各要素の計算自体を並行化できるため行列の掛け算はGPUで行うと大きな高速化が見込めます。

最低限のスペック(GPU)

NVIDIA製から選ぶ

なぜ、NVIDIA製から選ぶのかというとTensorFlowやKerasなどの多くの機械学習ライブラリがNVIDIA製のGPUしかサポートしていないからです。

For pretty much all machine learning applications, you want an NVIDIA card because only NVIDIA makes the essential CUDA framework and the CuDNN library that all of the machine learning frameworks, including TensorFlow, rely on.

さらにGPUのバージョン(CC)も重要

You will also need an NVIDIA GPU supporting compute capability 3.0 or higher.

NVIDIAのテンソルフローに関する入門記事をみると、GPUを用いて学習する場合GPUのCC(compute capability)が3.0以上である必要があります。CCとはGPUのバージョンのようなもので実行できる処理を決定します。

CCの確認

下記のリンクからCCの確認ができます。

CUDA GPUs | NVIDIA Developer

「どのシリーズから選べば良い?」→「GeForce GTXです。」

Tesla、Quadroは業務用、桁が1つ違うので却下

CCの確認ページを見るとTeslaとかQuadroなどの見慣れない単語があると思います。これらは商品のシリーズ名です。Tesla、Quadroは業務用シリーズです。試しにAmazonで見てみると桁1つが違います。

ELSA NVIDIA Tesla K80搭載 ETSK80-24GER
ELSA NVIDIA Quadro P6000 グラフィックスボード VD6177 EQP6000-24GER

NVSは複数ディスプレイの表示に特化、情報が少ないので却下

NVSはゲーム用らしいです。複数ディスプレイの表示に特化しているみたいです。このシリーズに関しては情報が少ないのでパス

GeForce GTXシリーズが無難

GeForceは良く知られたGPUのシリーズですね。GeForceシリーズのなかでもGeForce GTXというシリーズがあります。機械学習をやっているサイトを調べると大体GeForce GTXシリーズのGPUを使ってます。

よって、GeForce GTXから選ぶのが無難です。ちなみにGeForce GTX以外のGeForceはCC3.0未満なので機械学習には使えないです。

Jetson TX1は機械学習用PCのキット

しかし、NVIDIAのページを眺めているとJetsonという謎の文字が…調べてみると機械学習用のPCを組むキットらしいです。Jetson TX1の商品の説明を読むと機械学習に特化していて電力効率が良いらしいです。けどキットというよりはGPUを増設したい感じだから却下。

NVIDIA Jetson TX1開発キット Jetson TX1 Module and

GeForce GTXだったら?

redditのQ&Aを参考にしてました。

DISCUSSIONGTX 980Ti, 1060, 1070 or 1080 for deep learning?

5万前後で探しているのならここで比較されているGPUに絞られます。コスパ重視ならGTX 1070、性能重視ならGTX 1080で良さそうです。

玄人志向というメーカーのが安いけど?

玄人志向とはその名の通り玄人向けのGPUです。GPUの冷却機能が最低限しかないらしいです。
そこまで詳しくない人は辞めた方が良さそうです。

機械学習にノートPCは?

ちなみに、機械学習用のノートPCについても検討して見ました。

ノートPCでディープラーニング環境を整える場合、 いくらぐらいになるのか気になったので調べて見みました。 機械学習用のPCと...