ディープラーニングPCはGPUが命!理由と選び方

bootstrap

ディープラーニング用PCが欲しくなったので、GPUを買うことにしました。

今回は、その時にしらべて分かった
機械学習PCがGPUにこだわるべき理由や選び方についてまとめてみました。

CPUよりGPUにこだわる理由

PCで計算を行うのは、主にCPUですが、
機械学習で重要とされているのは、GPUです。これって少し不思議ですよね。

なぜ、GPUの性能が肝となるのかを調べてみました。

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で行うと大きな高速化が見込めます。

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

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

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

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

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

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

0からディープラーニングPCを用意する場合…

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

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

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

ゲーミングPCはGPUの相場に左右されにくい

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

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

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

最低限のスペック(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のどのシリーズを選ぶべき?

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 TXはIoTを使ったIoTを目指すキット

NVIDIAのページを眺めているとJetsonという謎の文字が…
調べてみるとIotで使える機械学習PCを組むキットらしいです。
説明を読むと機械学習に特化していてコンパクトで電力効率が良いらしいです。

イメージとしては、機械学習のラズパイといったところでしょうか

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となると肝と...