问题描述
我正在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将仅输出黑屏
正如 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/