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

2024-04-25 21:50:59 发布

您现在位置:Python中文网/ 问答频道 /正文

简单问题:我可以在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

我怎样才能解决这个问题

如果不可能,原因是什么


Tags: andgputensorflow驱动程序原因rxcudanvidia
2条回答

我真的认为你做不到。Tensorflow rocm是Tensorflow的分支。AMD已经改变了很多,以实现其GPU的兼容性。因此,由于它们是不同的包,所以不能完全运行

对于AMD,您有不同的软件包,Tensorflow需要NVIDIA GPU。 由于新的架构,我在新的NVIDIA GPU中也看到了缓慢的表现。 我建议您使用tf nightly gpu 2.5.0.dev20210126,它将与我的RTX 3090一起使用。您也可以组合两个3090,但不能组合两个3070。您可以查看NVIDIA文档以了解基于SLI的图形卡。此外,您还可以将两个3090与同一品牌配对,这意味着华硕的3090将无法与RTX3090 founders edition连接

运行代码时,请确保调用了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)

内存限制=8000

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

相关问题 更多 >