近期,RISC-V SIG 完成了 Arm NN 在 openEuler Embedded 系統(tǒng)的適配,于 2023 年 1 月合入系統(tǒng)構(gòu)建工程代碼庫(kù),經(jīng)測(cè)試驗(yàn)證可用,實(shí)現(xiàn)了神經(jīng)網(wǎng)絡(luò)加速庫(kù)在 openEuler Embedded 嵌入式系統(tǒng)上的加速和優(yōu)化。
系統(tǒng)構(gòu)建工程下載地址:https://gitee.com/openeuler/yocto-meta-openeuler
支持 Arm NN 的 openEuler Embedded 系統(tǒng)已向社區(qū)開放
openEuler Embedded 是基于 openEuler 社區(qū)面向嵌入式場(chǎng)景的 Linux 版本,由于嵌入式系統(tǒng)應(yīng)用受到多個(gè)因素的約束,如資源、功耗、多樣性等, 所以通過(guò)嵌入式處理器內(nèi)核進(jìn)行機(jī)器學(xué)習(xí)成為了技術(shù)發(fā)展需要,ARM 推出 Arm NN 加速庫(kù)就是解決方法之一,將機(jī)器學(xué)習(xí)運(yùn)用到嵌入式系統(tǒng)中。提供高性能神經(jīng)網(wǎng)絡(luò)推理能力,支持邊、端協(xié)同工作,提升資源利用率。
目標(biāo)檢測(cè)是在嵌入式平臺(tái)上運(yùn)行機(jī)器學(xué)習(xí)的工作負(fù)載之一
以目標(biāo)檢測(cè)為示例,驗(yàn)證 ArmNN 的推理加速效果:
模型:yolov3 tiny(FLOAT32 量化)
訓(xùn)練數(shù)據(jù):COCO
測(cè)試數(shù)據(jù):640*480 H264 視頻
通過(guò)實(shí)驗(yàn)證明,在精度損失可接受范圍內(nèi),Arm NN 加速可達(dá)到百倍的性能提升。如下圖所示,其中橫軸表示檢測(cè)圖片序號(hào),縱軸表示推理耗時(shí)(單位:us):
注:musl-ref 是指基于 MuslC 的 Openeuler Embedded 且不做任何加速,musl-acc 是指基于的 Openeuler Embedded 且使能 ArmNN 的指令加速和優(yōu)化。
為了適配 openEuler Embedded 系統(tǒng), Arm NN 軟件需兼容 yocto-meta-openeuler,并在上做了很多準(zhǔn)備工作,如 tensorflow 的適配,Compute Library 的適配,flatbuffers 的使用等。openEuler Embedded Arm NN 的構(gòu)建代碼位于 meta-openeuler/recipes-arm 層上,社區(qū)開發(fā)者可根據(jù)需要自行構(gòu)建 ArmNN 軟件。
Arm NN:融合主流神經(jīng)網(wǎng)絡(luò)框架,為用戶提供高效的 AI 應(yīng)用平臺(tái)
Arm NN SDK 是一套開源 Linux 軟件和工具,支持在高能效的設(shè)備上運(yùn)行機(jī)器學(xué)習(xí)工作負(fù)載。它橋接了現(xiàn)有神經(jīng)網(wǎng)絡(luò)框架與高能效的 Arm Cortex CPUs、Arm Mali GPU 或 Arm 機(jī)器學(xué)習(xí)處理器。
Arm NN 填補(bǔ)了現(xiàn)有 NN 框架和底層 IP 之間的空白。它可以幫助 TensorFlow 和 Caffe 等現(xiàn)有神經(jīng)網(wǎng)絡(luò)框架實(shí)現(xiàn)高效轉(zhuǎn)換,并在 Arm Cortex CPU 和 Arm Mali GPU 上高效運(yùn)行,無(wú)需修改。
主要優(yōu)勢(shì)
更輕松地在嵌入式系統(tǒng)上運(yùn)行 TensorFlow 和 Caffe;
Compute Library 內(nèi)部的一流優(yōu)化函數(shù),讓用戶充分發(fā)揮底層平臺(tái)的強(qiáng)大性能;
無(wú)論面向何種內(nèi)核類型,編程模式都是相同的;
現(xiàn)有軟件能夠自動(dòng)利用新硬件特性;
作為開源軟件,能夠相對(duì)簡(jiǎn)單地進(jìn)行擴(kuò)展,從而適應(yīng) Arm 合作伙伴的其他內(nèi)核類型。
Arm NN 為 openEuler Embedded 系統(tǒng)帶來(lái)人工智能的新活力
Arm NN 為 openEuler Embedded 提供全系統(tǒng)的神經(jīng)網(wǎng)絡(luò)優(yōu)化方案,支持在高能效的設(shè)備上運(yùn)行機(jī)器 學(xué)習(xí)工作負(fù)載。為了充分利用不同平臺(tái)的軟硬件特性,在 Linux 系統(tǒng)上提供 ARM CPU 上的神經(jīng)網(wǎng)絡(luò)加速能力,使用硬件指令加速庫(kù)接口,使其面向目標(biāo)硬件。目前,Arm NN 軟件庫(kù)在 openEuler Embedded 系統(tǒng)上的適配工作基本完成, RISC-V SIG 也將持續(xù)研發(fā)更多新功能,并移植最新的 openEuler Embedded 系統(tǒng)鏡像。為了加快 openEuler Embedded 系統(tǒng)人工智能應(yīng)用場(chǎng)景落地,我們誠(chéng)邀感興趣的朋友和測(cè)試志愿者加入并下載開發(fā)版鏡像,共同探索并解決可能存在的問(wèn)題,推動(dòng) openEuler 人工智能開發(fā)生態(tài)的繁榮發(fā)展!
審核編輯 :李倩
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3593瀏覽量
129497 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4772瀏覽量
100803 -
openEuler
+關(guān)注
關(guān)注
2文章
316瀏覽量
5896
原文標(biāo)題:Arm NN 成功適配 openEuler Embedded,提供高性能神經(jīng)網(wǎng)絡(luò)推理能力
文章出處:【微信號(hào):openEulercommunity,微信公眾號(hào):openEuler】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論