CUDA 8.0とcuDNN 5.1をUbuntu 16.04LTSにインストールする

  • 24
    いいね
  • 0
    コメント

CUDA 8.0のインストール

https://developer.nvidia.com/cuda-downloads からCUDA 8.0をダウンロードする。今後のパッケージ管理を考えるとdeb(network)ファイルを使うほうが便利だと思う。
Operating System: Linux, Architecture: x86_64, Distribution: Ubuntu, Version: 16.04, Installer Type: deb (network). ダウンロードしたフォルダで以下のコマンドを実行してcudaをインストールする。

terminal
sudo dpkg -i cuda-repo-ubuntu1604_8.0.*_amd64.deb
sudo apt update
sudo apt install cuda

パスの設定

以下のechoコマンドかテキストエディタでCUDAのパスを.bashrcのファイルの最後に書き込む。その設定をsourceコマンドで読み込む。

terminal
echo -e "\n## CUDA and cuDNN paths"  >> ~/.bashrc
echo 'export PATH=/usr/local/cuda-8.0/bin:${PATH}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:${LD_LIBRARY_PATH}' >> ~/.bashrc
source ~/.bashrc # CUDAのパスが書き込まれた~/.bashrcを読み込む。
.bashrcに追加される文字列

## CUDA and cuDNN paths
export PATH=/usr/local/cuda-8.0/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:${LD_LIBRARY_PATH}

CUDAのパスが通っているか確認。

terminal
echo $PATH             # 出力に"/usr/local/cuda-8.0/bin"が含まれているか?
echo $LD_LIBRARY_PATH  # 出力に"/usr/local/cuda-8.0/lib64"が含まれているか?
which nvcc             # 出力が"/usr/local/cuda-8.0/bin/nvcc"になっているか?
nvidia-smi             # nvidiaのGPUの情報が表示されているか?

cuDNNのインストール

https://developer.nvidia.com/rdp/cudnn-download からcuDNN 5.1 for CUDA 8.0をダウンロードする(アクセスするにはメンバー登録が必要)。 ダウンロードしたフォルダで以下のコマンドを実行して、cuDNNのライブラリをCUDAがインストールされているディレクトリにコピーする。シンボリックリンクがシンボリックリンクとしてコピーされるように cp には -a をつける必要がある。

terminal
tar xzvf cudnn-8.0-linux-x64-v5.1.tgz 
sudo cp -a cuda/lib64/* /usr/local/cuda-8.0/lib64/
sudo cp -a cuda/include/* /usr/local/cuda-8.0/include/
sudo ldconfig

動作確認

CUDAのサンプルコードを実行して動作確認する。
サンプルコードをホームディレクトリにコピーするシェルスクリプト(cuda-install-samples-8.0.sh)は /usr/local/cuda-8.0/bin/ にあるので、CUDAのパスが通っていればそのファイル名を指定するだけで実行できる。

terminal
cuda-install-samples-8.0.sh ~ # ホームディレクトリにサンプルコードをコピー。
cd ~/NVIDIA_CUDA-8.0_Samples/
make
cd bin/x86_64/linux/release   # サンプルの実行ファイルがあるディレクトリに移動。
./smokeParticles

smokeParticles.png

CUDA 8.0の更新

CUDAの新しいバージョンがリリースされた際、以下のような表示がでてアップグレードできなかった。

terminal
$ sudo apt upgrade 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  cuda cuda-8-0 cuda-drivers cuda-runtime-8-0
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.

これは、古いCUDA関連のパッケージが以前のCUDAパッケージに依存しているために自動でアップデート出来ないようだ。このような時は単純にアップグレードできなかったパッケージを指定してインストールすればいい。どうやらapt dist-upgradeは副作用が大きいっぽい。

terminal
sudo apt install cuda cuda-8-0 cuda-drivers cuda-runtime-8-0
sudo reboot

参考

http://qiita.com/yukoba/items/3692f1cb677b2383c983
http://ry0.github.io/blog/2015/08/12/ubuntu-nvidia-cuda-7.0/
http://askubuntu.com/questions/601/the-following-packages-have-been-kept-back-why-and-how-do-i-solve-it