我是否应该将我的两个 GPU 与 SLI 连接?(对于 Keras + TensorFlow)

数据挖掘 Python 喀拉斯 张量流 显卡
2022-03-16 23:49:18

我有两个 GPU,NVIDIA GTX 1070 Ti。为了将 Keras 与 TensorFlow 后端一起使用,我是否应该将它们与 SLI 连接?如果不是,那么它们将被分别对待,一个模型将在一张卡片上训练。这是我目前所理解的两个选项。谢谢你。

1个回答

您无需通过 SLI 连接 GPU。Keras 和 TensorFlow 将负责跨 GPU 分配批次

https://keras.io/utils/#multi_gpu_model

除了 SLI,如果你使用 NV-link,Keras 也可以使用 GPU 进行合并。 https://www.nvidia.com/en-us/data-center/nvlink/

从文档中:

具体来说,这个函数实现了单机多GPU数据并行。它的工作方式如下:

将模型的输入分成多个子批次。在每个子批次上应用模型副本。每个模型副本都在专用 GPU 上执行。将结果(在 CPU 上)连接成一个大批次。例如,如果您的 batch_size 是 64 并且您使用 gpus=2,那么我们会将输入分成 32 个样本的 2 个子批次,在一个 GPU 上处理每个子批次,然后返回全部 64 个已处理样本的批次。

这会导致多达 8 个 GPU 的准线性加速。

此功能暂时仅适用于 TensorFlow 后端。