【发布时间】:2020-06-10 13:14:27
【问题描述】:
我正在尝试使用 2 个 GPU,tensorflow 无法识别第二个。第二个 GPU 工作正常(在寡妇环境中)
When I set CUDA_VISIBLE_DEVICES=0 and run the program I see RTX2070 as GPU0
When I set CUDA_VISIBLE_DEVICES=1 and run the program I see GTX1050as GPU0
When I set CUDA_VISIBLE_DEVICES=0,1 and run the program I see RTX2070 as GPU0
所以基本上,TF 不识别 GPU1,它同时识别一个 GPU(GPU 0) 有没有手动定义GPU1的命令?
卸载并重新安装、Cudann、python 3.7、tensorflow 和 keras(GPU 版本)。我在 Windows 10 上使用 anaconda。尝试将 CUDA_VISIBLE_DEVICES 更改为 0、1。我没有看到任何错误,但第二个 GPU 没有出现在 python 中的任何位置。
主 GPU 是 RTX2070 (8GB),第二个 GPU 是 GTX1050 (2GB)。在我提交之前,我花了一些时间寻找解决方案,并尽我所能在互联网上找到。驱动程序是最新的,安装了 64 位版本和最新版本的软件。除了没有出现第二个 GPU 之外,我没有看到任何问题。
代码在第一个 GPU 上运行良好,两者都具有 > 3.5 的计算能力。
【问题讨论】:
-
将
CUDA_VISIBLE_DEVICES设置为1会发生什么?您是再次获得第一个 GPU,第二个 GPU 出现还是根本没有 GPU? -
当我设置 CUDA_VISIBLE_DEVICES=0 并运行程序时,我看到 RTX2070 作为 GPU0 当我设置 CUDA_VISIBLE_DEVICES=1 并运行程序时,我看到 GTX1050as GPU0 当我设置 CUDA_VISIBLE_DEVICES=0,1 并运行程序时我把RTX2070看成GPU0所以基本上TF不识别GPU1,它同时是一个GPU(GPU 0)有没有手动定义GPU1的命令
-
在代码的开头添加这个解决了问题 import os os.environ["TF_MIN_GPU_MULTIPROCESSOR_COUNT"]="2" os.environ["CUDA_VISIBLE_DEVICES"]="0,1"
-
感谢分享解决方案,您可以使用它发布您自己问题的答案(并接受它)。
标签: tensorflow keras multiple-gpu