Ubuntu 20.04へのCUDAインストール方法


Ubuntu 20.04 に NVIDIA の CUDA のインストール方法です。私は主に Google Cloud や Amazon EC2 の GPU インスタンスを使っているので、それ前提で書きます。ストレージは20GB程度必要です。Python からしか使わない場合は Anconda 内蔵の CUDA を使用するのがお勧めです。

Ubuntu の他のバージョンはこちらをご覧ください。

前準備

sudo apt update
sudo apt upgrade

CUDA 10や11をNVIDIAのリポジトリからインストール

Ubuntu 18.04 向けが https://developer.nvidia.com/cuda-downloads で配布されているのですが、Ubuntu 20.04 はまだ配布されていないのですが、Ubuntu 18.04 用がそのまま動きます。以下は、Installer Type で deb(network) を選択する場合の流れです。ここで apt install で cuda だと最新版がインストールされ、cuda-10-1 のようにバージョン指定も出来ます。

sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub

wget wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.2.89-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804_10.2.89-1_amd64.deb
sudo apt update

sudo apt install cuda cuda-drivers
sudo reboot

rm cuda-repo-ubuntu1804_10.2.89-1_amd64.deb

その後、~/.bashrc の末尾にこれを追加する必要があります。

export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"

そして一度ログオフして再度ログインしてください。

nvidia-smi で動作確認です。cuBLAS など cuDNN 以外は一通りついてきます。

cuDNNのインストール

cuDNN は別配布ですが、こちらも Ubuntu 18.04 用がインストールできます。

echo "deb https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 /" | sudo tee /etc/apt/sources.list.d/nvidia-ml.list
sudo apt update
sudo apt install libcudnn7-dev

CUDA 10.1をUbuntuのリポジトリからインストール

NVIDIA のリポジトリからではなく、Ubuntu 20.04 のリポジトリからインストールする方法です。

sudo apt install nvidia-cuda-toolkit nvidia-driver-440
sudo reboot

nvidia-smi で動作確認です。cuBLAS など cuDNN 以外は一通りついてきます。

ただし、この方法は Ubuntu 20.04 である限り、ずっと CUDA 10.1 です。

Anaconda内蔵のCUDAとcuDNNを使用する場合

Anaconda で conda install tensorflow-gpu などをすると自動的に CUDA と cuDNN がインストールされます。ただしデバイスドライバはインストールされないので sudo apt install nvidia-driver-440 して sudo reboot が必要です。Python からしか使わない場合は、この方法が簡単です。NVIDIA のリポジトリは不要です。

GNOME Display Manager を止める

NVIDIA のリポジトリからのインストールでも、Ubuntu 20.04 のリポジトリからのインストールでも、ディスプレイマネージャーの GNOME Display Manager が動いてしまいます。普通のパソコンでは動くべきですが、クラウドで動かしている場合は(大きな害はないですが)無意味です。

以下のコマンドで止まります。

sudo systemctl set-default multi-user
sudo reboot

もし復活させたい場合は、以下のコマンドで復活します。

sudo systemctl set-default graphical
sudo reboot

後始末

sudo apt autoremove
sudo apt clean