Tensorflow 使用一个 GPU 的全部,而其他的很少

问题描述 投票:0回答:0

在使用带有 NVIDIA 3080 (10GB) 的 Tensorflow 对象检测 API 遇到 OOM 错误后,我买了一个 4090 (24GB)。我目前同时运行这两种卡,但我注意到在大批量运行中,我几乎使用了所有 3080,但使用了不同数量的 4090。理想情况下,我想使用所有这两种卡来将批量大小推得尽可能高尽可能。我似乎找不到改变策略的方法,以便 GPU 可以承受不同的负载。镜像策略似乎为每个 GPU 在每次拆分期间处理相同数量的数据。有没有一种方法可以让一个 GPU 拥有更多而另一个拥有更少?

我的机器和环境规格如下:

操作系统 = Ubuntu 22.04 GPU:[0:4090,1:3080] 蟒蛇:3.10.9 cudatoolkit:11.2.2(通过anaconda安装) cudnn:8.1.0.77(通过anaconda安装)

GPU Memory usage during training

我对此还很陌生,因此非常感谢您的帮助。如果我遗漏了任何有用的信息,请告诉我,我会相应地编辑帖子。提前致谢。

我已经尝试将分布策略从 MultiWorkerMirroredStrategy 更改为 MirroredStrategy 和 experimental.CentralStorageStrategy,但没有真正的改变。我希望中央存储策略能让 CPU 更有效地分配数据。

德里克

python tensorflow object-detection-api multi-gpu
© www.soinside.com 2019 - 2024. All rights reserved.