飞桨端侧推理引擎重磅升级为Paddle Lite,更高扩展性更极致性能!
百度深度学习平台飞桨(PaddlePaddle)再放大招!端侧推理引擎全新升级,重磅发布Paddle Lite,旨在推动人工智能应用在端侧更好落地。该推理引擎在多硬件、多平台以及硬件混合调度的支持上更加完备,是飞桨在Paddle Mobile的基础上进行的一次大规模升级迭代。通过对底层架构设计的改进,拓展性和兼容性等方面实现显著提升。目前,Paddle Lite已经支持了ARM CPU,Mali GPU,Adreno GPU,华为NPU以及FPGA等诸多硬件平台,是目前首个支持华为NPU在线编译的深度学习推理框架。
随着技术进步,手机等移动设备已成为非常重要的本地深度学习载体,然而日趋异构化的硬件平台和复杂的终端侧的使用状况,让端侧推理引擎的架构能力颇受挑战。端侧模型的推理往往面临着算力和内存的限制,为了能够完整的支持众多的硬件架构,并且实现在这些硬件之上人工智能应用性能的性能优化,百度飞桨基于Paddle Mobile预测库,融合Anakin等多个相关项目的技术优势,全新发布端侧推理引擎Paddle Lite,通过建模底层计算模式,加强了多种硬件、量化方法、Data Layout 混合调度执行的能力,从而保障了宏观硬件的支持能力,满足人工智能应用落地移动端的严苛要求。
Paddle Lite在架构上全新升级,并重点增加了多种计算模式(硬件、量化方法、Data Layout)混合调度的完备性设计,可以完整承担深度学习模型在不同硬件平台上的的推理部署需求,具备高性能、多硬件、多平台、扩展性强等优势。不同于其他一些独立的推理引擎,Paddle Lite依托飞桨训练框架及其对应的丰富完整的算子库,底层算子计算逻辑与训练严格一致,模型完全兼容无风险,并可快速支持更多模型。
Paddle Lite架构由四层次组成:第一层model 层直接接受Paddle训练的模型,通过模型优化工具转化为NaiveBuffer特殊格式,以便更好地适应移动端的部署场景;第二层Program层是operator序列构成的执行程序;第三层是一个完整的分析模块,主要包括TypeSystem、SSA Graph和Passes等模块;第四层是执行层,由Kernel序列构成的Runtime Program。
Paddle Lite具有以下重要特性:
与其他端侧引擎相比,Paddle Lite扩展性更高,框架层硬件抽象层次的描述能力强,容易对新的硬件进行集成,可以模块化地对硬件和模型进行更细致的分析和优化。
在模型支持方面,Paddle Lite现已支持Paddle图像分类、检测、分割及图像文字识别等领域的模型预测,官方发布了18个模型的benchmark。此外,可以通过X2Paddle工具将由Caffe和TensorFlow训练的模型转换后进行预测。
在硬件支持方面,目前Paddle Lite已支持ARM CPU, ARM GPU、华为NPU和FPGA等硬件平台,正在优化支持的有寒武纪、比特大陆等国产AI芯片,并会兼容支持的Intel、NVIDIA等主流云端芯片,与硬件厂商的广泛深入合作使得lite具有高性能表现,并可紧跟新硬件发展步伐提供先于其他框架的性能表现领先优势。
模型支持和硬件平台支持的广泛性,整体保证了框架的高通用性
在性能方面,Paddle Lite针对不同微架构,进行了kernel的深度优化,支持INT8量化计算,在主流移动端模型上展现出领先的速度优势。值得一提的是,在“国货”华为 NPU上也具有很好的性能表现。
与此同时,Paddle Lite可针对端侧设备特点进行深度定制及优化,无第三方库依赖,让部署过程更轻量化。整个推理过程分为模型加载解析、计算图的优化分析及设备上的高效运行。移动端可以直接部署经过优化分析的图,执行预测。Android平台上,ARMV7 动态库只需要800k,ARMV8动态库仅有1.3M,也可以根据需要,进行更深度的剪裁。
此外,还进一步完善提供了Web前端开发接口,支持javascript调用 GPU,可在网页端快捷运行深度学习模型。
端侧推理引擎在人工智能应用落地环节有着重要影响,直接关系到用户的体验,在自动驾驶等人工智能应用领域,端侧推理引擎甚至关乎用户的生命财产安全。百度飞桨推出Paddle Lite对端侧推理引擎性能进行大幅优化提升,对于人能智能应用的落地起到关键的推动作用。未来,Paddle Lite将支持更多硬件,覆盖更广泛的应用领域。
更多详情:
欢迎加入官方QQ群:696965088
官网地址:
https://www.paddlepaddle.org.cn
项目地址:
https://github.com/PaddlePaddle/Paddle-Lite