Virtual pipeline模式异步DDP优化技术

基本原理

常规的virtual pipeline流水线并行策略下,先执行forward,接着执行backward,最后执行数据并行维度的梯度allreduce,坏处是backward与allreduce没有并行起来,导致allreduce的耗时不能被掩盖,进而使step端到端耗时较长。如图所示,seg0的反向计算与seg1的allreduce不构成依赖,仿照pytorch ddp的思想,可以使backward与allreduce并行起来,以此实现部分bucket的通信提前,减少DDP通信拖尾。

图1 Virtual pipeline模式梯度allreduce与反向并行

使用场景

数据并行通信隐藏功能:基于数据并行的分布式训练任务场景下,Virtual pipeline模式异步DDP优化技术能够使用数据并行异步通信的方式提升性能。

操作步骤

  1. 开启虚拟流水线,设置--num-layers-per-virtual-pipeline-stage参数;
  2. 开启--foldx-mode "aiao"标志。