首页 Paddle Lite 帖子详情
Paddle Lite 2.0 正式发布
收藏
快速回复
Paddle Lite 文章端侧 3275 1
Paddle Lite 2.0 正式发布
收藏
快速回复
Paddle Lite 文章端侧 3275 1

今年8月,飞桨(PaddlePaddle)对外发布面向终端和边缘设备的端侧推理引擎Paddle Lite Beta版。经过近两个多月的迭代和发展,“WAVE Summit+ ”2019深度学习开发者峰会上Paddle Lite 2.0 正式版发布。

Paddle Lite的Github链接:

https://github.com/PaddlePaddle/Paddle-Lite

Paddle Lite致力于提供一套功能完整、易用、高性能的端侧推理引擎,方便广大开发者将应用部署到任何端侧设备之上。对比最初的 beta 版本,正式版在编译、文档、性能、硬件支持、平台支持等方面都有了较大的改进提升。

而飞桨团队也透露,将在今年内继续推进若干小版本的升级,并期待和欢迎开发者加入社区并给出反馈。

在AI技术落地中,推理阶段与实际应用相关联,直接关系到用户的体验,是非常具有挑战性的一环。

图1 典型端侧AI应用部署场景

 

Paddle Lite是飞桨产品栈中用于端侧高性能轻量化AI应用部署的推理引擎,核心用途是将训练出的模型在不同硬件平台场景下快速部署,根据输入数据,执行预测推理得到计算结果,支持实际的业务应用。

图2 Paddle Lite功能定位


 Paddle Lite自Beta版发布以来,在如下核心功能上进行升级

   ●   多框架支持:原生支持飞桨的模型,同时通过X2Paddle工具,提供对TensorFlow,PyTorch和ONNX模型格式的更充分的支持;

   ●   多硬件支持:除了ARM CPU、移动端GPU、华为NPU,新增支持Nvidia GPU和X86 CPU;

   ●   更好的性能:更新benchmark,提升了在ARM CPU上尤其是int8的性能;

   ●   更加完备的功能:支持python API,优化编译流程,新增预测库极致裁剪等功能;

   ●   更加完善的文档和demo:提供完善的文档和多平台的demo,包括安卓、iOS和树莓派等。

 

 多框架支持 

Paddle Lite 不仅可以支持飞桨格式模型,也支持 Caffe,TensorFlow,ONNX 等第三方格式的模型,详情可以参考X2Paddle。官方已经验证如下主流模型的适配情况:

除了上述主流模型以外,ARM CPU FP32 新增如下3个模型支持

   ●   transformer

   ●   facebox

   ●   blazeface

 

ARM CPU INT8 量化预测支持如下模型

   ●   shufflenetv2

   ●   mobilenet-ssd

   ●   vgg16

   ●   googlenet

   ●   mobilenetv1

   ●   mobilenetv2

   ●   Resnet5

 

 多硬件支持 

在v2.0版本中,Paddle Lite新增 Nvidia GPU 和 X86 CPU 两大类硬件支持。

Nvidia GPU 方面,为了充分利用 GPU 的高性能,Paddle Lite用 CUDA 相关软件栈开发了对应的 Kernel,支持 Nvidia 多类GPU硬件,比如服务器端的 P4、T4,以及嵌入式端的 Jetson TX2、TX1、Nano 等。

 

目前CUDA GPU 支持如下三种模型

   ●   Yolov3

   ●   Alexnet

   ●   Unet

在 X86 CPU方面,Paddle Lite增加了 MKL 相关 Kernel,目前能够驱动 inception v4,googlenet,resnet50 等3个模型的高效执行,相应算子对其他多数CV类模型具有普适性。

 

更好的性能 

ARM CPU (v7,v8) 上float32 和 int8 两种计算模式的预测性能均得到提升(见图3,图4),详情可以参考最新的Benchmark:

https://paddlepaddle.github.io/Paddle-Lite/v2.0.0/benchmark/

图3

图4 测试条件:batch_size=1,单线程

 

更加完备的功能 

 

   ●   支持python API

为了简化ARM Linux 相关硬件上的预测部署,Paddle Lite增加了Python API的预测接口,目前在树莓派和 Jetson TX2 等卡上做了应用验证。

   ●   优化编译流程

Paddle Lite支持两种模式的编译:

   ●   tiny_publish:用于对部署体积有严格要求的平台,对应MobileConfig 预测接口。

   ●   full_publish:用于对部署体积无要求的平台,使用简便,对应 CxxConfig 预测接口。

编译方面,除了 docker 以外,新增了 Linux(推荐 Ubuntu)、Mac 等编译平台的支持,并且修复了编译(full_publish)时下载git submodule缓慢的问题。

在统一的编译脚本下,目前支持:

   ●   android ARM CPU, GPU

   ●   iOS

   ●   X86

   ●   NV GPU/CUDA

   ●   Huawei NPU

   ●   ARM Linux

等硬件平台的预测库编译。

   ●   预测库极致裁剪

Paddle Lite对现有移动端预测库进行了进一步压缩,ARM V8 so 从 1.4M 降到 1.3M;此外,还发布了根据单个模型做定制裁剪的功能,即生成一个只包含该模型必需算子的预测库,效果如下图所示:

图5

 

 更加完善的文档和Demo 
完善文档内容,主要包括:

   ●   增加支持硬件的列表:

https://paddlepaddle.github.io/Paddle-Lite/v2.0.0/support_hardware/

   ●   增加根据模型裁剪算子的方法:

https://paddlepaddle.github.io/Paddle-Lite/v2.0.0/library_tailoring/

   ●   更新最新 Benchmark:

https://paddlepaddle.github.io/Paddle-Lite/v2.0.0/benchmark/

为了实际地展示 Paddle Lite 的部署能力,Paddle Lite增加了Paddle-Lite-Demo GitHub 官方DEMO库:

https://github.com/PaddlePaddle/Paddle-Lite-Demo

目前包含:

   ●   Android ARM CPU

   ●   Android Huawei NPU

   ●   iOS ARM CPU

   ●   ARM Linux 树莓派

等多种平台,包括分类、检测等模型的功能演示。

以ARM Linux树莓派为例,Paddle Lite 驱动树莓派3B 调用摄像头进行识别任务,整体效果如图6所示:

图6

详情请参考树莓派摄像头的购买、安装、配置与验证(以树莓派3B为例):

https://github.com/PaddlePaddle/Paddle-Lite-Demo/blob/master/PaddleLite-armlinux-demo/enable-camera-on-raspberry-pi.md

如果您想了解更多关于Paddle Lite的相关内容,请参阅以下文档。

1. Paddle Lite的Github链接:

https://github.com/PaddlePaddle/Paddle-Lite

2. Paddle Lite的文档链接:

https://paddlepaddle.github.io/Paddle-Lite/

3. Paddle Lite Demo的链接:

https://github.com/PaddlePaddle/Paddle-Lite-Demo

4. PaddlePaddle的Github链接:

https://github.com/paddlepaddle

如果使用过程中遇到任何问题,大家可通过Paddle Lite官方QQ群与开发人员进行技术交流及问题反馈。

5.    

此外,您还可以访问【PaddlePaddle官网】、加入飞桨Paddle Lite官方QQ群(群号696965088)或者扫码进入PaddlePaddle的公众号,第一时间获取最新的资讯信息。

 

 

0
收藏
回复
全部评论(1)
时间顺序
w
wangwei8638
#2 回复于2019-11

支持

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户