你的位置:首頁(yè) > 互連技術(shù) > 正文

卷積神經(jīng)網(wǎng)絡(luò)的硬件轉(zhuǎn)換:什么是機(jī)器學(xué)習(xí)?——第三部分

發(fā)布時(shí)間:2023-06-14 來(lái)源:Ole Dreessen,現(xiàn)場(chǎng)應(yīng)用工程師 責(zé)任編輯:lina

【導(dǎo)讀】AI應(yīng)用通常需要消耗大量能源,并以服務(wù)器農(nóng)場(chǎng)或昂貴的現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)為載體。AI應(yīng)用的挑戰(zhàn)在于提高計(jì)算能力的同時(shí)保持較低的功耗和成本。當(dāng)前,強(qiáng)大的智能邊緣計(jì)算正在使AI應(yīng)用發(fā)生巨大轉(zhuǎn)變。與傳統(tǒng)的基于固件的AI計(jì)算相比,以基于硬件的卷積神經(jīng)網(wǎng)絡(luò)加速器為載體的智能邊緣AI計(jì)算具備驚人的速度和強(qiáng)大的算力,開(kāi)創(chuàng)了計(jì)算性能的新時(shí)代。


摘要

本系列文章由三部分組成,主要探討卷積神經(jīng)網(wǎng)絡(luò)(CNN)的特性和應(yīng)用。CNN主要用于模式識(shí)別和對(duì)象分類。作為系列文章的第三部分,本文重點(diǎn)解釋如何使用硬件轉(zhuǎn)換卷積神經(jīng)網(wǎng)絡(luò)(CNN),并特別介紹使用帶CNN硬件加速器的人工智能(AI)微控制器在物聯(lián)網(wǎng)(IoT)邊緣實(shí)現(xiàn)人工智能應(yīng)用所帶來(lái)的好處。系列文章的前兩篇文章為《卷積神經(jīng)網(wǎng)絡(luò)簡(jiǎn)介:什么是機(jī)器學(xué)習(xí)?——第一部分》和《訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò):什么是機(jī)器學(xué)習(xí)?——第二部分》。

簡(jiǎn)介

AI應(yīng)用通常需要消耗大量能源,并以服務(wù)器農(nóng)場(chǎng)或昂貴的現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)為載體。AI應(yīng)用的挑戰(zhàn)在于提高計(jì)算能力的同時(shí)保持較低的功耗和成本。當(dāng)前,強(qiáng)大的智能邊緣計(jì)算正在使AI應(yīng)用發(fā)生巨大轉(zhuǎn)變。與傳統(tǒng)的基于固件的AI計(jì)算相比,以基于硬件的卷積神經(jīng)網(wǎng)絡(luò)加速器為載體的智能邊緣AI計(jì)算具備驚人的速度和強(qiáng)大的算力,開(kāi)創(chuàng)了計(jì)算性能的新時(shí)代。這是因?yàn)橹悄苓吘売?jì)算能夠讓傳感器節(jié)點(diǎn)在本地自行決策而不受5G和Wi-Fi網(wǎng)絡(luò)數(shù)據(jù)傳輸速率的限制,為實(shí)現(xiàn)之前難以落地的新興技術(shù)和應(yīng)用場(chǎng)景提供了助力。例如,在偏遠(yuǎn)地區(qū),傳感器級(jí)別的煙霧/火災(zāi)探測(cè)或環(huán)境數(shù)據(jù)分析已成為現(xiàn)實(shí)。這些應(yīng)用支持電池供電,能夠工作很多年的時(shí)間。本文通過(guò)探討如何采用帶專用CNN加速器的AI微控制器實(shí)現(xiàn)CNN的硬件轉(zhuǎn)換來(lái)說(shuō)明如何實(shí)現(xiàn)這些功能。

采用超低功耗卷積神經(jīng)網(wǎng)絡(luò)加速器的人工智能微控制器

