飞桨端侧推理引擎重磅升级为Paddle Lite,更高扩展性更极致性能!

Posted 百度AI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了飞桨端侧推理引擎重磅升级为Paddle Lite,更高扩展性更极致性能!相关的知识,希望对你有一定的参考价值。


百度深度学习平台飞桨( PaddlePaddle )再放大招!端侧推理引擎全新升级,重磅发布 Paddle Lite ,旨在推动人工智能应用在端侧更好落地。 该推理引擎在多硬件、多平台以及硬件混合调度的支持上更加完备,是飞桨在 Paddle Mobile 的基础上进行的一次大规模升级迭代。 通过对底层架构设计的改进,扩展性和兼容性等方面实现显著提升。目前, Paddle Lite 已经支持了 ARM CPU , Mali GPU , Adreno GPU ,华为 NPU 以及 FPGA 等诸多硬件平台,是目前首个支持华为NPU 在线编译的深度学习推理框架。

随着技术进步,手机等移动设备和边缘设备已成为非常重要的本地深度学习载体。 然而日趋异构化的硬件平台和复杂的终端侧的使用状况,让端侧推理引擎的架构能力颇受挑战。 端侧模型的推理往往还面临着严苛的算力和内存的限制。

为了能够更完善地支持众多的硬件架构,并且实现在这些硬件之上深度学习模型性能的极致优化,百度飞桨基于 Paddle Mobile 预测库,融合 Anakin 等多个相关项目的技术优势,全新发布端侧推理引擎 Paddle Lite 。 通过全新架构高扩展性和高灵活度地建模底层计算模式,加强了多种硬件支持、混合调度执行和底层实现的深度优化,更好满足人工智能应用落地不同场景。

飞桨端侧推理引擎重磅升级为Paddle Lite,更高扩展性更极致性能!

此次升级发布, Paddle Lite 对应着架构的重大升级,在多硬件、多平台以及硬件混合调度的支持上更加完备。

不仅涵盖 ARM CPU 、 Mali GPU 、 Adreno GPU 、华为 NPU 等移动端芯片,也支持 FPGA 等边缘设备常用硬件,并具备可兼容支持云端主流芯片的能力。

Paddle Lite 还是首个华为 NPU 在线编译的深度学习推理框架。 更早之前,百度和华为宣布在 AI 开发者大会上强强联手。
 
飞桨端侧推理引擎重磅升级为Paddle Lite,更高扩展性更极致性能!


Paddle Lite 支持范围更广的 AI 硬件终端,增强了部署的普适性,并且具备明显的性能优势。

 Paddle Lite 五大特性 
 
Paddle Lite 一共有五大特性: 高扩展性、训练推理无缝衔接、 通用性、高性能和轻量化。
 
1.高扩展性
新架构对硬件抽象描述能力更强,可容易地在一套框架下对新硬件进行集成,具有非常好的扩展性。 例如,对于 FPGA 的扩展支持变得非常简单。
 
此外,参考了 LLVM 的 Type System 和 MIR ( Machine IR ),可以模块化地对硬件和模型进行更细致的分析和优化,可以更便捷高效地扩展优化策略,提供无限可能。 目前,已经支持21种 Pass 优化策略,涵盖硬件计算模式混合调度、INT8 量化、算子融合、冗余计算裁剪等不同种类的优化。
 
2.训练推理无缝衔接
不同于其他一些独立的推理引擎, Paddle Lite 依托飞桨训练框架及其对应的丰富完整的算子库,底层算子的计算逻辑与训练严格一致,模型完全兼容无风险,并可快速支持更多模型。
 
和飞桨的 PaddleSlim 模型压缩工具打通,直接支持 INT8 量化训练的模型,并可获得比离线量化更佳的精度。
 
3.通用性
官方发布18个模型的 benchmark ,涵盖图像分类、检测、分割及图像文字识别等领域,对应80个算子 Op +85个 Kernel,相关算子可以通用支持其他模型。
 
飞桨端侧推理引擎重磅升级为Paddle Lite,更高扩展性更极致性能!
 
兼容支持其他框架训练的模型,对于 Caffe 和 TensorFlow 训练的模型,可以通过配套的 X2Paddle 工具转换之后进行推理预测。
 
支持多硬件,目前已支持的包括 ARM CPU , Mali GPU 、 Adreno GPU 、华为 NPU 、 FPGA 等,正在优化支持的有寒武纪、比特大陆等 AI 芯片,未来还会支持其他更多的硬件。
 
此外,还提供 Web 前端开发接口,支持 javascript 调用 GPU ,可在网页端快捷运行深度学习模型。
 
4.高性能
在 ARM CPU 上,性能表现优异。 针对不同微架构,进行了 kernel 的深度优化,在主流移动端模型上,展现出了速度优势。

飞桨端侧推理引擎重磅升级为Paddle Lite,更高扩展性更极致性能!


此外,支持 INT8 量化计算,通过框架层的优化设计和底层高效的量化计算实现,结合 PaddleSlim 模型压缩工具 中 INT8 量化训练功能,可以提供高精度高性能的预测能力。


 

飞桨端侧推理引擎重磅升级为Paddle Lite,更高扩展性更极致性能!


在华为 NPU , FPGA 上也有很好的性能表现。
 
飞桨端侧推理引擎重磅升级为Paddle Lite,更高扩展性更极致性能!


5.轻量化
针对端侧设备特点进行深度定制及优化,无任何第三方依赖。 整个推理过程分为模型加载解析、计算图的优化分析及设备上的高效运行。 移动端可以直接部署经过优化分析的图,执行预测。
 

