题目内容
在大规模深度学习训练中,常采用流水线并行(Pipeline Parallelism)来提升训练效率。模型被划分为多个连续阶段(stage),每个阶段在不同设备上执行。合理的阶段划分需要兼顾:
- 计算负载均衡
- 通信开销最小
给定一个包含n层的模型,需要按顺序划分为p个连续阶段。每层有计算时间time[i],相邻层之间存在通信开销comm[i]。
如果在层k与层k+1之间划分阶段,需要产生通信开销comm[k]。每个阶段的计算时间为该阶段所有层计算时间之和。设:
stage_time=某个阶段所有层的 time 之和stage\_time = \text{某个阶段所有层的 time 之和}s