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 加速训练?的主要内容,如果未能解决你的问题,请参考以下文章

nvlink支持的显卡

30系列显卡支持双插吗?1200雷神带的起来吗

NVLink和NVSwitch

为啥数组会引起nvlink警告:入口函数的堆栈大小不能静态确定

OpenACC nvlink 未定义类的引用

AMD 7nm Vega 20将支持XGMI总线交火 对标NVIDIA NVLink