0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Arm NN:在移動和嵌入式設(shè)備上無縫構(gòu)建和運行機器學習應用程序

電子工程師 ? 來源:未知 ? 作者:鄧佳佳 ? 2018-03-06 09:25 ? 次閱讀

Arm NN

最近,Arm宣布推出神經(jīng)網(wǎng)絡(luò)機器學習(ML) 軟件 Arm NN。這項關(guān)鍵性技術(shù),可在基于 Arm 的高能效平臺上輕松構(gòu)建和運行機器學習應用程序。

實際上,該軟件橋接了現(xiàn)有神經(jīng)網(wǎng)絡(luò)框架(例如 TensorFlow 或 Caffe)與在嵌入式 Linux 平臺上運行的底層處理硬件(例如 CPUGPU 或新型 Arm 機器學習處理器)。這樣,開發(fā)人員能夠繼續(xù)使用他們首選的框架和工具,經(jīng) Arm NN 無縫轉(zhuǎn)換結(jié)果后可在底層平臺上運行。

機器學習需要一個訓練階段,也就是學習階段(“這些是貓的圖片”),另外還需要一個推理階段,也就是應用所學的內(nèi)容(“這是貓的圖片嗎?”)。訓練目前通常在服務(wù)器或類似設(shè)備上發(fā)生,而推理則更多地轉(zhuǎn)移到網(wǎng)絡(luò)邊緣,這正是新版本 Arm NN 的重點所在。

一切圍繞平臺

機器學習工作負載的特點是計算量大、需要大量存儲器帶寬,這正是移動設(shè)備和嵌入式設(shè)備面臨的最大挑戰(zhàn)之一。隨著運行機器學習的需求日益增長,對這些工作負載進行分區(qū)變得越來越重要,以便充分利用可用計算資源。軟件開發(fā)人員面臨的可能是很多不同的平臺,這就帶來一個現(xiàn)實問題:CPU 通常包含多個內(nèi)核(在 Arm DynamIQ big.LITTLE 中,甚至還有多種內(nèi)核類型),還要考慮 GPU,以及許多其他類型的專用處理器,包括 Arm 機器學習處理器,這些都是整體解決方案的一部分。Arm NN 這時就能派上用場。

下圖中可以看出,Arm NN 扮演了樞紐角色,既隱藏了底層硬件平臺的復雜性,同時讓開發(fā)人員能夠繼續(xù)使用他們的首選神經(jīng)網(wǎng)絡(luò)框架。

Arm NN SDK 概覽(首次發(fā)布版本)

您可能已經(jīng)注意到,Arm NN 的一個關(guān)鍵要求是Compute Library,它包含一系列低級別機器學習和計算機視覺函數(shù),面向Arm Cortex-ACPU 和Arm Mali GPU。我們的目標是讓這個庫匯集針對這些函數(shù)的一流優(yōu)化,近期的優(yōu)化已經(jīng)展示了顯著的性能提升 – 比同等 OpenCV 函數(shù)提高了 15 倍甚至更多。如果您是Cortex-MCPU 的用戶,現(xiàn)在還有一個機器學習原語庫 – 也就是近期發(fā)布的CMSIS-NN。

