RTX3090/3080でCUDA11とcuDNN8に更新したらTensorflowが早くなった

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 11.2 Downloads
Select Target Platform Click on the green buttons that describe your target platform. Only supported platforms will be shown. By downloading and using the softw...
Release TensorFlow 2.4.0 · tensorflow/tensorflow
Release 2.4.0 Major Features and Improvements tf.distribute introduces experimental support for asynchronous training of models via the tf.distribute.experime...
Installation Guide :: NVIDIA Deep Learning cuDNN Documentation
This cuDNN 8.0.5 Installation Guide provides step-by-step instructions on how to install and check for correct operation of cuDNN on Linux and Microsoft Windows...

コメント

タイトルとURLをコピーしました