RTX 3090适配TensorFlow

当代卡皇速度提升了多少?

RTX 3090适配TensorFlow

在更换机箱与电源之后,RTX 3090终于点亮了!

点亮后的RTX 3090

欢呼!撒花!顺便安抚下我可怜的钱包!

不过新也有新的烦恼,当前TensorFlow支持的CUDA版本不支持RTX 3090,需要解决软硬件适配问题。

环境配置

我的操作系统是Ubuntu 20.04;TensorFlow版本为2.4。

安装驱动程序

RTX 30系显卡需要版本460的驱动程序。在终端下执行

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-460
安装驱动的命令

执行完毕后可以通过 nvidia-smi 看到显卡信息。

安装CUDA

与版本460驱动对应的CUDA版本为11.2。遵循官方的安装指南即可。这里有一份Ubuntu 18.04下的安装过程视频,大同小异,可以参考。注意对应CUDA 11.2的cuDNN版本没有列出。好在我实际测试对应11.1的cuDNN也可以用。

安装GPU版TensorFlow所需的CUDA与cuDNN_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
%E6%9C%AC%E5%9C%B0%E8%BF%90%E8%A1%8CGPU%E7%89%88TensorFlow%E9%9C%80%E8%A6%81%E5%AE%89%E8%A3%85CUDA%E4%B8%8EcuDNN%E3%80%82%0ATensorFlow%202.3%0ACUDA%2010,1%0AcuDNN%207.6

解决找不到文件问题

由于TensorFlow 2.4是基于CUDA 11.0构建的,所以安装CUDA 11.2会出现找不到文件的错误。具体涉及到三个文件: libcusolver.solibcupti.soptxas 。前两个文件是Linux下的动态链接库。这两个文件已经随CUDA安装在了系统中,只需要让TensorFlow找到它们即可。可以通过建立软链接的方式实现。

ln -s /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcupti.so  /usr/local/lib/libcupti.so.11.0
ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcusolver.so ~/.local/lib/python3.8/site-packages/tensorflow/python/libcusolver.so.10

ptxas 为可执行文件,同样建立软链接至 $PATH 包含的目录即可。

sudo ln -s /usr/local/cuda/bin/ptxas /usr/local/bin/ptxas

性能测试

百闻不如一见,直接看视频。

RTX 3090性能快速测试(TensorFlow)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
%E5%90%8C%E6%A0%B7%E7%9A%84%E4%BB%A3%E7%A0%81%EF%BC%8CRTX%203090%E6%AF%94GTX%201070%20TI%E5%BF%AB%E5%87%A0%E5%80%8D%EF%BC%9F