重大进展!Paddle Fluid 加速float16卷积神经网络预测!

重大进展!Paddle Fluid 加速float16卷积神经网络预测!

​所有 PaddlePaddle 的应用者们:

我们很高兴地宣布,

PaddlePaddle Fluid 可以支持在卷积神经网络上进行 float 16模式的低精度预测了!

同时在 NVIDIA 最新的支持 Tensor core 的 GPU 提供的 float 16加速运算支持下,float 16模式的预测在不损失准确率的情况下,实现了很大的加速效果(跟float 32比较)!

重大进展!Paddle Fluid 加速float16卷积神经网络预测!

为什么可以非常开心的庆祝起来?

这就需要从 float 讲起。通常的深度学习预测(inference)的参数,输入输出和运算都是用的4个字节的 float(也叫 float 32)浮点数表示。 Float 指的是浮点数,由 IEEE 指定规则,这种结构是一种科学计数法,用符号、指数和尾数来表示,底数定位2。float 包括1个符号位、8个指数位和23个尾数位。

重大进展!Paddle Fluid 加速float16卷积神经网络预测!

​如果改成用2个字节的 float 16浮点数来表示,可以节约内存占用、耗电量和运算时间。PaddlePaddleFluid 完成了在卷积神经网络(CNN)上进行 float16inference 的支持。跟 float 32模式的预测比较,在准确率一致的前提下,float 16模式的预测在 GPU 上更快,更省电,更节省内存占用。

这就好比在吃食物时,同样热量的棉花糖和软糖,显然后者的食用速度是快于前者的,这样也可以尽快消化。

重大进展!Paddle Fluid 加速float16卷积神经网络预测!

加速效果到底是怎样的呢?

PaddlePaddle 在支持 float 16加速运算(NVIDIA 的 Tensor Core 技术) 的 NVIDIA 最新 GPU(V100)上测试了 Fluid float 16 预测(inference)的效果,可以总结为两点:

(1)float16inference 的准确率: 和 float32inference 的准确率非常一致。

(2)float16inference 的加速效果(跟 float 32模式下平均一个 batch 的预测时间做比较):在 Vgg 16上随着 batch size 的不同有2~4倍的加速效果,在 Resnet 50上有1.15~2倍的加速效果。

这也就是说,今后再使用 PaddlePaddle Fluid 时,参数处理速度被大大提升,能够留出更多时间可以用于后续的模型搭建和训练环节,这就像高铁提速能够让大家更快到达目的地,此次改变能让开发者们快捷操作,把更多的 Idea 更好更快速的实现!

当然,这一突破的背后,除了感谢夜以继日付出努力的开发工程师们,更是要感谢 PaddlePaddle 使用者们。PaddlePaddle Fluid 仍在不断成长,希望今后能够带给大家更多惊喜,也欢迎各位开发者们及时提出问题与建议!感谢每位使用 PaddlePaddle 的开发者们的信任!

重大进展!Paddle Fluid 加速float16卷积神经网络预测!

你们的 PaddlePaddle

2018年5月17日


分享到:


相關文章: