208
171

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2018-03-05

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

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

前準備

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
208
171
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
208
171

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?