百度推出端侧推理引擎 Paddle Lite,支持华为 NPU 在线编译
雷锋网 (公众号:雷锋网) 消息,近日,百度深度学习平台飞桨(PaddlePaddle)推出端侧推理引擎 Paddle Lite,旨在推动人工智能应用在端侧更好落地。通过对底层架构设计的改进,其拓展性和兼容性等方面实现显著提升。不仅如此,该推理引擎在多硬件、多平台以及硬件混合调度的支持上也更加完备。
目前,Paddle Lite 已经支持了 ARM CPU,Mali GPU,Adreno GPU,华为 NPU 以及 FPGA 等诸多硬件平台,是目前首个支持华为 NPU 在线编译的深度学习推理框架。
随着技术进步,手机等移动设备已成为非常重要的本地深度学习载体,然而日趋异构化的硬件平台和复杂的终端侧的使用状况,让端侧推理引擎的架构能力颇受挑战,端侧模型的推理往往面临着算力和内存的限制。
为了能够完整的支持众多的硬件架构,并且实现在这些硬件之上人工智能应用性能的性能优化,百度飞桨发布了端侧推理引擎 Paddle Lite。通过建模底层计算模式,加强了多种硬件、量化方法、Data Layout 混合调度执行的能力,从而保障宏观硬件的支持能力,满足人工智能应用落地移动端的严苛要求。
Paddle Lite 在架构上全新升级,并重点增加了多种计算模式(硬件、量化方法、Data Layout)混合调度的完备性设计,可以完整承担深度学习模型在不同硬件平台上的的推理部署需求,具备高性能、多硬件、多平台、扩展性强等优势。
不同于其它一些独立的推理引擎,Paddle Lite 依托飞桨训练框架及其对应的丰富完整的算子库,底层算子计算逻辑与训练严格一致,模型完全兼容无风险,并可快速支持更多模型。它的架构主要有四层次:
-
Model 层,直接接受 Paddle 训练的模型,通过模型优化工具转化为 NaiveBuffer 特殊格式,以便更好地适应移动端的部署场景;
-
Program 层是 Operator 序列构成的执行程序;
-
是一个完整的分析模块,主要包括 TypeSystem、SSA Graph 和 Passes 等模块;
-
执行层,由 Kernel 序列构成的 Runtime Program。
值得一提的是,端侧推理引擎在人工智能应用落地环节有着重要影响,直接关系到用户的体验。由此,Paddle Lite 的推出对端侧推理引擎性能进行了大幅优化提升,同时也推动了 AI 应用在端侧的落地。
。