環境の確認
- 以下コマンドで、現在インストールされているGPUドライバとCUDAのバーションの確認する。
$ nvidia-smi
$ dpkg -l | grep cuda
古いバージョンのパッケージをアンインストール
- 以下コマンドの?は、上で確かめたパッケージ名によって決まる数字。
$ sudo apt remove --purge cuda-10-1 libcudnn? libcudnn?-dev libnvinfer? libnvinfer-dev libnvinfer-plugin? libnvinfer-plugin-dev
$ sudo apt autoremove
$ dpkg -l | grep cuda
rc状態のパッケージが残ることがあるので、以下コマンドできれいにする。
$ sudo aptitude purge `dpkg -l |grep ^rc |cut -f3 -d " "`
リポジトリのdebパッケージを取得・登録
$ cd tmp
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.2.89-1_amd64.deb
$ sudo apt install ./cuda-repo-ubuntu1804_10.2.89-1_amd64.deb
$ wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
$ sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
こうすると、最後に次のようなメッセージが表示されることがある。
The public CUDA GPG key does not appear to be installed.
To install the key, run this command:
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
本来なら、メッセージに書いてあるように最後のコマンドをコピペして実行すればよいが、プロキシ環境下では以下のように、--keyserver-option http-proxy=http://<プロキシサーバ>:<ポート>
を追加して実行する。
$ sudo apt-key adv --keyserver-option http-proxy=http://<プロキシサーバ>:<ポート> --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
$ sudo apt update
GPUドライバの更新
- ???は一番新しいドライバ。
$ ubuntu-drivers devices
$ sudo apt install nvidia-driver-???
$ sudo reboot
$ nvidia-smi
CUDA + cuDNNのインストール
- CUDA 10.2をインストールする。
$ sudo apt install --no-install-recommends cuda-10-2
- cuDNNをインストールする。
- libcudnnなどは、以下のサイトでバージョンをチェックして、指定する。
- nnabla=1.10.0 + nnabla-ext-cuda102=1.10.0環境では、libcudnn8系は使えないようなので注意。
$ sudo apt install --no-install-recommends libcudnn7=7.6.5.32-1+cuda10.2 libcudnn7-dev=7.6.5.32-1+cuda10.2
- TensorRTをインストールする。
- 以下の
libnvinfer7
などで、バージョン7.1.3-1+cuda10.2
以降では、libcudnn8
が必要になるので注意。
- 以下の
$ sudo apt install --no-install-recommends libnvinfer7=7.0.0-1+cuda10.2 libnvinfer-dev=7.0.0-1+cuda10.2 libnvinfer-plugin7=7.0.0-1+cuda10.2 libnvinfer-plugin-dev=7.0.0-1+cuda10.2
- パッケージのバージョンを固定する。
$ sudo apt-mark hold cuda-10-2 libcudnn7 libcudnn7-dev libnvinfer7 libnvinfer-dev libnvinfer-plugin7 libnvinfer-plugin-dev
$ dpkg --get-selections | grep hold
環境変数の設定
-
.bashrc
内で環境変数を設定する。
# --- CUDA Toolkit
export PATH="/usr/local/cuda-10.2/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH"
-
/usr/local/
に移動し、cuda -> cuda-10.2
となっていることを一応確認する。 - 完了。
この手順に従うと以下の環境が完成する
$ dpkg -l | grep cuda
hi cuda-10-2 10.2.89-1 amd64 CUDA 10.2 meta-package
ii cuda-command-line-tools-10-2 10.2.89-1 amd64 CUDA command-line tools
ii cuda-compiler-10-2 10.2.89-1 amd64 CUDA compiler
ii cuda-cudart-10-2 10.2.89-1 amd64 CUDA Runtime native Libraries
ii cuda-cudart-dev-10-2 10.2.89-1 amd64 CUDA Runtime native dev links, headers
ii cuda-cufft-10-2 10.2.89-1 amd64 CUFFT native runtime libraries
ii cuda-cufft-dev-10-2 10.2.89-1 amd64 CUFFT native dev links, headers
ii cuda-cuobjdump-10-2 10.2.89-1 amd64 CUDA cuobjdump
ii cuda-cupti-10-2 10.2.89-1 amd64 CUDA profiling tools runtime libs.
ii cuda-cupti-dev-10-2 10.2.89-1 amd64 CUDA profiling tools interface.
ii cuda-curand-10-2 10.2.89-1 amd64 CURAND native runtime libraries
ii cuda-curand-dev-10-2 10.2.89-1 amd64 CURAND native dev links, headers
ii cuda-cusolver-10-2 10.2.89-1 amd64 CUDA solver native runtime libraries
ii cuda-cusolver-dev-10-2 10.2.89-1 amd64 CUDA solver native dev links, headers
ii cuda-cusparse-10-2 10.2.89-1 amd64 CUSPARSE native runtime libraries
ii cuda-cusparse-dev-10-2 10.2.89-1 amd64 CUSPARSE native dev links, headers
ii cuda-demo-suite-10-2 10.2.89-1 amd64 Demo suite for CUDA
ii cuda-documentation-10-2 10.2.89-1 amd64 CUDA documentation
ii cuda-driver-dev-10-2 10.2.89-1 amd64 CUDA Driver native dev stub library
ii cuda-drivers 450.51.06-1 amd64 CUDA Driver meta-package, branch-agnostic
ii cuda-drivers-450 450.51.06-1 amd64 CUDA Driver meta-package, branch-specific
ii cuda-gdb-10-2 10.2.89-1 amd64 CUDA-GDB
ii cuda-libraries-10-2 10.2.89-1 amd64 CUDA Libraries 10.2 meta-package
ii cuda-libraries-dev-10-2 10.2.89-1 amd64 CUDA Libraries 10.2 development meta-package
ii cuda-license-10-2 10.2.89-1 amd64 CUDA licenses
ii cuda-memcheck-10-2 10.2.89-1 amd64 CUDA-MEMCHECK
ii cuda-misc-headers-10-2 10.2.89-1 amd64 CUDA miscellaneous headers
ii cuda-npp-10-2 10.2.89-1 amd64 NPP native runtime libraries
ii cuda-npp-dev-10-2 10.2.89-1 amd64 NPP native dev links, headers
ii cuda-nsight-10-2 10.2.89-1 amd64 CUDA nsight
ii cuda-nsight-compute-10-2 10.2.89-1 amd64 NVIDIA Nsight Compute
ii cuda-nsight-systems-10-2 10.2.89-1 amd64 NVIDIA Nsight Systems
ii cuda-nvcc-10-2 10.2.89-1 amd64 CUDA nvcc
ii cuda-nvdisasm-10-2 10.2.89-1 amd64 CUDA disassembler
ii cuda-nvgraph-10-2 10.2.89-1 amd64 NVGRAPH native runtime libraries
ii cuda-nvgraph-dev-10-2 10.2.89-1 amd64 NVGRAPH native dev links, headers
ii cuda-nvjpeg-10-2 10.2.89-1 amd64 NVJPEG native runtime libraries
ii cuda-nvjpeg-dev-10-2 10.2.89-1 amd64 NVJPEG native dev links, headers
ii cuda-nvml-dev-10-2 10.2.89-1 amd64 NVML native dev links, headers
ii cuda-nvprof-10-2 10.2.89-1 amd64 CUDA Profiler tools
ii cuda-nvprune-10-2 10.2.89-1 amd64 CUDA nvprune
ii cuda-nvrtc-10-2 10.2.89-1 amd64 NVRTC native runtime libraries
ii cuda-nvrtc-dev-10-2 10.2.89-1 amd64 NVRTC native dev links, headers
ii cuda-nvtx-10-2 10.2.89-1 amd64 NVIDIA Tools Extension
ii cuda-nvvp-10-2 10.2.89-1 amd64 CUDA nvvp
ii cuda-repo-ubuntu1804 10.2.89-1 amd64 cuda repository configuration files
ii cuda-runtime-10-2 10.2.89-1 amd64 CUDA Runtime 10.2 meta-package
ii cuda-samples-10-2 10.2.89-1 amd64 CUDA example applications
ii cuda-sanitizer-api-10-2 10.2.89-1 amd64 CUDA Sanitizer API
ii cuda-toolkit-10-2 10.2.89-1 amd64 CUDA Toolkit 10.2 meta-package
ii cuda-tools-10-2 10.2.89-1 amd64 CUDA Tools meta-package
ii cuda-visual-tools-10-2 10.2.89-1 amd64 CUDA visual tools
hi libcudnn7 7.6.5.32-1+cuda10.2 amd64 cuDNN runtime libraries
hi libcudnn7-dev 7.6.5.32-1+cuda10.2 amd64 cuDNN development libraries and headers
hi libnvinfer-dev 7.0.0-1+cuda10.2 amd64 TensorRT development libraries and headers
hi libnvinfer-plugin-dev 7.0.0-1+cuda10.2 amd64 TensorRT plugin libraries
hi libnvinfer-plugin7 7.0.0-1+cuda10.2 amd64 TensorRT plugin libraries
hi libnvinfer7 7.0.0-1+cuda10.2 amd64 TensorRT runtime libraries