CMSIS-NN 是一系列高效神經(jīng)網(wǎng)絡(luò)內(nè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開發(fā)這個庫的目的是全力提升這些資源受限的 Cortex CPU 上的神經(jīng)網(wǎng)絡(luò)推理性能。借助基于 CMSIS-NN 內(nèi)核的神經(jīng)網(wǎng)絡(luò)推理,運行時/吞吐量和能效可提升大約 5 倍。

主要優(yōu)勢

有了 Arm NN,開發(fā)人員可以即時獲得一些關(guān)鍵優(yōu)勢:

更輕松地在嵌入式系統(tǒng)上運行 TensorFlow 和 Caffe

Compute Library 內(nèi)部的一流優(yōu)化函數(shù),讓用戶輕松發(fā)揮底層平臺的強大性能

無論面向何種內(nèi)核類型,編程模式都是相同的

現(xiàn)有軟件能夠自動利用新硬件特性

與 Compute Library 相同,Arm NN 也是作為開源軟件發(fā)布的,這意味著它能夠相對簡單地進行擴展,從而適應 Arm 合作伙伴的其他內(nèi)核類型。

適用于 Android 的 Arm NN

在五月舉行的 Google I/O 年會上,Google 發(fā)布了針對 Android 的 TensorFlow Lite,預示著主要新型 API 開始支持在基于 Arm 的 Android 平臺上部署神經(jīng)網(wǎng)絡(luò)。表面上,這與 Android 下的 Arm NN SDK 解決方案非常相似。使用 NNAPI 時,機器學習工作負載默認在 CPU 上運行,但硬件抽象層 (HAL) 機制也支持在其他類型的處理器或加速器上運行這些工作負載。Google 發(fā)布以上消息的同時,我們的 Arm NN 計劃也進展順利,這是為使用 Arm NN 的 Mali GPU 提供 HAL。今年晚些時候,我們還將為 Arm 機器學習處理器提供硬件抽象層。

Arm 對 Google NNAPI 的支持概覽

Arm NN 的未來發(fā)展

這只是 Arm NN 的第一步:我們還計劃添加其他高級神經(jīng)網(wǎng)絡(luò)作為輸入,對 Arm NN 調(diào)試程序執(zhí)行進一步的圖形級別優(yōu)化,覆蓋其他類型的處理器或加速器……請密切關(guān)注今年的發(fā)展!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ML
    ML
    +關(guān)注

    關(guān)注

    0

    文章

    143

    瀏覽量

    34447
  • 機器學習
    +關(guān)注

    關(guān)注

    66

    文章

    8306

    瀏覽量

    131867
收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式系統(tǒng)的未來趨勢有哪些?

    (ML)技術(shù)的快速發(fā)展,嵌入式系統(tǒng)將更多地整合這些先進技術(shù),以支持智能決策和自動化。設(shè)備直接運行AI和ML模型,進行圖像識別、自然語言處
    發(fā)表于 09-12 15:42

    嵌入式系統(tǒng)中的實時操作系統(tǒng)

    嵌入式RTOS是嵌入式應用程序運行、相互交互和與外界通信的底層軟件機制。本節(jié)中,您將了解嵌入式
    的頭像 發(fā)表于 08-20 11:28 ?280次閱讀

    嵌入式QT常見開發(fā)方式有哪些?

    嵌入式QT常見開發(fā)方式有哪些? 嵌入式工程師在學習和使用Qt進行開發(fā)時,常見的幾種開發(fā)方式包括: 1.Qt Widgets編程: 通過C++代碼直接編寫GUI應用程序,利用QtWi
    發(fā)表于 08-12 10:05

    深度學習算法嵌入式平臺上的部署

    隨著人工智能技術(shù)的飛速發(fā)展,深度學習算法各個領(lǐng)域的應用日益廣泛。然而,將深度學習算法部署到資源受限的嵌入式平臺上,仍然是一個具有挑戰(zhàn)性的任務(wù)。本文將從
    的頭像 發(fā)表于 07-15 10:03 ?759次閱讀

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-如何移植NCNN?

    計算機視覺和深度學習領(lǐng)域,NCNN(Netural Network Computer Vision)是一個輕量級的神經(jīng)網(wǎng)絡(luò)計算框架,被廣泛應用于各類嵌入式設(shè)備
    發(fā)表于 05-29 17:24

    深度詳解嵌入式系統(tǒng)專用輕量級框架設(shè)計

    MR 框架是專為嵌入式系統(tǒng)設(shè)計的輕量級框架。充分考慮了嵌入式系統(tǒng)資源和性能方面的需求。通過提供標準化的設(shè)備管理接口,極大簡化了嵌入式應用開
    發(fā)表于 04-27 02:32 ?721次閱讀
    深度詳解<b class='flag-5'>嵌入式</b>系統(tǒng)專用輕量級框架設(shè)計

    嵌入式系統(tǒng)和ARM哪個更好

    嵌入式系統(tǒng)和ARM各有其優(yōu)勢,難以直接比較哪個更好,因為它們不同的應用場景和需求下都有各自的價值。
    的頭像 發(fā)表于 03-28 15:14 ?399次閱讀

    嵌入式軟件開發(fā)應該掌握哪些知識?

    兩個部分組成,其中嵌入式軟件是指在嵌入式系統(tǒng)中運行程序,用于控制硬件并提供特定的功能和服務(wù)。嵌入式軟件應用廣泛,包括汽車、醫(yī)療
    發(fā)表于 02-19 11:23

    嵌入式學習步驟

    開發(fā)板測試固件以及實際設(shè)備上進行測試。 嵌入式系統(tǒng)的多樣化發(fā)展,它將更為廣泛地應用于各個領(lǐng)域,實現(xiàn)智能化、網(wǎng)絡(luò)化、自動化的目標。同時,隨著人工智能和
    發(fā)表于 02-02 15:24

    用C語言構(gòu)建高效的嵌入式程序

    嵌入式工程師在編寫C語言程序時,需要注重效率和清晰的思路。本文將通過解析經(jīng)典問題“猴子選大王”來展示如何用C語言思維方式構(gòu)建高效、清晰的程序
    的頭像 發(fā)表于 12-21 09:27 ?519次閱讀

    【從0開始創(chuàng)建AWTK應用程序】編譯應用到嵌入式Linux平臺運行

    。搭建Linux平臺交叉編譯環(huán)境在上一篇文章我們介紹了使用AWTK開發(fā)簡單的應用并在PC模擬運行,本篇文章就來介紹一下怎么讓應用程序運行嵌入式
    的頭像 發(fā)表于 12-07 12:08 ?536次閱讀
    【從0開始創(chuàng)建AWTK<b class='flag-5'>應用程序</b>】編譯應用到<b class='flag-5'>嵌入式</b>Linux平臺<b class='flag-5'>運行</b>

    基于ARM嵌入式電機控制處理器構(gòu)建的模型設(shè)計平臺

    電子發(fā)燒友網(wǎng)站提供《基于ARM嵌入式電機控制處理器構(gòu)建的模型設(shè)計平臺.pdf》資料免費下載
    發(fā)表于 11-24 14:39 ?0次下載
    基于<b class='flag-5'>ARM</b>的<b class='flag-5'>嵌入式</b>電機控制處理器<b class='flag-5'>構(gòu)建</b>的模型設(shè)計平臺

    基于ARM嵌入式系統(tǒng)溫控儀表中的應用

    電子發(fā)燒友網(wǎng)站提供《基于ARM嵌入式系統(tǒng)溫控儀表中的應用.pdf》資料免費下載
    發(fā)表于 10-27 09:01 ?0次下載
    基于<b class='flag-5'>ARM</b>的<b class='flag-5'>嵌入式</b>系統(tǒng)<b class='flag-5'>在</b>溫控儀表中的應用

    Linux系統(tǒng)的嵌入式開發(fā)是什么

    嵌入式開發(fā)聽起來很高大,但其實它就在我們身邊。   嵌入式開發(fā)是指將操作系統(tǒng)、應用程序或數(shù)據(jù)存儲
    的頭像 發(fā)表于 10-12 15:40 ?1545次閱讀

    什么是嵌入式Linux?

    Linux到底是什么呢? 嵌入式linux 是將日益流行的Linux操作系統(tǒng)進行裁剪修改,使之能在嵌入式計算機系統(tǒng)運行的一種操作系統(tǒng)。簡單來說,是除了電腦之外可以
    發(fā)表于 10-11 13:47