本記事ではディープラーニング用に使う自作PC(Linux)に必要なスペックの検討を行います。

私が現在行っている研究内容が音声合成に関連しているのですが、 この分野でもディープラーニング(深層学習, DNN)について把握する必要が出てきました。

ディープラーニングの実行環境としてはGPUを搭載したPCで行うのが無難なのですが、 ライブラリがWindowsよりもLinuxを想定しているものが多いです。

そこで、ディープラーニングの学習と実験用に、一つGPUを搭載したLinuxマシンを組んでみることにしました。

自作PCは趣味の一つですし、一度Linuxマシンの構築を最初からやってみたかったというのも踏み切った理由だったりします。 あと空き時間にマイニングでもやってみようかと

要求スペック

ディープラーニング環境で必須なのがGPUで、 現状のディープラーニング用のライブラリはほとんどがCUDAのみサポートとなっています。 そんな訳で、GPUはNvidiaのもの一択になります。

GPU簡易調査

価格的に手の出せそうなコンシューマー向けのGeforceで簡単にスペックを調査してみました。 そのまとめが以下の表になります。 なお、TitanXpは20万円位するのでさすがに除外しました。

名前 VRAM(GB) TDP(W) 実売価格(円)
1080Ti GDDR5X: 11 250 9万~
1080 GDDR5X: 8 180 6.5万~
1070Ti GDDR5X: 8 180 5.8万~
1070 GDDR5: 8 150 4.5万~
1060 GDDR5: 3or6 120 2.2万~
1050Ti GDDR5: 4 75 1.5万~
1050 GDDR5: 2 75 1.3万~

軽く調べてみると、ディープラーニング向けで大事になるのがVRAMの大きさ。 これが少ないとモデルをそもそも読み込めなかったりするらしいです。

ちなみにこれらのGPUはPascal世代。 ComputeCapabilitiyは6.1でCuda8,9に対応している模様です。

GPU選定

先述の通りVRAMメモリ量がそれなりにあるものを選びたいですが、 個人使用ということで高価すぎるものは避けたいです。 そんな訳で、VRAMが8GBで大き目の中で一番安そうなGeforce GTX 1070を選ぶことにしました。

ディープラーニングのライブラリ

メジャーどころは次の3つあたりでしょうか。

  • Tensorflow
    • Google系。多分一番メジャー
    • Linux/Mac/Win
  • Chainer
    • 国内ベンチャー製。日本語文献多し
    • Linux(Ubuntu/CentOS)推奨: Win環境利用例もあり
  • PyTorch
    • Facebook系。後発の分、性能がいいらしい
    • Linux/Mac: Windowsは非対応だが第3者ビルド版がある

いずれもCuda8.0で動く模様で、一部はCUDA9.0にも対応しています。

OSの選定

メジャーライブラリを見る限りでは、LinuxでもCentOSかUbuntuを想定しているみたいです。 また、UbuntuのベースになっているDebianでもほとんど問題はないと思われます。 これ以外のOSだと、自力で問題対処バリバリできる、という人でないと環境依存のトラブルで足を引っ張られる可能性があります。

私はVM環境下で使い慣れているDebianを使用するつもりでしたが、問題はなさそうです。

CPUの選定

基本的に処理はGPU任せになると思われるので、CPU性能はそこまで必要はないと思いますが、 プログラムの前処理が重めだったりすると、低すぎるのも問題そうです。 ディープラーニングでpythonを使うことが多いみたいなので、numpyの利用も考慮すると、少なくともAVXのようなベクトル演算に対応しているとよさそうです。

ひとまずはi3、i5あたりで値段を見つつ決定したいと思います。

要求スペックまとめ

上記をまとめると、Linuxマシンの要求スペックは以下のようになりました。

  • GPU: Nvidia Geforce GTX 1070
  • OS: Debian
  • CPU: i3, i5あたりから値段を見て決める

次から、具体的なパーツを決めていきたいと思います。