LoginSignup
106
109

More than 3 years have passed since last update.

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

Last updated at Posted at 2016-11-25

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のインストール方法はこちら

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

パスの設定

以下の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のインストール

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をインストールする。

terminal
# 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 をつける必要がある。

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

cuDNN 6にアップデートする際にはcuDNN 5.1をアンインストールする必要がある。上記の方法でインストールした際には以下の方法でアンインストールできる。

terminal
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のパスが通っていればそのファイル名を指定するだけで実行できる。

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-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にインストールする

106
109
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
106
109