繁体   English   中英

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

[英]Can I run an AMD GPU and NVIDIA GPU on TensorFlow together?

简单的问题:我可以在 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,您有不同的 package、Tensorflow 需要 NVIDIA GPU。 由于新的架构,我也看到了新的 NVIDIA GPU 的缓慢性。 我建议您使用 tf-nightly-gpu 2.5.0.dev20210126 与我的 RTX 3090 一起使用。您也可以组合两个 3090,但不能组合两个 3070。您可以查看 NVIDIA 文档以阅读有关基于 SLI 的显卡的信息. 您也可以将两个 3090 与同一品牌配对,这意味着华硕的 3090 将无法连接 RTX3090 创始版。

运行代码时请确保正在调用 tensorflow 2.5

为了使执行更快,您还可以使用 allocate memory

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

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.Z2C39BC19B761AC476DC046245D

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM