覚え書きブログ

Deep Learning覚え書き(CUDA7のインストール編)

先日導入したGTX980マシンに、CUDAをインストールしてみた。OSはUbuntu14.04である。現在開催されているGTC(GPU Technology Conference) 2015に合わせて、先日NVIDIAがCUDA7をリリースした。また、CaffeのページでもCUDA7が推奨されているので、最新バージョンのCUDA7を入れることにした。

下準備として、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

次に、CUDAのインストールを試みたが、下記のようなlibcheese-gtk23、libcheese7、libclutter-1.0-0パッケージの依存性に関するエラーがでた。

> sudo apt-get install cuda
The following packages have unmet dependencies.
 libcheese-gtk23 : Depends: libclutter-gtk-1.0-0 (>= 0.91.8) but it is not going to be installed
                   Depends: libcogl15 (>= 1.15.8) but it is not going to be installed
 libcheese7 : Depends: libclutter-gst-2.0-0 (>= 0.10.0) but it is not going to be installed
              Depends: gstreamer1.0-clutter but it is not going to be installed
 libclutter-1.0-0 : Depends: libcogl-pango15 (>= 1.15.8) but it is not going to be installed
                    Depends: libcogl15 (>= 1.15.8) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

そこで、以下のページを参考にし、libcheese関連のパッケージを削除してからCUDA7を再インストールしてみた。
http://bikulov.org/

まずは、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ドライバがロードされ、デバイスが認識されていることを確認できる。

> 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