Ubuntu 18.04 に NVIDIA の CUDA のインストール方法です。私は主に Google Cloud や Amazon EC2 の GPU インスタンスを使っているので、それ前提で書きます。ストレージは20GB程度必要です。Python からしか使わない場合は Anconda 内蔵の CUDA を使用するのがお勧めです。
Ubuntu の他のバージョンはこちらをご覧ください。
- Ubuntu 16.04 https://qiita.com/yukoba/items/3692f1cb677b2383c983
- Ubuntu 20.04 https://qiita.com/yukoba/items/c4a45435c6ee5d66706d
前準備
sudo apt update
sudo apt upgrade
CUDA 10や11をNVIDIAのリポジトリからインストール
CUDA 10 から Ubuntu 18.04 向けが https://developer.nvidia.com/cuda-downloads で配布されるようになりました。以下は、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 のインストール
CUDA 10 以降の場合
CUDA 10 以降で cuDNN 7.3 以降の場合、NVIDIAのリポジトリからインストールできます。"7.5.0.56-1+cuda10.0" の部分は https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 から適切なバージョンを探してください。バージョン指定をしないと最新のがインストールされますが、その際は CUDA も最新のバージョンを使用している必要があります。
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=7.5.0.56-1+cuda10.0
CUDA 9 の場合
強引に Ubuntu 16.04 用のリポジトリからインストールする方法ですが、そもそも Linux 全体で同じバイナリが使えるので Ubuntu 18.04 でも問題が無いようです。
echo "deb https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64 /" | sudo tee /etc/apt/sources.list.d/nvidia-ml.list
sudo apt update
sudo apt install libcudnn7-dev
CUDA 9.2をNVIDIAのリポジトリからインストール
CUDA 9.2 は Ubuntu 18.04 は未対応なんですが、Ubuntu 17.10 用を強引にインストールできます。NVIDIA が https://gitlab.com/nvidia/cuda/blob/ubuntu18.04/9.2/base/Dockerfile に書いている方法です。動作しますが CUDA 10 で良いなら CUDA 10 を使った方が良いと思います。https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-390/+bug/1753796 に書いてあるバグにより --force-overwrite が必要です。
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1710/x86_64/7fa2af80.pub
echo "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1710/x86_64 /" | sudo tee /etc/apt/sources.list.d/cuda.list
sudo apt update
sudo apt -o Dpkg::Options::="--force-overwrite" install cuda-9-2 cuda-drivers
sudo reboot
その後、~/.bashrc の末尾にこれを追加する必要があります。
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
そして一度ログオフして再度ログインしてください。
nvidia-smi で動作確認です。cuBLAS など cuDNN 以外は一通りついてきます。
強引な方法ですが Theano を使う限りだと問題ない感じがします。
CUDA 9.1 をUbuntuのリポジトリからインストール
Ubuntu 18.04 のリポジトリからインストールする方法です。Ubuntu 16.04 との違いはデバイスドライバのパッケージ名に-driverが付きました。
sudo apt install nvidia-cuda-toolkit nvidia-driver-440
sudo reboot
nvidia-smi で動作確認です。cuBLAS など cuDNN 以外は一通りついてきます。
ただし、この方法は Ubuntu 18.04 である限り、ずっと CUDA 9.1 です。
Ubuntu 16.04 と違って GRUB の設定をいじらなくても変なバグは無い感じです。
Anaconda内蔵のCUDAとcuDNNを使用する場合
Anaconda で conda install tensorflow-gpu
などをすると自動的に CUDA と cuDNN がインストールされます。ただしデバイスドライバはインストールされないので sudo apt install nvidia-driver-440
して sudo reboot
が必要です。Python からしか使わない場合は、この方法が簡単です。NVIDIA のリポジトリは不要です。
後始末
sudo apt autoremove
sudo apt clean