ubuntu18.04 dockerでtensorflow GPU
CPPXのXです。
dockerでtensorflowを使うまでの環境導入をまとめておこうと思います。
GPUも使えるようにします。
自分用メモ感強いです。
dockerの導入から、nvidia-docker2の導入、tensorflowのコンテナを落とすところまで書きます。
1080ti 2080tiどちらでも動きました。
では目次です。
環境
この手順通りにやると、最後のtensorflowのコンテナでcuda10以上が要求されます。
ですが、tensorflowのバージョンを指定するだけなので、必須じゃないです。
cuda周りの導入は下の記事にまとめてあるので導入する際は是非。
ubuntu18.04 + 2080ti + cuda10 + tensorflow を整える - Hello Wor.log
dockerの導入
公式通りで導入できました。
Get Docker CE for Debian | Docker Documentation
打つコマンドをまとめておきます。
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 install docker-ce docker-ce-cli containerd.io
dockerのグループに所属しておきます。
getent group docker sudo gpasswd --add $USER docker sudo systemctl restart docker exit
nvidia-docker2の導入
GPUを触れるようにしていきます。
こちらも公式通りです。
Repository configuration | nvidia-docker
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \ sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) 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 nvidia-docker2
sudo systemctl restart docker exit
ここで一旦確認する場合は以下でできます。
なんかエラーが出てくるようであれば、コンテナのタグを変えてみるといいかもしれません。(自分の場合は別タグでエラーが出てきました。)
手元に入っているcudaのバージョンが違うとエラーが出てきます。
nvidiaのdocker hub置いておきます。
https://hub.docker.com/r/nvidia/cuda/tags
docker run --runtime=nvidia --rm -it nvidia/cuda:10.0-base-ubuntu18.04 nvidia-smi
tensorflow
tensorflowのコンテナを落としてきます。
ついでにGPUが見えているか確認します。
cuda10以上が要求されます。(10未満の人はおまけ参照)
tensorflowのdocker hub置いておきます。
https://hub.docker.com/r/tensorflow/tensorflow
python3
docker run --runtime=nvidia --rm -it tensorflow/tensorflow:latest-gpu-py3 nvidia-smi
ついでにtensorflowからGPUが見えているかも確認します。
docker run --runtime=nvidia --rm -it tensorflow/tensorflow:latest-gpu-py3 python
python内で、
from tensorflow.python.client import device_lib device_lib.list_local_devices()
GPUが見えていればokです。
見えていなければ応援しています。
おまけ cuda10未満
docker run --runtime=nvidia --rm -it tensorflow/tensorflow:latest-gpu-py3 nvidia-smi
のところでcudaがどうたらみたいなエラーが出ると思います。
cudaのバージョンに合った適切なtensorflowのバージョンを指定しましょう。
cuda9.0ならtensorflow 1.10.0で動きます。
docker run --runtime=nvidia --rm -it tensorflow/tensorflow:1.10.0-gpu-py3 nvidia-smi