49.現(xiàn)有移動(dòng)端開源框架及其特點(diǎn)—MACE( Mobile AI Compute Engine)

  • Mobile AI Compute Engine (MACE) 是一個(gè)專為移動(dòng)端異構(gòu)計(jì)算設(shè)備優(yōu)化的深度學(xué)習(xí)前向預(yù)測(cè)框架
    • MACE覆蓋了常見的移動(dòng)端計(jì)算設(shè)備(CPU,GPU和DSP),并且提供了完整的工具鏈和文檔,用戶借助MACE能夠很方便地在移動(dòng)端部署深度學(xué)習(xí)模型
  • MACE已經(jīng)在小米內(nèi)部廣泛使用并且被充分驗(yàn)證具有業(yè)界領(lǐng)先的性能和穩(wěn)定性。

49.1 MACE的基本框架:


MACE Model
MACE定義了自有的模型格式(類似于Caffe2),通過(guò)MACE提供的工具可以將Caffe和TensorFlow的模型 轉(zhuǎn)為MACE模型。
MACE Interpreter
MACE Interpreter主要負(fù)責(zé)解析運(yùn)行神經(jīng)網(wǎng)絡(luò)圖(DAG)并管理網(wǎng)絡(luò)中的Tensors。
Runtime
CPU/GPU/DSP Runtime對(duì)應(yīng)于各個(gè)計(jì)算設(shè)備的算子實(shí)現(xiàn)。

49.2 MACE使用的基本流程


配置模型部署文件(.yml)
模型部署文件詳細(xì)描述了需要部署的模型以及生成庫(kù)的信息,MACE根據(jù)該文件最終生成對(duì)應(yīng)的庫(kù)文件。
編譯MACE庫(kù)
編譯MACE的靜態(tài)庫(kù)或者動(dòng)態(tài)庫(kù)。
轉(zhuǎn)換模型
將TensorFlow 或者 Caffe的模型轉(zhuǎn)為MACE的模型。
部署
根據(jù)不同使用目的集成Build階段生成的庫(kù)文件,然后調(diào)用MACE相應(yīng)的接口執(zhí)行模型。
命令行運(yùn)行
MACE提供了命令行工具,可以在命令行運(yùn)行模型,可以用來(lái)測(cè)試模型運(yùn)行時(shí)間,內(nèi)存占用和正確性。
Benchmark
MACE提供了命令行benchmark工具,可以細(xì)粒度的查看模型中所涉及的所有算子的運(yùn)行時(shí)間。

49.3 MACE在哪些角度進(jìn)行了優(yōu)化?

MACE 專為移動(dòng)端異構(gòu)計(jì)算平臺(tái)優(yōu)化的神經(jīng)網(wǎng)絡(luò)計(jì)算框架。主要從以下的角度做了專門的優(yōu)化:

  • 性能
    • 代碼經(jīng)過(guò)NEON指令,OpenCL以及Hexagon HVX專門優(yōu)化,并且采用 Winograd算法來(lái)進(jìn)行卷積操作的加速。 此外,還對(duì)啟動(dòng)速度進(jìn)行了專門的優(yōu)化。
  • 功耗
    • 支持芯片的功耗管理,例如ARM的big.LITTLE調(diào)度,以及高通Adreno GPU功耗選項(xiàng)。
  • 系統(tǒng)響應(yīng)
    • 支持自動(dòng)拆解長(zhǎng)時(shí)間的OpenCL計(jì)算任務(wù),來(lái)保證UI渲染任務(wù)能夠做到較好的搶占調(diào)度, 從而保證系統(tǒng)UI的相應(yīng)和用戶體驗(yàn)。
  • 內(nèi)存占用
    • 通過(guò)運(yùn)用內(nèi)存依賴分析技術(shù),以及內(nèi)存復(fù)用,減少內(nèi)存的占用。另外,保持盡量少的外部 依賴,保證代碼尺寸精簡(jiǎn)。
  • 模型加密與保護(hù)
    • 模型保護(hù)是重要設(shè)計(jì)目標(biāo)之一。支持將模型轉(zhuǎn)換成C++代碼,以及關(guān)鍵常量字符混淆,增加逆向的難度。
  • 硬件支持范圍
    • 支持高通,聯(lián)發(fā)科,以及松果等系列芯片的CPU,GPU與DSP(目前僅支持Hexagon)計(jì)算加速。
    • 同時(shí)支持在具有POSIX接口的系統(tǒng)的CPU上運(yùn)行。

49.4性能對(duì)比:

MACE 支持 TensorFlow 和 Caffe 模型,提供轉(zhuǎn)換工具,可以將訓(xùn)練好的模型轉(zhuǎn)換成專有的模型數(shù)據(jù)文件,同時(shí)還可以選擇將模型轉(zhuǎn)換成C++代碼,支持生成動(dòng)態(tài)庫(kù)或者靜態(tài)庫(kù),提高模型保密性。


大數(shù)據(jù)視頻推薦:
網(wǎng)易云課堂
CSDN
人工智能算法競(jìng)賽實(shí)戰(zhàn)
AIops智能運(yùn)維機(jī)器學(xué)習(xí)算法實(shí)戰(zhàn)
ELK7 stack開發(fā)運(yùn)維實(shí)戰(zhàn)
PySpark機(jī)器學(xué)習(xí)從入門到精通
AIOps智能運(yùn)維實(shí)戰(zhàn)
騰訊課堂
大數(shù)據(jù)語(yǔ)音推薦:
ELK7 stack開發(fā)運(yùn)維
企業(yè)級(jí)大數(shù)據(jù)技術(shù)應(yīng)用
大數(shù)據(jù)機(jī)器學(xué)習(xí)案例之推薦系統(tǒng)
自然語(yǔ)言處理
大數(shù)據(jù)基礎(chǔ)
人工智能:深度學(xué)習(xí)入門到精通

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容