『技术』一行代码让训练速度提升2倍,飞桨自动混合精度技术详解( 三 )
sgd = SGDOptimizer(learning_rate=1e-3)mp_sgd = fluid.contrib.mixed_precision.decorator.decorate(sgd,init_loss_scaling=2**15,incr_every_n_steps=2000,use_dynamic_loss_scaling=True)mp_sgd.minimize(avg_loss)多卡 GPU 训练的优化
在新发布的飞桨核心框架 1.7 版本上 , AMP 技术深度优化了多卡 GPU 训练 。 如图 2 所示 , 在优化之前的参数梯度更新过程中 , 梯度计算时虽然使用的是半精度数据类型 , 但是不同 GPU 卡之间的梯度传输数据类型仍为单精度 。
本文插图
图 2 1.7 版本之前的参数梯度更新过程示意图
为了降低 GPU 多卡之间的梯度传输带宽 , 我们将梯度传输这个过程提到 Cast 操作之前 , 而每个 GPU 卡在得到对应的半精度梯度后再执行 Cast 操作 , 将其转变为单精度类型 , 如图 3 所示 。 这一优化在训练网络复杂度较大的模型时 , 对减少带宽占用方面非常有效 , 如多卡训练 BERT-Large 模型 。
本文插图
图 3 1.7 版本的参数梯度更新过程示意图
训练性能对比(AMP VS FP32)
飞桨 AMP 技术在 ResNet50、Transformer 等模型上训练速度相对于 FP32 训练来说有非常大的优势 , 下面以 ResNet50 模型为例 , 从下图中可以看出 , ResNet50 的 AMP 训练相对与 FP32 训练 , 单卡加速比可达 2.9 倍 , 八卡加速比可达 2.8 倍 。
本文插图
相关资料
- Mixed Precision Training:https://arxiv.org/abs/1710.03740
- 使用自动混合精度加速 PaddlePaddle 训练:https://on-demand-gtc.gputechconf.com/gtcnew/sessionview.php?sessionName=cn9312-使用自动混合精度加速+paddlepaddle+训练
如果您想详细了解更多飞桨的相关内容 , 请参阅以下文档 。
官网地址:https://www.paddlepaddle.org.cn
飞桨核心框架项目地址:https://github.com/PaddlePaddle/Paddle
推荐阅读
- 「A1canton」智慧酒店震撼来袭——虚拟现实VR篇,五大技术革新传统酒店
- #麒麟说财经#利润高到想不到,却被很多人看不起,这一行业被低估
- 「北京头条客户端」科技部:将加大对前沿技术研发的攻关和支持力度
- 『财经涂鸦』三七互娱爆发的秘密:该用技术公司估值模型来看它了
- 2020年你应该关注的8大技术趋势,眺望曙光TVP线上技术闭门会纯享实录
- 十大突破性技术-NMN,叫你如何选择最好的NMN
- CNBC:京东智联云打造欧美企业在华首选技术服务平台
- 鲁信创投■60余家创投机构代表参加新能源与先进制造专场路演活动中国科协科学技术传播中心
- 产业气象站▲固守高端显示技术领先地位,三星、LGD皆弃LCD
- 『接风娱乐』人机对战协作新时期已经来临,提高智能化与人工智能技术趋于结合
