概要
rtx3090搭載pcにubuntu20.04をインストールした時のnvidia-driver, cuda, cuDNNのインストール手順を書きます.
デフォルトで動いてるドライバを無効化する
まず初めにデフォルトで使われているドライバを無効にします. デフォルトのドライバであるnouveau
が使われているかは下記のコマンドで確認します.
$ lsmod | grep nouveau
このコマンドを叩いて, もし情報が表示されれば, 次の操作で/etc/modprobe.d/blacklist-nouveau.conf
という新規ファイルを作り, 以下の二行を追記します.
$ nano /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0
nvidia-driverのインストール
まず初めに, nvidiaがドライバを公開しているレポジトリを追加します.
$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update
次に, 下記のコマンドで推奨されているnvidia-driverのバージョンを確認します.
$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00002204sv000019DAsd00001613bc03sc00i00
vendor : NVIDIA Corporation
driver : nvidia-driver-470 - third-party non-free recommended
driver : nvidia-driver-460-server - distro non-free
driver : nvidia-driver-465 - third-party non-free
driver : nvidia-driver-455 - third-party non-free
driver : nvidia-driver-460 - third-party non-free
driver : xserver-xorg-video-nouveau - distro free builtin
執筆時点でrtx3090の場合は, nvidia-driver-470
がrecommended
になっているので下記コマンドでnvidia-driverをインストールします. バージョンの数字の部分は各々書き換えてください.
$ sudo apt install nvidia-driver-470
$ sudo reboot
インストールできたかの確認はnvidia-smi
で下記の情報が表示されるかでわかります.
$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.42.01 Driver Version: 470.42.01 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... On | 00000000:01:00.0 Off | N/A |
| 0% 53C P8 19W / 350W | 164MiB / 24245MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1000 G /usr/lib/xorg/Xorg 147MiB |
| 0 N/A N/A 1157 G /usr/bin/gnome-shell 14MiB |
+-----------------------------------------------------------------------------+
cudaのインストール
cudaのインストールは基本的にnvidiaの公式に従います. 最新のバージョン以外はhttps://developer.nvidia.com/cuda-toolkit-archive に落ちています. gpuにあったバージョンを選択してください. ちなみに, rtx3090は11.1以降でないと良くないようです. (それより前でもPytorch等は動くのですが, Unknown CUDA arch (8.6) or GPU not supported
というエラーが出たりします.)
適当なバージョンをクリックすると画像のような画面になりますので, 言われた通りコマンドを叩きます.
重要!!!
最後の
$ sudo apt-get -y install cuda
に関してはバージョンに合わせて
$ sudo apt-get -y install cuda-11-1
のように書き換えてください!(そうじゃないと最新のバージョンが勝手にインストールされる)
最後に, pathを通して完了です. ~/.bashrc
に以下の二行を追記します.
export PATH="/usr/local/cuda-**.*/bin:$PATH" # バージョンは適宜調整
export LD_LIBRARY_PATH="/usr/local/cuda-**.*/lib64:$LD_LIBRARY_PATH"
下記のコマンドで変更を適用します. (再起動しても良い)
$ source ~/.bashrc
ちゃんとインストールできたかは
$ nvcc -V
で確認できます.
cuDNNのインストール
cuDNNをダウンロードしてきます. nvidiaのページにsign upしてからhttps://developer.nvidia.com/cudnn Download cuDNN
-> Archived cuDNN Releases
(前のバージョンが欲しい時)から必要なバージョンのcuDNNをダウンロードしてください. ダウンロードしてくるファイルは次の3つです.
-
cuDNN Runtime Library for Ubuntu20.04 x86_64 (Deb)
-
cuDNN Developer Library for Ubuntu20.04 x86_64 (Deb)
-
cuDNN Code Samples and User Guide for Ubuntu20.04 x86_64 (Deb)
ダウンロードが完了したら, ファイルがあるディレクトリに移動し, 下記のコマンドでインストールします.
$ sudo dpkg -i libcudnn8_x.x.x-1+cudax.x_amd64.deb # バージョンは適宜調整
$ sudo dpkg -i libcudnn8-dev_8.x.x.x-1+cudax.x_amd64.deb
$ sudo dpkg -i libcudnn8-samples_8.x.x.x-1+cudax.x_amd64.deb
これで, rtx3090が使えるようになりました! あとは各々python環境等を整えて下さい!
参考にした記事
https://k-hyoda.hatenablog.com/entry/2020/07/09/223907
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
https://stackoverflow.com/questions/66968382/valueerror-unknown-cuda-arch-8-6-or-gpu-not-supported