Arm NN
最近,Arm宣布推出神經(jīng)網(wǎng)絡(luò)機(jī)器學(xué)習(xí)(ML) 軟件 Arm NN。這項(xiàng)關(guān)鍵性技術(shù),可在基于 Arm 的高能效平臺(tái)上輕松構(gòu)建和運(yùn)行機(jī)器學(xué)習(xí)應(yīng)用程序。
實(shí)際上,該軟件橋接了現(xiàn)有神經(jīng)網(wǎng)絡(luò)框架(例如 TensorFlow 或 Caffe)與在嵌入式 Linux 平臺(tái)上運(yùn)行的底層處理硬件(例如 CPU、GPU 或新型 Arm 機(jī)器學(xué)習(xí)處理器)。這樣,開(kāi)發(fā)人員能夠繼續(xù)使用他們首選的框架和工具,經(jīng) Arm NN 無(wú)縫轉(zhuǎn)換結(jié)果后可在底層平臺(tái)上運(yùn)行。
機(jī)器學(xué)習(xí)需要一個(gè)訓(xùn)練階段,也就是學(xué)習(xí)階段(“這些是貓的圖片”),另外還需要一個(gè)推理階段,也就是應(yīng)用所學(xué)的內(nèi)容(“這是貓的圖片嗎?”)。訓(xùn)練目前通常在服務(wù)器或類(lèi)似設(shè)備上發(fā)生,而推理則更多地轉(zhuǎn)移到網(wǎng)絡(luò)邊緣,這正是新版本 Arm NN 的重點(diǎn)所在。
一切圍繞平臺(tái)
機(jī)器學(xué)習(xí)工作負(fù)載的特點(diǎn)是計(jì)算量大、需要大量存儲(chǔ)器帶寬,這正是移動(dòng)設(shè)備和嵌入式設(shè)備面臨的最大挑戰(zhàn)之一。隨著運(yùn)行機(jī)器學(xué)習(xí)的需求日益增長(zhǎng),對(duì)這些工作負(fù)載進(jìn)行分區(qū)變得越來(lái)越重要,以便充分利用可用計(jì)算資源。軟件開(kāi)發(fā)人員面臨的可能是很多不同的平臺(tái),這就帶來(lái)一個(gè)現(xiàn)實(shí)問(wèn)題:CPU 通常包含多個(gè)內(nèi)核(在 Arm DynamIQ big.LITTLE 中,甚至還有多種內(nèi)核類(lèi)型),還要考慮 GPU,以及許多其他類(lèi)型的專(zhuān)用處理器,包括 Arm 機(jī)器學(xué)習(xí)處理器,這些都是整體解決方案的一部分。Arm NN 這時(shí)就能派上用場(chǎng)。
下圖中可以看出,Arm NN 扮演了樞紐角色,既隱藏了底層硬件平臺(tái)的復(fù)雜性,同時(shí)讓開(kāi)發(fā)人員能夠繼續(xù)使用他們的首選神經(jīng)網(wǎng)絡(luò)框架。
![](http://file.elecfans.com/web1/M00/46/70/o4YBAFqd7mmAPxSkAACiC5d9mBs741.jpg)
Arm NN SDK 概覽(首次發(fā)布版本)
您可能已經(jīng)注意到,Arm NN 的一個(gè)關(guān)鍵要求是Compute Library,它包含一系列低級(jí)別機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺(jué)函數(shù),面向Arm Cortex-ACPU 和Arm Mali GPU。我們的目標(biāo)是讓這個(gè)庫(kù)匯集針對(duì)這些函數(shù)的一流優(yōu)化,近期的優(yōu)化已經(jīng)展示了顯著的性能提升 – 比同等 OpenCV 函數(shù)提高了 15 倍甚至更多。如果您是Cortex-MCPU 的用戶(hù),現(xiàn)在還有一個(gè)機(jī)器學(xué)習(xí)原語(yǔ)庫(kù) – 也就是近期發(fā)布的CMSIS-NN。
CMSIS-NN 是一系列高效神經(jīng)網(wǎng)絡(luò)內(nèi)核的集合,其開(kāi)發(fā)目的是最大程度地提升神經(jīng)網(wǎng)絡(luò)的性能,減少神經(jīng)網(wǎng)絡(luò)在面向智能物聯(lián)網(wǎng)邊緣設(shè)備的 Arm Cortex-M 處理器內(nèi)核上的內(nèi)存占用。Arm開(kāi)發(fā)這個(gè)庫(kù)的目的是全力提升這些資源受限的 Cortex CPU 上的神經(jīng)網(wǎng)絡(luò)推理性能。借助基于 CMSIS-NN 內(nèi)核的神經(jīng)網(wǎng)絡(luò)推理,運(yùn)行時(shí)/吞吐量和能效可提升大約 5 倍。
主要優(yōu)勢(shì)
有了 Arm NN,開(kāi)發(fā)人員可以即時(shí)獲得一些關(guān)鍵優(yōu)勢(shì):
更輕松地在嵌入式系統(tǒng)上運(yùn)行 TensorFlow 和 Caffe
Compute Library 內(nèi)部的一流優(yōu)化函數(shù),讓用戶(hù)輕松發(fā)揮底層平臺(tái)的強(qiáng)大性能
無(wú)論面向何種內(nèi)核類(lèi)型,編程模式都是相同的
現(xiàn)有軟件能夠自動(dòng)利用新硬件特性
與 Compute Library 相同,Arm NN 也是作為開(kāi)源軟件發(fā)布的,這意味著它能夠相對(duì)簡(jiǎn)單地進(jìn)行擴(kuò)展,從而適應(yīng) Arm 合作伙伴的其他內(nèi)核類(lèi)型。
適用于 Android 的 Arm NN
在五月舉行的 Google I/O 年會(huì)上,Google 發(fā)布了針對(duì) Android 的 TensorFlow Lite,預(yù)示著主要新型 API 開(kāi)始支持在基于 Arm 的 Android 平臺(tái)上部署神經(jīng)網(wǎng)絡(luò)。表面上,這與 Android 下的 Arm NN SDK 解決方案非常相似。使用 NNAPI 時(shí),機(jī)器學(xué)習(xí)工作負(fù)載默認(rèn)在 CPU 上運(yùn)行,但硬件抽象層 (HAL) 機(jī)制也支持在其他類(lèi)型的處理器或加速器上運(yùn)行這些工作負(fù)載。Google 發(fā)布以上消息的同時(shí),我們的 Arm NN 計(jì)劃也進(jìn)展順利,這是為使用 Arm NN 的 Mali GPU 提供 HAL。今年晚些時(shí)候,我們還將為 Arm 機(jī)器學(xué)習(xí)處理器提供硬件抽象層。
Arm 對(duì) Google NNAPI 的支持概覽
Arm NN 的未來(lái)發(fā)展
這只是 Arm NN 的第一步:我們還計(jì)劃添加其他高級(jí)神經(jīng)網(wǎng)絡(luò)作為輸入,對(duì) Arm NN 調(diào)試程序執(zhí)行進(jìn)一步的圖形級(jí)別優(yōu)化,覆蓋其他類(lèi)型的處理器或加速器……請(qǐng)密切關(guān)注今年的發(fā)展!
-
ML
+關(guān)注
關(guān)注
0文章
149瀏覽量
34731 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8445瀏覽量
133118
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
嵌入式機(jī)器學(xué)習(xí)的應(yīng)用特性與軟件開(kāi)發(fā)環(huán)境
![<b class='flag-5'>嵌入式</b><b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的應(yīng)用特性與軟件開(kāi)發(fā)環(huán)境](https://file1.elecfans.com/web3/M00/05/AF/wKgZO2eCM96AYfoXAAC2esU07bU956.png)
ARM嵌入式通信協(xié)議及應(yīng)用
新手怎么學(xué)嵌入式?
嵌入式學(xué)習(xí)建議
【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+全文學(xué)習(xí)心得
【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+第7-8章學(xué)習(xí)心得
嵌入式系統(tǒng)的未來(lái)趨勢(shì)有哪些?
嵌入式系統(tǒng)中的實(shí)時(shí)操作系統(tǒng)
嵌入式QT常見(jiàn)開(kāi)發(fā)方式有哪些?
深度學(xué)習(xí)算法在嵌入式平臺(tái)上的部署
嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-如何移植NCNN?
深度詳解嵌入式系統(tǒng)專(zhuān)用輕量級(jí)框架設(shè)計(jì)
![深度詳解<b class='flag-5'>嵌入式</b>系統(tǒng)專(zhuān)用輕量級(jí)框架設(shè)計(jì)](https://file1.elecfans.com/web2/M00/D2/87/wKgaomYjRd2APDxTAAAtWrrRF18443.png)
評(píng)論