先日導入した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