今天我们为大家带来的课程是:《飞桨分布式训练简介》
飞桨分布式训练的特点:
1.分布式High-Level API Fleet
分布式训练统一API,支持参数服务器(Parameter Server)和Collective模式训练,大幅度降低用户从单机切换到多机训练的新增代码量。
用户可以通过配置分布式策略调用不同的并行训练方法,对于不同的分布式环境支持多种内建RoleMaker,方便用户调用。
2.参数服务器(Parameter Server)训练新增Communicator设计
独立通信逻辑到Communicator,简化异步训练逻辑;
提供可控制通信开关,可针对不同模型针对性调优。
3.GPU多机多卡增加多个提升扩展性Feature,NLP/CV经典模型下多机多卡训练提速50%
新增Fused All Reduce:通过对gradient tensor进行自动合并,降低参数同步次数;
新增Hierachical All Reduce:层次化all reduce操作;
新增All Reduce通信并发能力:增加多机训练下,训练对网络波动的容忍能力;
新增反向与优化算法之间的依赖分析:提升通信与计算overlap并发的能力;
以上新增能力融合可实现在Bert Large(batch 16 x 128)和Resnet50(batch 32)上多机(v100 8*4 卡)训练速度比PaddlePaddle1.4.1提速50%+。
4.CPU-GPU异构设备流水线并行能力支持
新增流水线并行能力,可支持用户自定义在异构硬件分配计算OP,通过流水线交换数据,从而实现异构计算设备的搭配和计算资源的自由配比,提升训练速度
在IO量大、计算量较小的场景例如CTR预估,Graph Neural Network下相比纯GPU训练有明显速度优势。
此外,GPU多机多卡Benchmark更新:
ResNet50、VGG16、Transformer和Bert上的速度对比,并提供可复现的benchmarks脚本。
以下视频来自2019百度AI开发者大会飞桨深度学习公开课的现场。
获取演讲PPT,请点击文末阅读原文。