MAX78000是一款有超低功耗CNN加速器的AI微控制器片上系統(tǒng), 能在資源受限的邊緣設(shè)備或物聯(lián)網(wǎng)應(yīng)用中實(shí)現(xiàn)超低功耗的神經(jīng)網(wǎng)絡(luò)運(yùn)算。其應(yīng)用場(chǎng)景包括目標(biāo)檢測(cè)和分類、音頻處理、聲音分類、噪聲消除、面部識(shí)別、基于心率等健康體征分析的時(shí)間序列數(shù)據(jù)處理、多傳感器分析以及預(yù)測(cè)性維護(hù)。

圖1為MAX78000的框圖,其內(nèi)核為帶浮點(diǎn)運(yùn)算單元的Arm? Cortex?-M4F內(nèi)核,工作頻率高達(dá)100 MHz。為了給應(yīng)用提供足夠的存儲(chǔ)資源,MAX78000還配備了512 kB的閃存和128 kB的SRAM。該器件提供多個(gè)外部接口,例如I2C、SPI、UART,以及用于音頻的I2S。此外,器件還集成了60 MHz的RISC-V內(nèi)核,可以作為一個(gè)智能的直接存儲(chǔ)器訪問(wèn)(DMA)引擎從/向各個(gè)外圍模塊和存儲(chǔ)(包括閃存和SRAM)復(fù)制/粘貼數(shù)據(jù)。由于RISC-V內(nèi)核可以對(duì)AI加速器所需的


卷積神經(jīng)網(wǎng)絡(luò)的硬件轉(zhuǎn)換:什么是機(jī)器學(xué)習(xí)?——第三部分
圖1.MAX78000的結(jié)構(gòu)框圖


傳感器數(shù)據(jù)進(jìn)行預(yù)處理,因而Arm內(nèi)核在此期間可以處于深度睡眠模式。推理結(jié)果也可以通過(guò)中斷觸發(fā)Arm內(nèi)核在主應(yīng)用程序中執(zhí)行操作,通過(guò)無(wú)線傳輸傳感器數(shù)據(jù)或向用戶發(fā)送通知。

具備用于執(zhí)行卷積神經(jīng)網(wǎng)絡(luò)推理的專用硬件加速器單元是MAX7800x系列微控制器的一個(gè)顯著特征,這使其有別于標(biāo)準(zhǔn)的微控制器架構(gòu)。該CNN硬件加速器可以支持完整的CNN模型架構(gòu)以及所有必需的參數(shù)(權(quán)重和偏置),配備了64個(gè)并行處理器和一個(gè)集成存儲(chǔ)器。集成存儲(chǔ)器中的442 kB用于存儲(chǔ)參數(shù),896 kB用于存儲(chǔ)輸入數(shù)據(jù)。不僅存儲(chǔ)在SRAM中的模型和參數(shù)可以通過(guò)固件進(jìn)行調(diào)整,網(wǎng)絡(luò)也可以實(shí)時(shí)地通過(guò)固件進(jìn)行調(diào)整。器件支持的模型權(quán)重為1位、2位、4位或8位,存儲(chǔ)器支持容納多達(dá)350萬(wàn)個(gè)參數(shù)。加速器的存儲(chǔ)功能使得微控制器無(wú)需在連續(xù)的數(shù)學(xué)運(yùn)算中每次都要通過(guò)總線獲取相關(guān)參數(shù)——這樣的方式通常伴有高延遲和高功耗,代價(jià)高昂。CNN加速器可以支持32層或64層的網(wǎng)絡(luò),具體層數(shù)取決于池化函數(shù)。每層的可編程圖像輸入/輸出大小最多為1024 × 1024像素。

CNN硬件轉(zhuǎn)換:功耗和推理速度比較

