我可以在TensorFlow上同时运行AMD GPU和NVIDIA GPU吗



简单的问题:我可以在TensorFlow中一起运行双GPU设置(如下所示(吗?

1 AMD RX 480 and 1 NVIDIA 3070
(ROCm 3.5.1 and CUDA 11)

我试图通过安装TensorFlow(2.4(和TensorFlow ROCm(2.4(以及所有适当的驱动程序来实现这一点。不幸的是,TensorFlow只选择其中一个,这取决于是否安装了TensorFlow ROCm。

我该怎么解决这个问题?

如果不可能,原因是什么?

我真的不认为你能做到。Tensorflow rocm是Tensorflow的一个分支。AMD为了实现与GPU的兼容性,做出了很大的改变。因此,由于它们是不同的包,因此不能完全运行。

对于AMD,您有不同的软件包,Tensorflow需要NVIDIA GPU。由于新的NVIDIA GPU的新架构,我也看到了它们的缓慢。我建议您使用tf nighty gpu 2.5.0.dev20210126,它将与我的RTX 3090一起工作。此外,您可以组合两个3090,但不能组合两个3070。您可以查看NVIDIA文档来阅读有关基于SLI的显卡的信息。此外,您还可以将两个3090与同一品牌配对,这意味着华硕的3090将不会与RTX3090创始人版连接。

运行代码时,请确保tensorflow 2.5被称为

为了加快执行速度,您还可以使用分配内存

在这里,由于我使用RTX 3090,我为Tensorflow分配了22GB,在您的情况下,您可以将其更改为8GB

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
# Restrict TensorFlow to only allocate 22GB of memory on the first GPU
try:
tf.config.experimental.set_virtual_device_configuration(
gpus[0],
[tf.config.experimental.VirtualDeviceConfiguration(memory_limit=22000)])
logical_gpus = tf.config.experimental.list_logical_devices('GPU')
print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
except RuntimeError as e:
# Virtual devices must be set before GPUs have been initialized
print(e)

memory_limit=8000

您可以参考tensorflow关于GPU调整的文档https://www.tensorflow.org/guide/gpu

最新更新