環境の確認
- 以下コマンドで、現在インストールされているGPUドライバとCUDAのバーションの確認する。
$ nvidia-smi
$ dpkg -l | grep cuda
古いバージョンのパッケージをアンインストール
- 以下コマンドの?は、上で確かめたパッケージ名によって決まる数字。
$ sudo apt remove --purge cuda-10-2 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
-
上記で登録されるリポジトリでは、
cuda-repo-ubuntu1804_10.2.89-1_amd64.deb
が最新であり、これを用いても問題なくUbuntu 20.04環境にCUDA11.0をインストールすることができる。 -
ここで、次のようなメッセージが表示されることがある。
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 11.0をインストールする。
$ sudo apt install --no-install-recommends cuda-11-0
- cuDNNをインストールする。
- libcudnnなどは、以下のサイトでバージョンをチェックして、指定する。
$ sudo apt install --no-install-recommends libcudnn8=8.0.4.30-1+cuda11.0 libcudnn8-dev=8.0.4.30-1+cuda11.0
- TensorRTをインストールする。
$ sudo apt install --no-install-recommends libnvinfer7=7.2.2-1+cuda11.0 libnvinfer-dev=7.2.2-1+cuda11.0 libnvinfer-plugin7=7.2.2-1+cuda11.0 libnvinfer-plugin-dev=7.2.2-1+cuda11.0
- パッケージのバージョンを固定する。
$ sudo apt-mark hold cuda-11-0 libcudnn8 libcudnn8-dev libnvinfer7 libnvinfer-dev libnvinfer-plugin7 libnvinfer-plugin-dev
$ dpkg --get-selections | grep hold
環境変数の設定
-
.bashrc
内で環境変数を設定する。
#--- CUDA Toolkit
export PATH="/usr/local/cuda-11.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH"
-
/usr/local/
に移動し、cuda -> cuda-11.0
となっていることを一応確認する。 - 完了。
この手順に従うと以下の環境が完成する
$ dpkg -l | grep cuda
hi cuda-11-0 11.0.3-1 amd64 CUDA 11.0 meta-package
ii cuda-command-line-tools-11-0 11.0.3-1 amd64 CUDA command-line tools
ii cuda-compiler-11-0 11.0.3-1 amd64 CUDA compiler
ii cuda-cudart-11-0 11.0.221-1 amd64 CUDA Runtime native Libraries
ii cuda-cudart-dev-11-0 11.0.221-1 amd64 CUDA Runtime native dev links, headers
ii cuda-cuobjdump-11-0 11.0.221-1 amd64 CUDA cuobjdump
ii cuda-cupti-11-0 11.0.221-1 amd64 CUDA profiling tools runtime libs.
ii cuda-cupti-dev-11-0 11.0.221-1 amd64 CUDA profiling tools interface.
ii cuda-demo-suite-11-0 11.0.167-1 amd64 Demo suite for CUDA
ii cuda-documentation-11-0 11.0.228-1 amd64 CUDA documentation
ii cuda-driver-dev-11-0 11.0.221-1 amd64 CUDA Driver native dev stub library
ii cuda-drivers 460.32.03-1 amd64 CUDA Driver meta-package, branch-agnostic
ii cuda-drivers-460 460.32.03-1 amd64 CUDA Driver meta-package, branch-specific
ii cuda-gdb-11-0 11.0.221-1 amd64 CUDA-GDB
ii cuda-libraries-11-0 11.0.3-1 amd64 CUDA Libraries 11.0 meta-package
ii cuda-libraries-dev-11-0 11.0.3-1 amd64 CUDA Libraries 11.0 development meta-package
ii cuda-memcheck-11-0 11.0.221-1 amd64 CUDA-MEMCHECK
ii cuda-nsight-11-0 11.0.221-1 amd64 CUDA nsight
ii cuda-nsight-compute-11-0 11.0.3-1 amd64 NVIDIA Nsight Compute
ii cuda-nsight-systems-11-0 11.0.3-1 amd64 NVIDIA Nsight Systems
ii cuda-nvcc-11-0 11.0.221-1 amd64 CUDA nvcc
ii cuda-nvdisasm-11-0 11.0.221-1 amd64 CUDA disassembler
ii cuda-nvml-dev-11-0 11.0.167-1 amd64 NVML native dev links, headers
ii cuda-nvprof-11-0 11.0.221-1 amd64 CUDA Profiler tools
ii cuda-nvprune-11-0 11.0.221-1 amd64 CUDA nvprune
ii cuda-nvrtc-11-0 11.0.221-1 amd64 NVRTC native runtime libraries
ii cuda-nvrtc-dev-11-0 11.0.221-1 amd64 NVRTC native dev links, headers
ii cuda-nvtx-11-0 11.0.167-1 amd64 NVIDIA Tools Extension
ii cuda-nvvp-11-0 11.0.221-1 amd64 CUDA Profiler tools
ii cuda-repo-ubuntu1804 10.2.89-1 amd64 cuda repository configuration files
ii cuda-runtime-11-0 11.0.3-1 amd64 CUDA Runtime 11.0 meta-package
ii cuda-samples-11-0 11.0.221-1 amd64 CUDA example applications
ii cuda-sanitizer-11-0 11.0.221-1 amd64 CUDA Sanitizer
ii cuda-toolkit-11-0 11.0.3-1 amd64 CUDA Toolkit 11.0 meta-package
ii cuda-tools-11-0 11.0.3-1 amd64 CUDA Tools meta-package
ii cuda-visual-tools-11-0 11.0.3-1 amd64 CUDA visual tools
hi libcudnn8 8.0.4.30-1+cuda11.0 amd64 cuDNN runtime libraries
hi libcudnn8-dev 8.0.4.30-1+cuda11.0 amd64 cuDNN development libraries and headers
hi libnvinfer-dev 7.2.2-1+cuda11.0 amd64 TensorRT development libraries and headers
hi libnvinfer-plugin-dev 7.2.2-1+cuda11.0 amd64 TensorRT plugin libraries
hi libnvinfer-plugin7 7.2.2-1+cuda11.0 amd64 TensorRT plugin libraries
hi libnvinfer7 7.2.2-1+cuda11.0 amd64 TensorRT runtime libraries