CNN推理是一項(xiàng)包含大型矩陣線性方程運(yùn)算的復(fù)雜計(jì)算任務(wù)。Arm Cortex-M4F微控制器的強(qiáng)大能力可以使得CNN推理在嵌入式系統(tǒng)的固件上運(yùn)行。但這種方式也有一些缺點(diǎn):在微控制器上運(yùn)行基于固件的CNN推理時(shí),計(jì)算命令和相關(guān)參數(shù)都需要先從存儲(chǔ)器中檢索再被寫(xiě)回中間結(jié)果,這會(huì)造成大量功耗和時(shí)延。

表1對(duì)三種不同解決方案的CNN推理速度和功耗進(jìn)行了比較。所用的模型基于手寫(xiě)數(shù)字識(shí)別訓(xùn)練集MNIST開(kāi)發(fā),可對(duì)視覺(jué)輸入數(shù)據(jù)中的數(shù)字和字母進(jìn)行分類以獲得準(zhǔn)確的輸出結(jié)果。為確定功耗和速度的差異,本文對(duì)三種解決方案所需的推理時(shí)間進(jìn)行了測(cè)量。


表1.手寫(xiě)數(shù)字識(shí)別的CNN推理時(shí)間和推理功耗,基于MNIST數(shù)據(jù)集



方案

推理速度(ms)

每次推理功耗(μWs)

 (1) MAX32630,MNIST網(wǎng)絡(luò)部署在固件中

574

22887

 (2) MAX78000,MNIST網(wǎng)絡(luò)部署在硬件中

1.42

20.7

 (3) MAX78000,MNIST網(wǎng)絡(luò)部署在硬件中且優(yōu)化了低功耗性能

0.36

1.1


方案一使用集成Arm Cortex-M4F處理器的MAX32630進(jìn)行推理,其工作頻率為96 MHz。方案二使用MAX78000的CNN硬件加速器進(jìn)行推理,其推理速度(即數(shù)據(jù)輸入與結(jié)果輸出之間的時(shí)間)比方案一加快了400倍,每次推理所需的能量也僅為方案一的1/1100。方案三對(duì)MNIST網(wǎng)絡(luò)進(jìn)行了低功耗優(yōu)化,從而最大限度地降低了每次推理的功耗。雖然方案三推理結(jié)果的準(zhǔn)確性從99.6%下降到了95.6%,但其速度快了很多,每次推理只需0.36 ms,推理功耗降也低至僅1.1 μW。兩節(jié)AA堿性電池(總共6 Wh能量)可以支持應(yīng)用進(jìn)行500萬(wàn)次的推理(忽略系統(tǒng)其它部分的功耗)。

這些數(shù)據(jù)說(shuō)明了硬件加速器的強(qiáng)大計(jì)算能力可以大大助益無(wú)法利用或連接到連續(xù)電源的應(yīng)用場(chǎng)景。MAX78000就是這樣一款產(chǎn)品,它支持邊緣AI處理,無(wú)需大量功耗和網(wǎng)絡(luò)連接,也無(wú)需冗長(zhǎng)的推理時(shí)間。

MAX78000 AI微控制器的使用示例

MAX78000支持多種應(yīng)用,下面本文圍繞部分用例展開(kāi)討論。其中一個(gè)用例是設(shè)計(jì)一個(gè)電池供電的攝像頭,需要能檢測(cè)到視野中是否有貓出現(xiàn),并能夠通過(guò)數(shù)字輸出打開(kāi)貓門(mén)允許貓進(jìn)入房屋。

圖2為該設(shè)計(jì)的示例框圖。在本設(shè)計(jì)中,RISC-V內(nèi)核會(huì)定期開(kāi)啟圖像傳感器并將圖像數(shù)據(jù)加載到MAX78000的CNN加速器中。如果系統(tǒng)判斷貓出現(xiàn)的概率高于預(yù)設(shè)的閾值,則打開(kāi)貓門(mén)然后回到待機(jī)模式。


卷積神經(jīng)網(wǎng)絡(luò)的硬件轉(zhuǎn)換:什么是機(jī)器學(xué)習(xí)?——第三部分
圖2.智能寵物門(mén)框圖


