RTX3070などの30xx系GPU かつ CUDA11.3 インストール済みのホストPC上でTensorFlow v1.15.5を動かす
1. はじめに
NVIDIA のドライバをアップグレードして 465.19.01
へ上げた頃からなのか、apt upgrade
を叩いたときからなのかが正確には分かりませんが、2週間前頃からDockerのランタイムを経由するとGPUの認識に5分〜10分ほど待たされるようになり、普段であれば5秒ほどで終わる処理が無限に待たされる感覚に襲われていました。私の環境は下記のとおりです。Ubuntu20.04, GeForce RTX3070
Wed May 26 00:59:02 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 465.19.01 Driver Version: 465.19.01 CUDA Version: 11.3 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... On | 00000000:01:00.0 On | N/A |
| 0% 55C P8 23W / 220W | 423MiB / 7959MiB | 4% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
Client: Docker Engine - Community
Version: 20.10.6
API version: 1.41
Go version: go1.13.15
Git commit: 370c289
Built: Fri Apr 9 22:47:17 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.6
API version: 1.41 (minimum version 1.12)
Go version: go1.13.15
Git commit: 8728dd2
Built: Fri Apr 9 22:45:28 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.4
GitCommit: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
runc:
Version: 1.0.0-rc93
GitCommit: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
docker-init:
Version: 0.19.0
GitCommit: de40ad0
M4Depth
という最新の深度推定モデルの動作確認をしたく、意地になって TensorFlow v1.15.5
の CUDA 11.3
ビルドを実施していたのですが、CUDA周りのバージョンと内部実装の齟齬のオンパレードで苦戦していました。公式のコードを改造しながらエラーをひとつひとつ潰し込みしていたのですが、たまたま調査の過程で nividia-tensorflow
という pip wheel インストーラを発見し、試してみた所、Dockerを介さずピュアに上記のホストPC環境へ TensorFlow v1.15.5 の導入ができ、さらに正常にGPUを認識させ高速に動作させることができましたので手順をシェアします。 誰かの御役に立てれば幸いです。
2. 手順
公式のチュートリアルはこちらに記載があります。
https://developer.nvidia.com/blog/accelerating-tensorflow-on-a100-gpus/
$ sudo pip3 uninstall tensorboard-plugin-wit tb-nightly \
tensorboard tf-estimator-nightly tensorflow-gpu \
tensorflow tf-nightly tensorflow_estimator -y
$ sudo pip3 install nvidia-pyindex
$ sudo pip3 install nvidia-tensorflow
感動のあまり吠えました。
終わり。 RTX30xx Series 上でどうしても TensorFlow v1.x 環境でGPUをランニングさせたくてお困りの方はいちどお試しください。
ご参考までに、本日時点では下記のものが強制的にインストールされます。 TensorRT 7.2.3
や cuDNN 8.2
も導入されるようです。
gast-0.3.3
h5py-2.10.0
numpy-1.18.5
nvidia-cublas-11.5.1.101
nvidia-cuda-cupti-11.3.58
nvidia-cuda-nvcc-11.3.58
nvidia-cuda-nvrtc-11.1.105
nvidia-cuda-runtime-11.3.58
nvidia-cudnn-8.2.0.51
nvidia-cufft-10.4.2.58
nvidia-curand-10.2.4.58
nvidia-cusolver-11.1.1.58
nvidia-cusparse-11.5.0.58
nvidia-dali-cuda110-1.0.0
nvidia-dali-nvtf-plugin-1.0.0+nv21.5
nvidia-nccl-2.9.8
nvidia-tensorboard-1.15.0+nv21.4
nvidia-tensorflow-1.15.5+nv21.5
nvidia-tensorrt-7.2.3.4
tensorboard-1.15.0
tensorflow-estimator-1.15.1
Discussion