Tensorflow(GPU)のDocker環境構築に関する備忘録。
環境
Ubuntu 18.04
CPU: Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz
GPU: GeForce GTX 1080
Tensorflow Dockerの要件を確認
Docker 19.03のインストール
NVIDIA Container Toolkitのインストール
Note that with the release of Docker 19.03, usage of nvidia-docker2 packages are deprecated since NVIDIA GPUs are now natively supported as devices in the Docker runtime.
(Docker 19.03のリリースでは、NVIDIA GPUがDockerランタイムのデバイスとしてネイティブにサポートされるようになったため、nvidia-docker2パッケージの使用は推奨されないことに注意してください。)
nvidia-docker2をインストールせずに、「Quickstart」の説明に従って、nvidia-container-toolkitをインストールする。
NVIDIA Container Runtimeのインストール
InstallationとDocker Engine setupを実施。
補足
NVIDIA Container Runtimeをインストールしないと、
$ sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
のようにruntimeを指定して実行すると、
docker: Error response from daemon: Unknown runtime specified nvidia.
See 'docker run --help'.
とエラーが表示される。
Why do I get the error Unknown runtime specified nvidia?
TensorFlow の Docker イメージをダウンロード
最新リリース版Tensorflow(GPU)、python3、jupyter付きのイメージをpullする例。
(py3を指定しないと、python2となるので注意。)
$ docker pull tensorflow/tensorflow:latest-gpu-py3-jupyter
Tensorflow(GPU) Dockerの動作確認
tensorflow < 2.0のイメージの場合。
(公式ページには、こちらが載っている。2019.11.25)
docker run --runtime=nvidia -it --rm tensorflow/tensorflow:latest-gpu-py3-jupyter \
python -c "import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"
tensorflow2.0<=のイメージの場合。
docker run --runtime=nvidia -it --rm tensorflow/tensorflow:latest-gpu-py3-jupyter \
python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"