開(kāi)發(fā)環(huán)境和評(píng)估套件

邊緣人工智能應(yīng)用的開(kāi)發(fā)過(guò)程可分為以下幾個(gè)階段:

第一階段:AI——網(wǎng)絡(luò)的定義、訓(xùn)練和量化

第二階段:Arm固件——將第一階段生成的網(wǎng)絡(luò)和參數(shù)導(dǎo)入C/C++應(yīng)用程序,創(chuàng)建并測(cè)試固件

開(kāi)發(fā)過(guò)程的第一階段涉及建模、訓(xùn)練和評(píng)估AI模型等環(huán)節(jié)。此階段開(kāi)發(fā)人員可以利用開(kāi)源工具,例如PyTorch 和TensorFlow。MAX78000的GitHub網(wǎng)頁(yè)也提供全面的資源幫助用戶在考慮其硬件規(guī)格的同時(shí)使用PyTorch構(gòu)建和訓(xùn)練AI網(wǎng)絡(luò)。網(wǎng)頁(yè)也提供一些簡(jiǎn)單的AI網(wǎng)絡(luò)和應(yīng)用,例如面部識(shí)別(Face ID),供用戶參考。

圖3顯示了采用PyTorch進(jìn)行AI開(kāi)發(fā)的典型過(guò)程。首先是對(duì)網(wǎng)絡(luò)進(jìn)行建模。必須注意的是,MAX7800x微控制器并非都配置了支持所有PyTorch數(shù)據(jù)操作的相關(guān)硬件。因此,必須首先將ADI公司提供的ai8x.py文件包含在項(xiàng)目中,該文件包含MAX78000所需的PyTorch模塊和運(yùn)算符?;诖丝梢赃M(jìn)入下一步驟構(gòu)建網(wǎng)絡(luò),使用訓(xùn)練數(shù)據(jù)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練、評(píng)估和量化。這一步驟會(huì)生成一個(gè)檢查點(diǎn)文件,其中包含用于最終綜合過(guò)程的輸入數(shù)據(jù)。最后一步是將網(wǎng)絡(luò)及其參數(shù)轉(zhuǎn)換為適合CNN硬件加速器的形式。值得注意的是,雖然任何PC(筆記本、服務(wù)器等)都可用于訓(xùn)練網(wǎng)絡(luò),但如果沒(méi)有CUDA顯卡,訓(xùn)練網(wǎng)絡(luò)可能會(huì)花費(fèi)很長(zhǎng)的時(shí)間——即使對(duì)于小型網(wǎng)絡(luò)來(lái)說(shuō)也有可能需要幾天甚至幾周的時(shí)間。

開(kāi)發(fā)過(guò)程的第二階段是通過(guò)將數(shù)據(jù)寫(xiě)入CNN加速器并讀取結(jié)果的機(jī)制來(lái)創(chuàng)建應(yīng)用固件。


卷積神經(jīng)網(wǎng)絡(luò)的硬件轉(zhuǎn)換:什么是機(jī)器學(xué)習(xí)?——第三部分
圖3.AI開(kāi)發(fā)過(guò)程


第一階段創(chuàng)建的文件通過(guò)#include指令集成到C/C++項(xiàng)目中。微控制器的開(kāi)發(fā)環(huán)境可使用Eclipse IDE和GNU工具鏈等開(kāi)源工具。ADI公司提供的軟件開(kāi)發(fā)套件(Maxim Micros SDK (Windows))也已經(jīng)包含了所有開(kāi)發(fā)必需的組件和配置,包括外設(shè)驅(qū)動(dòng)以及示例說(shuō)明,幫助用戶簡(jiǎn)化應(yīng)用開(kāi)發(fā)過(guò)程。

成功通過(guò)編譯和鏈接的項(xiàng)目可以在目標(biāo)硬件上進(jìn)行評(píng)估。ADI開(kāi)發(fā)了兩種不同的硬件平臺(tái)可供選用:圖4為MAX78000EVKIT,圖5為MAX78000FTHR,一個(gè)稍小的評(píng)估板。每個(gè)評(píng)估板都配有一個(gè)VGA攝像頭和一個(gè)麥克風(fēng)。


