百度推出端側推理引擎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 應用在端側的落地。