CUDA 8.0のインストール
NVIDIAの公式ページからCUDA 8.0をダウンロードする。
Operating System: Linux, Architecture: x86_64, Distribution: Ubuntu, Version: 16.04, Installer Type: deb (network). ダウンロードしたフォルダで以下のコマンドを実行してCUDAをインストールする。メタパッケージのcuda-8-0
をインストールすると、全てのCUDA ToolkitとDriverパッケージがインストールされる。(CUDA 9.0のインストール方法はこちら)
sudo dpkg -i cuda-repo-ubuntu1604_8.0.*_amd64.deb
sudo apt update
sudo apt install cuda-8-0
パスの設定
以下のechoコマンドかテキストエディタでCUDAのパスを.bashrc
のファイルの最後に書き込む。その設定をsourceコマンドで読み込む。
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を読み込む。
## 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のパスが通っているか確認。
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のインストール
cuDNN 6のインストール
https://developer.nvidia.com/rdp/cudnn-download からcuDNN 6 for CUDA 8.0のdebパッケージをダウンロードする(アクセスするにはメンバー登録が必要)。具体的には以下の3個のdebパッケージをダウンロードする。
- cuDNN v6.0 Runtime Library for Ubuntu16.04 (Deb)
- cuDNN v6.0 Developer Library for Ubuntu16.04 (Deb)
- cuDNN v6.0 Code Samples and User Guide for Ubuntu16.04 (Deb)
ダウンロードしたフォルダで以下のコマンドを実行して、cuDNNをインストールする。
# Install Runtime library
sudo dpkg -i libcudnn6_6.0*+cuda8.0_amd64.deb
# Install developer library
sudo dpkg -i libcudnn6-dev_6.0*+cuda8.0_amd64.deb
# Install code samples and user guide
sudo dpkg -i libcudnn6-doc_6.0*+cuda8.0_amd64.deb
cuDNN 5.1のインストールとアンインストール
cuDNN 6を使う場合はcuDNN 5.1は必要ない。このセクションのインストール方法はcuDNN 6が登場する以前に作られたもの。
https://developer.nvidia.com/rdp/cudnn-download からcuDNN 5.1 for CUDA 8.0をダウンロードする(アクセスするにはメンバー登録が必要)。 ダウンロードしたフォルダで以下のコマンドを実行して、cuDNNのライブラリをCUDAがインストールされているディレクトリにコピーする。シンボリックリンクがシンボリックリンクとしてコピーされるように cp には -a をつける必要がある。
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
cuDNN 6にアップデートする際にはcuDNN 5.1をアンインストールする必要がある。上記の方法でインストールした際には以下の方法でアンインストールできる。
cd /usr/local/cuda-8.0/lib64/
sudo rm libcudnn.so libcudnn.so.5 libcudnn.so.5.1.5 libcudnn_static.a
cd /usr/local/cuda-8.0/include/
sudo rm cudnn.h
sudo ldconfig
動作確認
CUDAのサンプルコードを実行して動作確認する。
サンプルコードをホームディレクトリにコピーするシェルスクリプト(cuda-install-samples-8.0.sh)は /usr/local/cuda-8.0/bin/
にあるので、CUDAのパスが通っていればそのファイル名を指定するだけで実行できる。
cuda-install-samples-8.0.sh ~ # ホームディレクトリにサンプルコードをコピー。
cd ~/NVIDIA_CUDA-8.0_Samples/
make
cd bin/x86_64/linux/release # サンプルの実行ファイルがあるディレクトリに移動。
./smokeParticles
CUDA 8.0の更新
CUDAの新しいバージョンがリリースされた際、以下のような表示がでてアップグレードできなかった。
$ 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
は副作用が大きいっぽい。
sudo apt install cuda-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
CUDA 9.1とcuDNN 7.1をUbuntu 16.04LTSにインストールする
CUDA 10とcuDNNをUbuntu 18.04LTSにインストールする