rtx 3090上的Tensorflow 1.14 styleagn 2性能问题

问题描述

我正在4x RTX 3090上运行Stylegan 2 model,与开始使用1x RTX 3090相比,开始培训所需的时间要长。 4倍比1倍更早地上升。我在两个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内存。

编辑:to this指出,我发现TF在Ampere架构GPU中的启动时间很长,但是我仍然不清楚是否是这种情况;并且,如果是 情况,是否有解决方案?

解决方法

Stylegan2写在T.F. 1.x,而Nvidia RTX 3090使用CUDA 11.1。 作为T.F. 1.x没有CUDA 11.1的二进制文件,因此在开始时,需要花费一些时间进行编译。由于RTX 3090使用PTX和JIT编译器进行编译,因此需要很长时间。
一个通用的解决方案是使用以下代码来增加缓存大小:-“ export CUDA_CACHE_MAXSIZE = 2147483648”(此处2147483648是缓存大小,您可以通过考虑内存限制和其他用途来设置它的任何数量)帐户中的流程)。请参阅https://www.tensorflow.org/install/gpu进行澄清。因此,在随后的运行中,启动时间将很小。但是即使在此之后,二进制文件Produce(在开始时)也不会与CUDA 11.1兼容,并且stylegan2将仅输出黑屏

对于Stylegan2,您可以从T.F迁移代码。 1.x到2.x(2.4+),使其可以在RTX 30XX系列上运行(将100%工作)或尝试编译T.F。 1.x来自带有CUDA 11.1的源代码(对此不确定)。 ,

正如 Thunder 解释的那样,Nvidia Ampere GPU 不支持 TensorFlow 1.x,而且似乎永远不会支持,因为 Ampere 流式多处理器 (SM_86) 仅在 CUDA 11.1 上受支持,请参阅 https://forums.developer.nvidia.com/t/can-rtx-3080-support-cuda-10-1/155849/2 和 TensorFlow新版本的 CUDA 暂时不完全支持 1.x,原因可能与上面链接中描述的类似。遗憾的是 TensorFlow 1.x 版不再受支持或维护,请参阅 https://github.com/tensorflow/tensorflow/issues/43629#issuecomment-700709796

但是,如果您必须使用 Stylegan 2 模型,那么您可能会使用 Nvidia Tensorflow,它显然支持 Ampere GPU 上的 1.15 版,请参阅 https://developer.nvidia.com/blog/accelerating-tensorflow-on-a100-gpus/

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...