Help us understand the problem. What is going on with this article?

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

Ubuntu 18.04 に NVIDIA の CUDA のインストール方法です。私は主に Amazon EC2 の GPU インスタンスを使っているので、それ前提で書きます。Amazon EC2 の GPU インスタンス、g3, p2, p3 などで使えます。完全仮想化の hvm の方を使ってます。ストレージは20GB程度必要です。

なお記事の都合上、最新の CUDA および cuDNN をインストールしていますが、TensorFlow などの各種ライブラリを動作させるためには、タイミングによっては少し古いのをインストールしないと対応していない場合が多いです。TensorFlow は TensorFlow 1.9 で CUDA 9.2 に対応したそうですがデフォルトは CUDA 9.0 のままで、CUDA 9.1 は少し不具合があるそうです。TensorFlow の場合、もうしばらく Ubuntu 16.04 + CUDA 9.0 の方が良いかも知れません。

Ubuntu 16.04 へのインストール方法は https://qiita.com/yukoba/items/3692f1cb677b2383c983 をご覧ください。

前準備

sudo apt update
sudo apt upgrade

CUDA 10 のインストール

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

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

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

sudo apt install cuda cuda-drivers
sudo reboot

rm cuda-repo-ubuntu1804_10.1.168-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-390
sudo reboot

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

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

Ubuntu 16.04 と違って GRUB の設定をいじらなくても変なバグは無い感じです。

後始末

sudo apt autoremove
sudo apt clean
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away