NVLink 是否使用 DistributedDataParallel 加速训练?

Does NVLink accelerate training with DistributedDataParallel?

Nvidia 的 NVLink 加速了同一台机器上多个 GPU 之间的数据传输。 我使用 PyTorch 在这样的机器上训练大型模型。

我明白了为什么 NVLink 会使 model-parallel 训练更快,因为一次通过模型将涉及多个 GPU。

但是它会使用 DistributedDataParallel 加速数据并行训练过程吗?

k GPU 上的数据并行训练如何工作?
您将 mini batch 分成 k 个部分,每个部分在不同的 GPU 上转发,并在每个 GPU 上估计梯度。然而,(这是非常关键的)更新权重必须在所有 GPU 之间同步。这也是 NVLink 对于数据并行训练变得重要的地方。