多GPU训练不会减少训练时间

我曾尝试使用keras训练三个UNet模型进行图像分割,以评估多GPU训练的效果。

  1. 使用1个批处理大小在1个GPU(P100)上训练了第一个模型。每个训练步骤约需254毫秒。 (请注意,这是一步,而不是时代)。
  2. 使用1个GPU(P100)使用2个批处理大小训练第二个模型。每个训练步骤约需399毫秒。
  3. 使用2个GPU(P100)使用2个批处理大小训练了第三种模型。每个训练步骤约需370毫秒。从逻辑上讲,这应该与第一种情况花费相同的时间,因为两个GPU并行处理一批,但花费了更多时间。

谁能说出多GPU训练是否减少了训练时间?作为参考,我使用keras尝试了所有模型。

jhyk6922 回答:多GPU训练不会减少训练时间

我认为这是由于您使用了非常小的batch_size;在这种情况下,将梯度/计算分布在两个GPU上并取回它们的成本(以及CPU到GPU(2)的数据分配),要比并行训练(在1个GPU上)所获得的并行时间优势大得多

例如,对于批量大小为8/16的产品,期望有更大的差异。

本文链接:https://www.f2er.com/2590956.html

大家都在问