LoginSignup
3
1

More than 3 years have passed since last update.

ubuntu18.04LTS+GPU有効のdocker環境を構築する

Last updated at Posted at 2020-06-05

3行で

  • 毎度毎度何かしらやらかしてくれるnvidiaのアレコレを簡単に構築したい
  • dockerは19.03以上でGPU対応したので、構築済みのdockerイメージを使う
  • ホストOSに必要なのはGPUのドライバのみ。CUDA不要

必要な作業

  1. OSのインストール
  2. GPUドライバのインストール
  3. dockerのインストール
  4. nvidia-container-toolkitのインストール

完成形

user@host:~$ sudo docker run --rm -it  --gpus all  nvidia/cuda:7.5-devel 
root@695b31f3738d:/# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2015 NVIDIA Corporation
Built on Tue_Aug_11_14:27:32_CDT_2015
Cuda compilation tools, release 7.5, V7.5.17
root@695b31f3738d:/# nvidia-smi
Fri Jun  5 11:19:48 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.59       Driver Version: 440.59       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 1070    Off  | 00000000:01:00.0  On |                  N/A |
| 28%   36C    P8    10W / 151W |    573MiB /  8117MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+
root@695b31f3738d:/# 


こんなんになります。
nvidia/cuda:***-devel の***の部分を10.0だったり9.0だったりにするとCUDAのバージョンを変えられる。
ホストOSでやるとめんどいやつ。

OSのインストール

ここなどからisoを取得してRufusなどでライブUSBを作ります。
USBさしてPCを再起動してBIOSの画面で起動の優先順位をUSBを最優先にすれば、あとは指示にしたがうだけ。

GPUドライバのインストール

sudo ubuntu-drivers autoinstall

やってる間に別のターミナル立ち上げてnouveauを無効にしましょう。blacklist-nouveau.confというファイルを作り、下記の内容を書き込んでおく。

sudo nano /etc/modprobe.d/blacklist-nouveau.conf
blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0

ドライバのインストールが終わったタイミングでカーネルモジュール再読込

sudo update-initramfs -u

PCを再起動してnvidia-smiを行う。GPUの情報っぽいものが出ればドライバインストール成功。

(不要)CUDAのインストール

docker前提ならホストOSにCUDAは不要です。

The machine running the CUDA container only requires the NVIDIA driver, the CUDA toolkit doesn't have to be installed.
https://github.com/NVIDIA/nvidia-docker/wiki/CUDA

というか、この通り導入しようとしたらダメでした。

CUDAのバージョンなり、その他機械学習フレームワークのバージョンだったりを色々変えたいモチベーションはあると思うので、dockerでいいのではないかと思います。構築簡単だし。

dockerのインストール

公式
19.03以降のバージョンをインストールしてください。

sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

成功していれば

sudo docker run hello-world

が通ります。

nvidia-container-toolkitのインストール

公式

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker

うまくいっていれば

sudo docker run --rm --gpus all nvidia/cuda:7.5-devel nvcc --version

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2015 NVIDIA Corporation
Built on Tue_Aug_11_14:27:32_CDT_2015
Cuda compilation tools, release 7.5, V7.5.17

を返します。別のバージョンのCUDAも簡単に試せて

sudo docker run --rm --gpus all nvidia/cuda:10.0-devel nvcc --version

などとすればOKです。

補足

tensorflowもこの方法で導入できます。
https://www.tensorflow.org/install/docker

探せばメジャーなフレームワークはdockerイメージがありそうで、もうホストOSに環境構築する必要はないのでは。

参考

Ubuntu18.04にCUDAをインストールする

3
1
0

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
3
1