Paddle-Lite的技術特點
Paddle-Lite是百度公司推出的輕量級推理框架,其基本特點如下:
01
輕量級:執(zhí)行階段和計算優(yōu)化階段實現良好解耦拆分,移動端可以直接部署執(zhí)行階段,無任何第三方依賴。包含完整的80個Op加85個Kernel的動態(tài)庫,對于ARMV7只有800K,ARMV8下為1.3M,并可以裁剪到更低。在應用部署時,載入模型即可直接預測,無需額外分析優(yōu)化。
02
多硬件支持:Paddle-Lite 架構已經驗證和完整支持從Mobile到Server多種硬件的支持需求,包括ARM CPU, ARM GPU, Huawei NPU, Intel X86 CPU, NV GPU等。得益于對不同硬件適度的抽象,在Paddle-Lite 框架本身清晰的同時支持不同硬件的特殊調度需求,使得Paddle Lite架構在框架的清晰程度和硬件的特定調度優(yōu)化上達到很好的平衡,比如Nvidia GPU上復雜的stream, event分配,在 Paddle-Lite 中可以清晰表示。
03
高性能:高性能來源于兩方面,一是Kernel優(yōu)化;二是框架執(zhí)行。Kernel 方面,我們對相應硬件上的 Kernel 通過指令集、操作熔合、算法改寫等方式進行了深入優(yōu)化。
04
框架執(zhí)行方面,通過簡化Op和Kernel的功能,使得執(zhí)行期的框架開銷極低;此外,框架極大的靈活性可以支持各種硬件的特定調度優(yōu)化以提升整體效率。
05
混合調度:Paddle-Lite支持系統(tǒng)可見任意硬件的混合調度,目前已經支持ARM CPU和ARM GPU的Kernel自動混合調度,并驗證了X86 CPU和Nvidia GPU 間的混合調度。
Paddle-Lite的框架
Paddle-Lite是輕量級推理引擎,全面硬件支持(ARM,GPU,NPU,FPGA),多種操作系統(tǒng)支持(Windows,iOS,Linux),多訓練架構支持(TensorFlow,Caffe,PaddlePaddle,ONNX),以及全面模型支持。
英特爾? Cyclone? V片上系統(tǒng)
Cyclone? V片上系統(tǒng)(SoC)由單核/雙核Cortex-A9硬核系統(tǒng)(HPS)和FPGA兩部分組成,其硬件框圖如下。
下圖是基于Cyclone? V的測試板
Paddle-Lite環(huán)境配置
編譯環(huán)境要求
01
gcc、g++、git、make、wget、python、pip、python-dev、patchelf
02
cmake(建議使用3.10或以上版本)
安裝軟件部分以Ubuntu為例,其他Linux發(fā)行版類似。
安裝基本的軟件:
安裝ARM GCC(GCC 5.4.0以上)工具鏈:
安裝CMake,3.10以上版本:
Paddle-Lite編譯
下載Paddle-Lite源碼 并切換到release分支,如develop:
編譯Paddle-Lite Linux(arm)預測庫 (armv7hf, gcc編譯):
最終的編譯結果位于build.lite.linux.armv7hf.gcc下:
Paddle-Lite接口測試
Linux(ARM) demo示例基于C++ API開發(fā),調用Paddle-Lite C++ API包括以下五步:
// 引入C++ API
// 1. 設置MobileConfig
// 2. 創(chuàng)建PaddlePredictor
// 3. 設置輸入數據
// 4. 執(zhí)行預測
// 5. 獲取輸出數據
結語
在Cyclone? V平臺上,Paddle-Lite支持ARM和FPGA的混合調度。針對如卷積,池化,全連接等復雜的運算可以部署到FPGA上執(zhí)行,其它的算子可以在ARM上實現并執(zhí)行。
-
FPGA
+關注
關注
1630文章
21796瀏覽量
605999 -
ARM
+關注
關注
134文章
9165瀏覽量
369194 -
英特爾
+關注
關注
61文章
10007瀏覽量
172328 -
片上系統(tǒng)
+關注
關注
0文章
186瀏覽量
26883
發(fā)布評論請先 登錄
相關推薦
為物聯網帶來驚喜 英特爾推出Cyclone10 FPGA系列
![](https://file1.elecfans.com/web2/M00/AC/8E/wKgZomU7eJCACNjJAAVgjrOVjzA637.png)
評論