rtx 3090 上的 Tensorflow 1.14 性能问题

Thu*_*der 7 nvidia tensorflow stylegan

我正在 4x RTX 3090 上运行一个用 TensorFlow 1.x 编写的模型,与1x RTX 3090 相比,启动训练需要很长时间。尽管随着训练开始,它在 4x 中比在 1x 中更早完成. 我在两个 GPU 中都使用 CUDA 11.1 和 TensorFlow 1.14。

其次,当我使用带有 CUDA 10.2 和 TensorFlow 1.14 的 1x RTX 2080ti 时,与带有 11.1 CUDA 和 Tensorflow 1.14 的 1x RTX 3090 相比,开始训练所需的时间更少。暂定,开始训练其中一个数据集需要1x RTX 2080ti 5 分钟、1x RTX 3090 30-35 分钟和 4x RTX 3090 1.5 小时。

如果有人能帮助我解决这个问题,我将不胜感激。

我在 2080ti 和 3090 机器上使用 Ubuntu 16.04、Core™ i9-10980XE CPU 和 32 GB 内存。

编辑:根据this,我发现TF在Ampere架构GPU中需要很长时间的启动时间,但我仍然不清楚是否是这种情况;如果这种情况,是否存在任何解决方案?

Thu*_*der 7

TF 1.x 没有 CUDA 11.1 的二进制文件,所以在开始时,编译需要时间。由于 RTX 3090 使用 PTX 和 JIT 编译器进行编译,因此需要很长时间。
一个通用的解决方案是增加缓存大小,使用代码:-"export CUDA_CACHE_MAXSIZE=2147483648"(这里 2147483648 是缓存大小,您可以通过考虑内存限制和它在帐户中其他进程的使用情况来设置任何数字) . 有关说明,请参阅https://www.tensorflow.org/install/gpu。由此在后续运行中,启动时间会变小。但即使在此之后,二进制文件(在此开始时)也将与 CUDA 11.1 不兼容

最好的办法是将代码从 TF 1.x 迁移到 2.x(2.4+) 以使其在 RTX 30XX 系列上运行,或者尝试使用 CUDA 11.1 从源代码编译 TF 1.x(不确定)。