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优化技术能够使用数据并行异步通信的方式提升性能。
操作步骤
- 开启虚拟流水线,设置--num-layers-per-virtual-pipeline-stage参数;
- 开启--foldx-mode "aiao"标志。
父主题: 进阶调优