2017/07/30

2017年 DeepLearning用のGPUの選び方

いきなりまとめ


メーカーはNVIDIA一択。

全般的なオススメ。
  • GTX 1080 Ti(11GB)
  • GTX 1080(8GB)
  • GTX 1070(8GB)

入門用
  •  GTX 1060(6GB)

Today I Learned


Which GPU(s) to Get for Deep Learning: My Experience and Advice for Using GPUs in Deep Learning
を参考に。


マルチGPUの必要性

 

・並列化

NNをマルチGPUで効率的に並列化するのはとても難しい。

大規模なNNに対して恩恵は得られない。
小規模なNNは多少効率的。

・ライブラリ対応

DeepLearning用ライブラリでマルチGPUに対応しているものは少ない。
MSのCNTKはコア数に対してリニアに速度向上を期待できる。
次点はPytorch。
これらは1マシン最大4コアに対応し3.6-3.8倍の速度向上を期待できる。
Tensorflowは2-3倍。
Thernoは論外。

・並列化以外の可能性

並列化以外のマルチGPUの利点はGPUごとにアルゴリズムをテストできること。
モデル開発を加速できる。
リサーチの経験から言うと、big oneよりmany small GPUsが好み。


ハード選択


・メーカー選択

NVIDIA一択。
NVIDIAのライブラリはDLライブラリを作るのに便利。
AMDのOpenCLにはDL向けの良いライブラリがない。
将来出るとしてもCUDAの巨大なGPGPUコミュニティの利便性には敵わない。
IntelのXeon Phiはストレスマックス。

・スペック選択

一番重要なのはメモリの帯域。
同一のアーキテクチャ内ではメモリ帯域の比較は可能。
異なるアーキテクチャでは直接的には比較不可能。
だが大まかな目安にはなる 。

次に重要なのがアーキテクチャ。
kepler以降じゃないとcuDNNに対応していない。
しかしkeplerは遅いためmaxwellもしくはpascal。

モデルのサイズも重要。
上位GPUは大規模ANNでないとパフォーマンスを発揮できない。

・オススメのGPU

全般的なオススメ
  • GTX 1080 Ti(11GB)
  • GTX 1080(8GB)
  • GTX 1070(8GB)
GTX 980 Ti(6GB)買うくらいならこれらが良い。
メモリ8Gは少なく見えるが実際のところ十分以上。

入門用
  •  GTX 1060(6GB)
ただしメモリ3GBはダメ。
GTX 1060はTitan Xよりは遅いがコスパではGTX980に匹敵。

・各製品のポジション

GTX 1060 GTX 1050 Tiは初心者向け。
GTX 1070 GTX 1080はベンチャー、リサーチャー、企業向け。
GTX 1080 Tiはハイエンド向け。
Titan Xpはコスパが悪くお勧めできない。
GTX 1080 Tiの方が良い。
どうしてもメモリが欲しいcomputer vision researcher向け。

GTX Titan X (Maxwell)持ちなら次を待て。
12GBのメモリがどうしても欲しいならGTX Titan X (Maxwell)をeBayで買うのもよい。
が、ほとんどの研究者は GTX 1080 Tiで十分。
1GBの差はほとんど必要ない。

個人的にはGTX 1070 or GTX 1080のマルチを使用。
NLPがメインなのと複数のモデルを同時に試す方が好みだから。

GPUにコストをかけられない人のオプションは限られている。
AWSは遅いうえに高くなってしまった。
GTX 970も遅いうえに高い。
それならもう少しコストをかけてGTX 1060が良い。
GTX 1060が無理ならGTX 1050 Ti(4GB)。
4GBはきついが遊び程度ならよい。

0 件のコメント:

コメントを投稿

Relation Netowrksの概要

いきなりまとめ Relation Netowrksとは関係性の推論を行えるニューラルネット。 画像や音声の単純な認識ではなく、複雑な思考が可能。 例えば、 グレーの物体から最も離れている物体の形は何か? ボールは今何処にあるか? ランダムに動くボール群のどれが...