nvidia-docker2を使ってコンテナ内からGPUを使う

環境: Ubuntu 16.04.3 LTS 
 

Docker CEのインストール

nvidia-docker2が要求するdockerバージョンは1.12以上。Ubuntuレポジトリにもとから入っているdocker.ioは1.13.1で要求を満たしているが、Docker CEかEEをインストールしろと言われる。

必要なものをインストール

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common


GPG鍵を追加

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -


レポジトリを追加

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo update


インストール

$ sudo apt install docker-ce


nvidia-docker2のインストール

 

NVIDIAドライバをインストール

$ sudo apt install nvidia-384


GPG鍵を追加

$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -


レポジトリを追加

$ curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
$ sudo update


インストール

$ sudo apt install nvidia-docker2


ユーザーをdockerグループに追加

$ sudo gpasswd -a $USER docker


再起動

$ reboot


Dockerの設定

 

CUDAインストール済みのUbuntuイメージを取得

$ docker pull nvidia/cuda


動作確認

$ docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi


コンテナ作成&起動

$ docker run --runtime=nvidia -it nvidia/cuda
root@18f6a6a5fa26:/#


TensorflowからGPUが使えるか確認


ディストリビューションを確認

root@18f6a6a5fa26:/# cat /etc/issue
Ubuntu 16.04.3 LTS \n \l


CUDAがインストールされているか確認

root@18f6a6a5fa26:/# apt list --installed | grep cuda


cuDNNをインストール

ホスト側でダウンロードしてコンテナ内にコピーしておく
root@18f6a6a5fa26:/# apt install ./libcudnn7-dev_7.0.5.15-1+cuda9.1_amd64.deb
root@18f6a6a5fa26:/# apt install ./libcudnn7_7.0.5.15-1+cuda9.1_amd64.deb


Pythonをインストール

root@18f6a6a5fa26:/# apt install python3 python3-pip python3-venv


Python仮想環境の作成

root@18f6a6a5fa26:/# python3 -m venv ~/venv
root@18f6a6a5fa26:/# source ~/venv/bin/activate
(venv) root@18f6a6a5fa26:/#


Tensorflowのインストール

(venv) root@18f6a6a5fa26:/# pip3 install tensorflow-gpu


動作確認

(venv) root@18f6a6a5fa26:/# python3
>>> import tensorflow as tf
>>> tf.Session()


エラーがでなければOK

コメント

このブログの人気の投稿

fontconfigの設定

VLCでBlu-rayを再生

UEFIのブートオーダーを一時的に変更する