1 Star 0 Fork 143

fangxiaolong / AscendSpeed

forked from Ascend / MindSpeed 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
pipeline-parallel.md 1.21 KB
一键复制 编辑 原始数据 按行查看 历史
yuqi 提交于 2024-04-29 11:23 . !229 新增文档

流水线并行

问题分析

在大模型时代,单一设备无法存储整个模型。模型并行用于训练过程中太大而无法保存的模型。在朴素的模型并行中,设备需要等待前一阶段的计算结果,导致计算资源的严重利用率不足。同时,设备需要储存计算的中间结果,存储开销大。

解决方案

采用流水线的思想,减少不同机器之间等待的时间。同时尽可能地缩短前向计算与反向计算之间的距离,以减少内存消耗

解决思路:

  • 将整个网络分阶段(stage),不同阶段在不同的设备上,前后阶段流水分批工作,通过一种“接力”的方式并行。
  • 开始训练时,会先进行预热。预热完成后,每进行一个前向运算,就安排一个后向运算。最后进行冷却,完成剩余阶段。如下图所示

alt text

原文链接

使用场景

使用训练模型时,将模型加载到多卡,想要提升计算效率

使用方法

设置--pipeline_model_parallel_size,默认为1,根据用户需求配置。

使用效果

提升计算效率,减少内存消耗

1
https://gitee.com/xiaoloongfang/AscendSpeed.git
git@gitee.com:xiaoloongfang/AscendSpeed.git
xiaoloongfang
AscendSpeed
AscendSpeed
master

搜索帮助