基于英特尔® Cyclone® V片上系统的安装

描述

Paddle-Lite的技术特点

Paddle-Lite是百度公司推出的轻量级推理框架,其基本特点如下:

01

轻量级:执行阶段和计算优化阶段实现良好解耦拆分,移动端可以直接部署执行阶段,无任何第三方依赖。包含完整的80个Op加85个Kernel的动态库,对于ARMV7只有800K,ARMV8下为1.3M,并可以裁剪到更低。在应用部署时,载入模型即可直接预测,无需额外分析优化。

02

多硬件支持:Paddle-Lite 架构已经验证和完整支持从Mobile到Server多种硬件的支持需求,包括ARM CPU, ARM GPU, Huawei NPU, Intel X86 CPU, NV GPU等。得益于对不同硬件适度的抽象,在Paddle-Lite 框架本身清晰的同时支持不同硬件的特殊调度需求,使得Paddle Lite架构在框架的清晰程度和硬件的特定调度优化上达到很好的平衡,比如Nvidia GPU上复杂的stream, event分配,在 Paddle-Lite 中可以清晰表示。

03

高性能:高性能来源于两方面,一是Kernel优化;二是框架执行。Kernel 方面,我们对相应硬件上的 Kernel 通过指令集、操作熔合、算法改写等方式进行了深入优化。

04

框架执行方面,通过简化Op和Kernel的功能,使得执行期的框架开销极低;此外,框架极大的灵活性可以支持各种硬件的特定调度优化以提升整体效率。

05

混合调度:Paddle-Lite支持系统可见任意硬件的混合调度,目前已经支持ARM CPU和ARM GPU的Kernel自动混合调度,并验证了X86 CPU和Nvidia GPU 间的混合调度。

Paddle-Lite的框架

FPGA

Paddle-Lite是轻量级推理引擎,全面硬件支持(ARM,GPU,NPU,FPGA),多种操作系统支持(Windows,iOS,Linux),多训练架构支持(TensorFlow,Caffe,PaddlePaddle,ONNX),以及全面模型支持。

英特尔® Cyclone® V片上系统

Cyclone® V片上系统(SoC)由单核/双核Cortex-A9硬核系统(HPS)和FPGA两部分组成,其硬件框图如下。

FPGA

下图是基于Cyclone® V的测试板

FPGA

Paddle-Lite环境配置

编译环境要求

01

gcc、g++、git、make、wget、python、pip、python-dev、patchelf

02

cmake(建议使用3.10或以上版本)

安装软件部分以Ubuntu为例,其他Linux发行版类似。

安装基本的软件:

FPGA

安装ARM GCC(GCC 5.4.0以上)工具链:

FPGA

安装CMake,3.10以上版本:

FPGA

Paddle-Lite编译

下载Paddle-Lite源码 并切换到release分支,如develop:

FPGA

编译Paddle-Lite Linux(arm)预测库 (armv7hf, gcc编译):

FPGA

最终的编译结果位于build.lite.linux.armv7hf.gcc下:

FPGA

Paddle-Lite接口测试

Linux(ARM) demo示例基于C++ API开发,调用Paddle-Lite C++ API包括以下五步:

FPGA

// 引入C++ API

FPGA

// 1. 设置MobileConfig

FPGA

// 2. 创建PaddlePredictor

FPGA

// 3. 设置输入数据

FPGA

// 4. 执行预测

FPGA

// 5. 获取输出数据

FPGA

结语

在Cyclone® V平台上,Paddle-Lite支持ARM和FPGA的混合调度。针对如卷积,池化,全连接等复杂的运算可以部署到FPGA上执行,其它的算子可以在ARM上实现并执行。

  审核编辑:彭菁
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分