Deep Learningの開発環境(CUDA7のインストール編)

Deep Learningの開発プラットフォームとしては、次のようなものがあります。

Caffe:現在Google Researchに所属するYangqing Jia氏がUniversity of California, Berkeleyの学生時代に開発したCNNの開発プラットフォーム。Git Hubにて開発されており、今も活発に更新が続いています。Model Zooでは、コンペで話題になったGoogleNetやVGGなどのCaffe用のネットワーク構造設定ファイルが公開されているので、最新のCNNを試したい場合はCaffeが最適です。

Theano:モントリオール大学のYoshua Bengio研究室で開発されています。TheanoはPythonの数値計算ライブラリで、Deep Learningに限らず任意の数値計算に適用が可能です。Pythonの数値計算の標準ライブラリであるNumpyと異なり、シンボルと呼ばれる変数を用いて数式と微分の計算を直感的にプログラミングできます。TheanoをDeep Learning向けに拡張したPylearn2があり、CNNに限らずDeep Belief Networkなどの生成モデルにも対応しています。

本ブログでは、Caffeを利用した場合について説明していきます。Caffeは、C++のcaffeライブラリに加え、PythonとMatlabのインタフェースが提供されており、対応OSは、LinuxとMacとなっています。
http://caffe.berkeleyvision.org/

CaffeをGPU上で動かすためには、NVIDIAから提供されているCUDAが必要です。今回はCUDAの最新バージョン7をインストールします。

まず、Linux上の基本的な開発環境パッケージであるbuild-essentialsをインストールします。

> sudo apt-get install build-essentials

次に、CUDAのページからCUDA7のUbuntu14.04用のレポジトリパッケージcuda-repo-ubuntu1410-7-0-local_7.0-28_amd64.debをダウンロードし、dpkgを使ってCUDAレポジトリをインストールし、パッケージのupdate、upgradeをします。

> sudo dpkg -i cuda-repo-ubuntu1410-7-0-local_7.0-28_amd64.deb
> sudo apt-get update
> sudo apt-get upgrade

次に、nvidia-currentパッケージをインストールして、再起動します。

> sudo apt-get install nvidia-current
> sudo reboot

デスクトップの起動後、Ctl+Alt+F1を押しコンソールモードに切り替えて、依存性の問題があるlibcheese関連のパッケージを削除します。

> sudo apt-get remove libcheese*

そして、CUDAをインストールし、壊れたUbuntuデスクトップを入れ直します。

> sudo apt-get install cuda
> sudo apt-get install ubuntu-desktop
> sudo reboot

これで無事にCUDAのインストールが完了し、Ubuntuデスクトップが起動できるようになります。
ちなみに、インストールされたCUDAパッケージの一覧は、次のコマンドで確認することができます。

> dpkg -l | grep cuda

また、nvidia-smi, lsmod、lspci及び/dev/nvidiaによりnvidiaドライバがロードされ、GPUデバイスが認識されていることを確認できます。

> nvidia-smi
nvidia-smi
Fri Mar 20 21:07:42 2015       
+------------------------------------------------------+                       
| NVIDIA-SMI 346.46     Driver Version: 346.46         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 980     Off  | 0000:01:00.0     N/A |                  N/A |
|  0%   33C    P8    N/A /  N/A |    273MiB /  4095MiB |     N/A      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0            C+G   Not Supported                                         |
+-----------------------------------------------------------------------------+
> lsmod | grep nvidia
nvidia               8370774  44 
drm                   311018  3 nvidia
> lspcia | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation Device 13c0 (rev a1)
01:00.1 Audio device: NVIDIA Corporation Device 0fbb (rev a1)
> ls /dev/nvidia*
/dev/nvidia0  /dev/nvidiactl