Paddle-Lite的技術(shù)特點(diǎn)
Paddle-Lite是百度公司推出的輕量級(jí)推理框架,其基本特點(diǎn)如下:
01
輕量級(jí):執(zhí)行階段和計(jì)算優(yōu)化階段實(shí)現(xiàn)良好解耦拆分,移動(dòng)端可以直接部署執(zhí)行階段,無(wú)任何第三方依賴。包含完整的80個(gè)Op加85個(gè)Kernel的動(dòng)態(tài)庫(kù),對(duì)于ARMV7只有800K,ARMV8下為1.3M,并可以裁剪到更低。在應(yīng)用部署時(shí),載入模型即可直接預(yù)測(cè),無(wú)需額外分析優(yōu)化。
02
多硬件支持:Paddle-Lite 架構(gòu)已經(jīng)驗(yàn)證和完整支持從Mobile到Server多種硬件的支持需求,包括ARM CPU, ARM GPU, Huawei NPU, Intel X86 CPU, NV GPU等。得益于對(duì)不同硬件適度的抽象,在Paddle-Lite 框架本身清晰的同時(shí)支持不同硬件的特殊調(diào)度需求,使得Paddle Lite架構(gòu)在框架的清晰程度和硬件的特定調(diào)度優(yōu)化上達(dá)到很好的平衡,比如Nvidia GPU上復(fù)雜的stream, event分配,在 Paddle-Lite 中可以清晰表示。
03
高性能:高性能來(lái)源于兩方面,一是Kernel優(yōu)化;二是框架執(zhí)行。Kernel 方面,我們對(duì)相應(yīng)硬件上的 Kernel 通過指令集、操作熔合、算法改寫等方式進(jìn)行了深入優(yōu)化。
04
框架執(zhí)行方面,通過簡(jiǎn)化Op和Kernel的功能,使得執(zhí)行期的框架開銷極低;此外,框架極大的靈活性可以支持各種硬件的特定調(diào)度優(yōu)化以提升整體效率。
05
混合調(diào)度:Paddle-Lite支持系統(tǒng)可見任意硬件的混合調(diào)度,目前已經(jīng)支持ARM CPU和ARM GPU的Kernel自動(dòng)混合調(diào)度,并驗(yàn)證了X86 CPU和Nvidia GPU 間的混合調(diào)度。
Paddle-Lite的框架
Paddle-Lite是輕量級(jí)推理引擎,全面硬件支持(ARM,GPU,NPU,FPGA),多種操作系統(tǒng)支持(Windows,iOS,Linux),多訓(xùn)練架構(gòu)支持(TensorFlow,Caffe,PaddlePaddle,ONNX),以及全面模型支持。
英特爾? Cyclone? V片上系統(tǒng)
Cyclone? V片上系統(tǒng)(SoC)由單核/雙核Cortex-A9硬核系統(tǒng)(HPS)和FPGA兩部分組成,其硬件框圖如下。
下圖是基于Cyclone? V的測(cè)試板
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)預(yù)測(cè)庫(kù) (armv7hf, gcc編譯):
最終的編譯結(jié)果位于build.lite.linux.armv7hf.gcc下:
Paddle-Lite接口測(cè)試
Linux(ARM) demo示例基于C++ API開發(fā),調(diào)用Paddle-Lite C++ API包括以下五步:
// 引入C++ API
// 1. 設(shè)置MobileConfig
// 2. 創(chuàng)建PaddlePredictor
// 3. 設(shè)置輸入數(shù)據(jù)
// 4. 執(zhí)行預(yù)測(cè)
// 5. 獲取輸出數(shù)據(jù)
結(jié)語(yǔ)
在Cyclone? V平臺(tái)上,Paddle-Lite支持ARM和FPGA的混合調(diào)度。針對(duì)如卷積,池化,全連接等復(fù)雜的運(yùn)算可以部署到FPGA上執(zhí)行,其它的算子可以在ARM上實(shí)現(xiàn)并執(zhí)行。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21736瀏覽量
603384 -
ARM
+關(guān)注
關(guān)注
134文章
9097瀏覽量
367554 -
英特爾
+關(guān)注
關(guān)注
61文章
9964瀏覽量
171771 -
片上系統(tǒng)
+關(guān)注
關(guān)注
0文章
186瀏覽量
26815
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論