TensorFlow : Docker イメージ (GPU) を利用する2020/07/27 |
機械学習ライブラリー, TensorFlow をインストールします。
当例では、TensorFlow 公式の Docker イメージをダウンロードして、コンテナーから TensorFlow を利用します。
Docker イメージは GPU サポート有りのイメージを使用します。 |
|
[1] | |
[2] |
TensorFlow Docker (GPU) の root ユーザーでの利用例です。
TensorFlow 公式のテスト済みのビルド構成は以下から確認可能です。当例では CUDA 10.1, TensorFlow 2.1.0 を使用します。 一般ユーザーで [docker] コマンドを使用したい場合は、該当ユーザーを [docker] グループに所属させる必要があります。 ⇒ https://www.tensorflow.org/install/source?hl=en#gpu_support_2 |
# CUDA/TensorFlow イメージを Pull root@dlp:~# docker pull nvidia/cuda:10.1-base root@dlp:~# docker pull tensorflow/tensorflow:2.1.0-gpu-py3
docker images REPOSITORY TAG IMAGE ID CREATED SIZE tensorflow/tensorflow 2.1.0-gpu-py3 e2a4af785bdb 6 months ago 4.11GB nvidia/cuda 10.1-base 3b55548ae91f 8 months ago 106MB # [nvidia-smi] 動作確認 root@dlp:~# docker run --gpus all --rm nvidia/cuda:10.1-base nvidia-smi Mon Jul 27 01:53:00 2020 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 440.100 Driver Version: 440.100 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:04:00.0 Off | N/A | | 0% 38C P8 8W / 180W | 15MiB / 8119MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| +-----------------------------------------------------------------------------+ # TensorFlow 動作確認 root@dlp:~# docker run --gpus all --rm tensorflow/tensorflow:2.1.0-gpu-py3 \ python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))" 2020-07-27 01:53:22.255110: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libnvinfer.so.6 2020-07-27 01:53:22.258091: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libnvinfer_plugin.so.6 2020-07-27 01:53:22.966070: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1 2020-07-27 01:53:22.985003: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2020-07-27 01:53:22.986192: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1555] Found device 0 with properties: pciBusID: 0000:04:00.0 name: GeForce GTX 1070 computeCapability: 6.1 coreClock: 1.7845GHz coreCount: 15 deviceMemorySize: 7.93GiB deviceMemoryBandwidth: 238.66GiB/s 2020-07-27 01:53:22.986255: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1 2020-07-27 01:53:22.986308: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10 2020-07-27 01:53:22.989674: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10 2020-07-27 01:53:22.990269: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10 2020-07-27 01:53:22.994329: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10 2020-07-27 01:53:22.996053: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10 2020-07-27 01:53:22.996100: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7 2020-07-27 01:53:22.996210: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2020-07-27 01:53:22.997063: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2020-07-27 01:53:22.997879: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1697] Adding visible gpu devices: 0 2020-07-27 01:53:23.009022: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 2801765000 Hz 2020-07-27 01:53:23.009392: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x58dc350 initialized for platform Host (this does not guarantee that XLA will be used). Devices: 2020-07-27 01:53:23.009416: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version 2020-07-27 01:53:23.257912: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2020-07-27 01:53:23.258737: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x5952030 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices: 2020-07-27 01:53:23.258761: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): GeForce GTX 1070, Compute Capability 6.1 2020-07-27 01:53:23.259285: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2020-07-27 01:53:23.259835: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1555] Found device 0 with properties: pciBusID: 0000:04:00.0 name: GeForce GTX 1070 computeCapability: 6.1 coreClock: 1.7845GHz coreCount: 15 deviceMemorySize: 7.93GiB deviceMemoryBandwidth: 238.66GiB/s 2020-07-27 01:53:23.259890: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1 2020-07-27 01:53:23.259918: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10 2020-07-27 01:53:23.259946: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10 2020-07-27 01:53:23.259981: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10 2020-07-27 01:53:23.260012: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10 2020-07-27 01:53:23.260045: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10 2020-07-27 01:53:23.260070: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7 2020-07-27 01:53:23.260156: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2020-07-27 01:53:23.260770: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2020-07-27 01:53:23.261338: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1697] Adding visible gpu devices: 0 2020-07-27 01:53:23.261408: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1 2020-07-27 01:53:23.531828: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1096] Device interconnect StreamExecutor with strength 1 edge matrix: 2020-07-27 01:53:23.531899: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1102] 0 2020-07-27 01:53:23.531913: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] 0: N 2020-07-27 01:53:23.532502: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2020-07-27 01:53:23.533144: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2020-07-27 01:53:23.533759: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1241] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 7566 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1070, pci bus id: 0000:04:00.0, compute capability: 6.1) tf.Tensor(164.75748, shape=(), dtype=float32) |