近期,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文章
3679瀏覽量
131331 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4814瀏覽量
103507 -
openEuler
+關(guān)注
關(guān)注
2文章
327瀏覽量
6323
原文標(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)先 登錄
CMSIS-NN神經(jīng)網(wǎng)絡(luò)內(nèi)核助力微控制器效率提升
針對(duì)Arm嵌入式設(shè)備優(yōu)化的神經(jīng)網(wǎng)絡(luò)推理引擎
如何構(gòu)建神經(jīng)網(wǎng)絡(luò)?
可分離卷積神經(jīng)網(wǎng)絡(luò)在 Cortex-M 處理器上實(shí)現(xiàn)關(guān)鍵詞識(shí)別
圖像預(yù)處理和改進(jìn)神經(jīng)網(wǎng)絡(luò)推理的簡(jiǎn)要介紹
充分利用Arm NN進(jìn)行GPU推理
使用Streamline分析在Linux上運(yùn)行的Arm NN機(jī)器學(xué)習(xí)應(yīng)用程序
ARM Cortex-M系列芯片神經(jīng)網(wǎng)絡(luò)推理庫(kù)CMSIS-NN詳解
在Linux上使用Arm NN分析和優(yōu)化運(yùn)行推理的機(jī)器學(xué)習(xí)應(yīng)用程序的步驟
如何用PyArmNN加速樹莓派上的ML推理
用CMSIS-NN版本轉(zhuǎn)換Arm Cortex-M的神經(jīng)網(wǎng)絡(luò):r0p0指南
構(gòu)建ARM NN自定義后端插件21.08版教程
測(cè)量神經(jīng)網(wǎng)絡(luò)的抽象推理能力

人工神經(jīng)網(wǎng)絡(luò)和bp神經(jīng)網(wǎng)絡(luò)的區(qū)別
具有小浮點(diǎn)的高性能神經(jīng)網(wǎng)絡(luò)

評(píng)論