仕事としてはじめた深層学習を仕事だけではもったいないとかんがえて,自宅にも GPU による計算環境をつくった. それについてかんたんに書いておくことにする.
NVIDIA の GPU を Ubuntu 14.04 (Linux) 上でつかうというのは会社での環境とおなじだ. ただ,会社でつかっている TITAN X は高価なので,安価な GeForce 960 にした. TITAN X は GPU が 3072 個,それに対して 960 は 1024 個だ. TITAN X は 10 数万円するが,960 なら 25000 円くらいで買える. もちろんコスト・パフォーマンスは 960 のほうがよいが,TITAN X がよいのは高速なメモリを潤沢につんでいることだ. 960 では大規模なネットワークの計算はできないだろう. しかし,1 〜 2 層程度のたたみこみニューラル・ネット (CNN) の計算をするのなら,たぶんこれでこまることはないだろう. GPU がうまくつかいきれない計算なら,速度も 2 倍もかわらない.
会社では Core i のマシンに GPU をのせているが,コアはたくさんあっても GPU の計算にはつかえない. だから,自宅用には 3.4 GHz の Pentium Dual Core を買った. 1 コアあたりスレッドが 1 個しかはしらないが,GPU を busy wait するだけなら,それで十分だ. これなら 8000 円くらいで買える.
最近は GPU がのせられるスロットをもつマシンをつかっていなかったので,ふるいケースを再利用し,マザーボードから買う必要があった. しかし,マザーボードも 7000 円くらいのもので十分だ.
DDR3 のメモリはあまりもっていないし,もっているものもクロックがひくいので,これは 1600 MHz のを買った. 計算にはだいたい GPU のメモリをつかうから,メイン・メモリは 4 GB あればよい. これは中古品を 2000 円くらいで買った. それから,2 TB のディスクが 7000 円弱だ.
周辺機器としてはまず DVD ドライブが必要だが,これは,てもちのものをつかった. Ubuntu の DVD がみあたらなかったので,すでにダウンロードしてあった DVD イメージを DVD-R にやきつけてインストールした. 会社とちがってここはかたいファイアウォールがないので,ソフトウェアのインストールはらくだ.
会社におけるのと同様に numpy, Theano などをインストールする. 文字認識の例題などを処理するために OpenCV が必要になったが,これは最新のものでなくてよいなら Ubuntu のパッケージが用意されているので,1 クリックでインストールできる.
GPU による深層学習をするなら,NVIDIA の cuDNN をいれるのがよい. NVIDIA に個人として (も) 開発者登録をし,ダウンロードする. ヘッダ (.h) ファイルとライブラリ (.so) ファイルを CUDA のヘッダやライブラリのなかにコピーしてしまうのが (いささか乱暴な気はするが) らくだ. cnDNN をいれることで,C とくらべると 40 倍くらいはやくなっていた deeplearning.com にある MNIST の例題がさらに 2 倍くらいの速度で学習できるようになった.
(ほんとうは関連するページにリンクをはっておきたいが,時間がかぎられているので省略する)