卷積神經(jīng)網(wǎng)絡(luò)的硬件轉(zhuǎn)換:什么是機(jī)器學(xué)習(xí)?——第三部分
圖4.MAX78000評(píng)估套件

卷積神經(jīng)網(wǎng)絡(luò)的硬件轉(zhuǎn)換:什么是機(jī)器學(xué)習(xí)?——第三部分
圖5.MAX78000FTHR評(píng)估套件


結(jié)論

以前,AI應(yīng)用必須以昂貴的服務(wù)器農(nóng)場(chǎng)或FPGA為載體,并消耗大量能源?,F(xiàn)在,借助帶專用CNN加速器的MAX78000系列微控制器,AI應(yīng)用依靠單組電池供電就可以長(zhǎng)時(shí)間運(yùn)行。MAX78000系列微控制器在能效和功耗方面的性能突破大大降低了邊緣AI的實(shí)現(xiàn)難度,使得新型邊緣AI應(yīng)用的驚人潛力得以釋放。欲了解更多信息,請(qǐng)?jiān)L問(wèn)超低功耗人工智能(AI) MCU。

參考資料

“研討會(huì)2 - 邊緣人工智能:Maxim Integrated MAX78000 AI加速器的實(shí)踐介紹”。ADI公司。
視頻系列:了解人工智能。ADI公司。
PyTorch徽標(biāo)經(jīng)知識(shí)共享 版權(quán)歸屬-相同方式共享 4.0 國(guó)際 公共許可證許可使用。

關(guān)于ADI公司

Analog Devices, Inc. (NASDAQ: ADI)是全球領(lǐng)先的半導(dǎo)體公司,致力于在現(xiàn)實(shí)世界與數(shù)字世界之間架起橋梁,以實(shí)現(xiàn)智能邊緣領(lǐng)域的突破性創(chuàng)新。ADI提供結(jié)合模擬、數(shù)字和軟件技術(shù)的解決方案,推動(dòng)數(shù)字化工廠、汽車(chē)和數(shù)字醫(yī)療等領(lǐng)域的持續(xù)發(fā)展,應(yīng)對(duì)氣候變化挑戰(zhàn),并建立人與世界萬(wàn)物的可靠互聯(lián)。ADI公司2022財(cái)年收入超過(guò)120億美元,全球員工2.4萬(wàn)余人。攜手全球12.5萬(wàn)家客戶,ADI助力創(chuàng)新者不斷超越一切可能。更多信息,請(qǐng)?jiān)L問(wèn)www.analog.com/cn。

關(guān)于作者

Ole Dreessen是ADI公司的現(xiàn)場(chǎng)應(yīng)用工程師,于2014年加入ADI公司,此前曾在Avnet Memec和Macnica任職,負(fù)責(zé)支持通信產(chǎn)品和高性能微處理器。Ole在微控制器和安全方面擁有廣泛的專業(yè)知識(shí),擁有豐富的會(huì)議主講經(jīng)驗(yàn)。在業(yè)余時(shí)間,他是混沌計(jì)算機(jī)俱樂(lè)部的活躍成員,主要研究逆向工程和嵌入式安全等概念。

(作者:Ole Dreessen,現(xiàn)場(chǎng)應(yīng)用工程師)


免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問(wèn)題,請(qǐng)聯(lián)系小編進(jìn)行處理。


推薦閱讀:

“1加1大于4”的電路保護(hù)設(shè)計(jì)

不同的雙電源配置方案

分壓器和分流器:它們是什么以及它們的作用

線邊緣粗糙度(LER)如何影響先進(jìn)LER的性能?

提高汽車(chē)的功能安全性 掌握ESD實(shí)現(xiàn)無(wú)干擾的數(shù)據(jù)傳輸



特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