android 平台上 , ARMV7 动态库只需要800k, ARMV8 动态库仅有1.3M,也可以根据需要,进行更深度的剪裁。

 
目前, Paddle Lite 及其前身的相关技术,已经在百度 App 、百度地图、百度网盘和自动驾驶等产品大规模使用。
 
比如百度 App 新近推出实时动态多目标识别功能,把原来云端200多层的视觉算法模型优化到10几层,实现100ms 以内识别物体,8ms 内做出物体位置追踪更新。

飞桨端侧推理引擎重磅升级为Paddle Lite,更高扩展性更极致性能!

相比之下,人类肉眼识别物体,一般需要170ms 到400ms ,追踪物体刷新需要40ms 左右,这意味着其识别速度已经超过了人眼。
 
而实现这一切,正是得益于 Paddle Lite 强大的端侧推理能力,能够完美承担飞桨在多硬件平台上的高效部署,并实现了模型应用的极致性能优化。

 全新架构详解 
 
Paddle Lite 的架构有一系列自主研发技术,整合了百度内部多个预测库架构优势能力,并重点增加了多种计算模式(硬件、量化方法、 Data Layout )混合调度的完备性设计,新架构设计如下:

飞桨端侧推理引擎重磅升级为Paddle Lite,更高扩展性更极致性能!

其中最上面一层是模型层,直接接受 Paddle 训练的模型,通过模型优化工具转化为 NaiveBuffer 特殊格式,以便更好地适应移动端的部署场景。
 
第二层是程序层,是 operator 序列构成的执行程序。
 
第三层是一个完整的分析模块,包括了 MIR ( Machine IR ) 相关模块,能够对原有的模型的计算图针对具体的硬件列表进行算子融合、计算裁剪在内的多种优化。
 
不同于飞桨训练过程中的 IR ( Internal Representation ),硬件和执行信息也在这一层加入到分析中。
 
最底层是执行层,也就是一个 Kernel 序列构成的 Runtime Program 。 执行层的框架调度框架极低,只涉及到 Kernel 的执行,且可以单独部署,以支持极致的轻量级部署。
 
整体上来看,不仅着重考虑了对多硬件和平台的支持,而且也强化了多个硬件在一个模型中混合执行的能力、多个层面的性能优化处理,以及对端侧应用的轻量化设计。
 
 助力中国 AI 生态发展 
 
飞桨( PaddlePaddle )的进化,不仅仅只是一个简单的产品升级。

飞桨框架本着更加开放的态度建立众多硬件厂商深度合作,必将极大的加速 AI 技术工业化生产落地的进程,飞桨及时抓住市场机遇且初见成效。
 
据百度刚发布的 Q2 财报显示, 飞桨的开发者下载量在2019年第二季度环比增加了45%。
 
作为目前最流行的国产机器学习框架,飞桨推出 Paddle Lite ,投入大量精力解决国内 AI 硬件应用范围小、开发困难的局面。
 
端侧推理引擎在人工智能应用落地环节有着重要影响,直接关系到用户的体验,在自动驾驶等人工智能应用领域,端侧推理引擎甚至关乎用户的生命财产安全。 百度飞桨推出 Paddle Lite 对端侧推理引擎性能进行大幅优化提升,对于人能智能应用的落地起到关键的推动作用。 未来, Paddle Lite 将支持更多硬件,覆盖更广泛的应用领域。
 
 传送门 
 
关于本次发布的 Paddle Lite ,重点功能升级汇总如下:

1、 架构重大升级, 通过添加 Machine IR 、 Type System 、轻量级 Operator 和 Kernel 等,增加了通用多平台和多硬件支持,多 precision 和 data layout 混合调度执行,动态优化,轻量级部署等重要特性。
 
2、 完善了 Java API , 与 C++ API 一一对应。
 
3、 新增 NaiveBuffer 模型存储格式, 移动端部署与 protobuf 解耦,使预测库尺寸更小。
 
4 、通过 X2Paddle 支持 Caffe 和 TensorFlow 模型的预测,目前官方验证6种模型转化支持。
 
5、新增对华为海思 NPU 的深度支持,成为 首个支持华为 NPU 在线编译的框架, 已验证。
 
6、支持 FPGA ,已验证 ResNet50 模型。
 
7、对于 Mali GPU 和 Adreno GPU,支持 OpenCL 和 ARM CPU Kernel 混合调度,已验证了在 MobileNetV1 、 MobileNetV2 、 ResNet-50 等模型上的效果。
 
8、对于 ARM 架构的 CPU , Paddle Lite 增加了对 vgg-16 、 EfficientNet-b0 、 ResNet-18 等常见模型的支持验证。
 
9、新增各类硬件 Kernel 70种。

更多详情:
欢迎加入官方 qq 群(696965088):
飞桨端侧推理引擎重磅升级为Paddle Lite,更高扩展性更极致性能!
官网地址:
https://www.paddlepaddle.org.cn
项目地址:
https://github.com/PaddlePaddle/Paddle-Lite

飞桨端侧推理引擎重磅升级为Paddle Lite,更高扩展性更极致性能!



飞桨端侧推理引擎重磅升级为Paddle Lite,更高扩展性更极致性能!

以上是关于飞桨端侧推理引擎重磅升级为Paddle Lite,更高扩展性更极致性能!的主要内容,如果未能解决你的问题,请参考以下文章

百度端侧推理引擎 Paddle Lite 新增 ARM 端图像预处理库

Paddle Lite 深度解读落地实战-百度技术分享会报名(北京)

坐标北京,Paddle Lite​ 线下交流会,助力算法落地

百度推出端侧推理引擎 Paddle Lite,支持华为 NPU 在线编译

更强大易用的端侧推理引擎来啦!Paddle Lite 2.0正式发布

如何基于Flutter和Paddle Lite实现实时目标检测