RTX 3090を手に入れたが、どうにも遅い。
旧世代のTITAN RTXの方が1epochあたりの処理時間が早く、なんでかなーと思っていた。
結論から言うと、NVIDIA DRIVERは更新したけどCUDAやcuDNNを更新していなかったというだけ。
まずはnvidia-smiを見てみる。
右上にCUDA 11.1 と書いてあるので、ドライバーを更新したらCUDAも勝手に更新されたもんだと勘違いしていた。
遅いとはいえ、なまじTensorflowが動いていただけに気づくのが遅れてしまった。
実際のCUDAのバージョンを確認する。
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
ドライバーは更新できたけど、CUDAそのものは10.1のままだった。
11.1に更新する。
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
$ sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
$ sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
$ sudo apt-get update
$ sudo apt-get -y install cuda
ubuntu1804の所は自分のOSに合わせて書き換える。
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Oct_12_20:09:46_PDT_2020
Cuda compilation tools, release 11.1, V11.1.105
Build cuda_11.1.TC455_06.29190527_0
無事にCUDAが更新された。
次に、Ampereに対応したTensorflowを2.4に更新する。
Adds Support for TensorFloat-32 on Ampere based GPUs. TensorFloat-32, or TF32 for short, is a math mode for NVIDIA Ampere based GPUs and is enabled by default.
https://github.com/tensorflow/tensorflow/releases/tag/v2.4.0
pip install -U tensorflow
Tensorflowを更新してGPUが認識しなくなってしまった場合はcuDNNも更新する。
TensorFlow pip packages are now built with CUDA11 and cuDNN 8.0.2.
https://github.com/tensorflow/tensorflow/releases/tag/v2.4.0
$ wget https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/cuda-${OS}.pin
$ sudo mv cuda-${OS}.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/7fa2af80.pub
$ sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/ /"
$ sudo apt-get update
Where ${OS} is ubuntu1804 or ubuntu2004.
これでTITAN RTXよりもRTX3090の方が早くなり、GPUの買い替えを実感することができた。
参考
CUDA Toolkit 12.1 Downloads
Get the latest feature updates to NVIDIA's proprietary compute stack.
Release TensorFlow 2.4.0 · tensorflow/tensorflow
Release 2.4.0 Major Features and Improvements tf.distribute introduces experimental support for asynchronous training of...
Overview — NVIDIA cuDNN
コメント