NVLink 是不是使用 DistributedDataParallel 加速训练?
Posted
技术标签:
【中文标题】NVLink 是不是使用 DistributedDataParallel 加速训练?【英文标题】:Does NVLink accelerate training with DistributedDataParallel?NVLink 是否使用 DistributedDataParallel 加速训练? 【发布时间】:2021-04-22 22:27:54 【问题描述】:Nvidia 的NVLink 加速了同一台机器上多个 GPU 之间的数据传输。 我使用 PyTorch 在这样的机器上训练大型模型。
我明白为什么 NVLink 会让 model-parallel 训练更快,因为一次通过模型将涉及多个 GPU。
但它会加速使用DistributedDataParallel 的数据并行训练过程吗?
【问题讨论】:
【参考方案1】:k
GPU 上的数据并行训练如何工作?
您将您的小批量拆分为k
部分,每个部分在不同的 GPU 上转发,并在每个 GPU 上估计梯度。但是,(这是非常关键的)更新权重必须在所有 GPU 之间同步。这也是 NVLink 对于数据并行训练变得重要的地方。
【讨论】:
有道理,谢谢。是否有经验法则可以说明 NVLink 的训练速度会提高多少,还是完全取决于具体情况? @AGLC 速度受很多参数影响以上是关于NVLink 是不是使用 DistributedDataParallel 加速训练?的主要内容,如果未能解决你的问题,请参考以下文章