多GPU训练在现实中有什么好处?

数据挖掘 机器学习 神经网络 深度学习 训练 显卡
2022-01-19 22:12:19

一个 gpu 和 multi-gpu 之间训练损失的下降速度几乎相同。

在对梯度进行平均之后,多 GPU 的唯一好处是模型似乎可以同时看到更多数据。

但是为什么要平均梯度呢?是不是模型确实同时提供了更多数据?

3个回答

在分配某些资源时,我看到使用多 GPU 而不是一个主要优势:

  • 使用大型 DNN 模型 - 一些最近的模型在内存中占用了大量空间,因此它们根本无法适应常规 GPU,并且使用多个 GPU 允许将模型的某些部分分配到不同的 GPU 实例。
  • 加速 DNN 训练也是使用多个 GPU 的一个非常积极的效果,但前提是您在 GPU 之间具有高速连接,因为 NVIDIA 带有他们的NVLink

实际上,使用更多 GPU,您可以分配计算并并行运行它们。例如,您可以采用 AlexNet 中使用的组概念。尽管在使用后观察到它可以具有其他属性,但使用 SLI 的主要目的之一是因为您可以在多个 GPU 之间分配组卷积,这可以促进卷积操作。每次更新都在相应的 GPU 中完成。

更多的 gpu 意味着批处理中的更多数据。并且批量数据的梯度被平均用于反向传播。

如果一个批次的学习率是固定的,那么一个数据的学习率就更小。

如果一个数据的学习率是固定的,那么一个批次的学习率会更大。

https://github.com/guotong1988/BERT-GPU