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

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

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

基于AI微控制器的CNN的硬件轉(zhuǎn)換

要長高 ? 來源:embedded ? 作者:Ole Dreessen ? 2023-09-29 15:11 ? 次閱讀

作者:Ole Dreessen

人工智能應(yīng)用需要大量的能源消耗,通常以服務(wù)器群或昂貴的現(xiàn)場可編程門陣列(FPGA)的形式出現(xiàn)。挑戰(zhàn)在于提高計(jì)算能力,同時(shí)保持較低的能耗和成本?,F(xiàn)在,人工智能應(yīng)用正在看到強(qiáng)大的智能邊緣計(jì)算所帶來的巨大轉(zhuǎn)變。與傳統(tǒng)的基于固件的計(jì)算相比,基于硬件的卷積神經(jīng)網(wǎng)絡(luò)加速以其驚人的速度和功能開創(chuàng)了計(jì)算性能的新時(shí)代。通過使傳感器節(jié)點(diǎn)能夠做出自己的決策,智能邊緣技術(shù)大大降低了 5GWi-Fi 網(wǎng)絡(luò)的數(shù)據(jù)傳輸速率。這為新興技術(shù)和獨(dú)特的應(yīng)用提供了動力,這在以前是不可能的。例如,遠(yuǎn)程位置的煙霧/火災(zāi)探測器或傳感器級別的環(huán)境數(shù)據(jù)分析成為現(xiàn)實(shí) - 所有這些都在電池電源上使用多年。為了研究這些功能是如何實(shí)現(xiàn)的,本文探討了帶有專用AI微控制器的CNN的硬件轉(zhuǎn)換。

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

MAX78000是一款具有超低功耗CNN加速器的AI微控制器,這是一種先進(jìn)的片上系統(tǒng)。它支持超低功耗的神經(jīng)網(wǎng)絡(luò),適用于資源受限的邊緣設(shè)備或物聯(lián)網(wǎng)應(yīng)用。此類應(yīng)用包括對象檢測和分類、音頻處理、聲音分類、噪聲消除、面部識別、心率/健康信號分析的時(shí)間序列數(shù)據(jù)處理、多傳感器分析和預(yù)測性維護(hù)。

圖1顯示了MAX78000的框圖,該由帶有浮點(diǎn)單元的Arm Cortex-M100F內(nèi)核供電至4 MHz。為了給應(yīng)用提供足夠的存儲器資源,此版本的微控制器配備了512 kB閃存和128 kBSRAM。包括多個外部接口,如I2C、SPI和UART,以及I2S,這對于音頻應(yīng)用非常重要。此外,還有一個集成的60 MHz RISC-V內(nèi)核。RISC-V將數(shù)據(jù)從/復(fù)制到各個外設(shè)模塊和存儲器(閃存和SRAM),使其成為智能直接存儲器訪問(DMA)引擎。RISC-V內(nèi)核預(yù)處理AI加速器的傳感器數(shù)據(jù),因此Arm內(nèi)核在此期間可以處于深度睡眠模式。如有必要,推理結(jié)果可以通過中斷觸發(fā) Arm 內(nèi)核,然后 Arm CPU 在主應(yīng)用程序中執(zhí)行操作,無線傳遞傳感器數(shù)據(jù)或通知用戶。??

wKgZomUFVJ6ADQnaAAFNgEb3YQY727.png

圖 1。MAX78000模塊原理圖。

用于卷積神經(jīng)網(wǎng)絡(luò)推理的硬件加速器單元是MAX7800x系列微控制器的一個顯著特點(diǎn),使其有別于標(biāo)準(zhǔn)微控制器架構(gòu)和外設(shè)。該硬件加速器可以支持完整的CNN模型架構(gòu)以及所有必需的參數(shù)(權(quán)重和偏差)。CNN 加速器配備 64 個并行處理器和一個集成存儲器,其中 442 kB 用于存儲參數(shù),896 kB 用于輸入數(shù)據(jù)。由于模型和參數(shù)存儲在SRAM存儲器中,因此可以通過固件進(jìn)行調(diào)整,并且可以實(shí)時(shí)調(diào)整網(wǎng)絡(luò)。根據(jù)模型中使用的是 1 位、2 位、4 位還是 8 位權(quán)重,此內(nèi)存足以容納多達(dá) 3 萬個參數(shù)。由于存儲器功能是加速器的一個組成部分,因此不必在每次連續(xù)的數(shù)學(xué)運(yùn)算中通過微控制器總線結(jié)構(gòu)獲取參數(shù)。由于高延遲和高功耗,此活動的成本很高。神經(jīng)網(wǎng)絡(luò)加速器可以支持 5 或 32 層,具體取決于池化函數(shù)。每層可編程圖像輸入/輸出大小高達(dá) 64 × 1024 像素。

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

CNN推理是一項(xiàng)復(fù)雜的計(jì)算任務(wù),由矩陣形式的大型線性方程組成。利用 Arm Cortex-M4F 微控制器的強(qiáng)大功能,可以在嵌入式系統(tǒng)的固件上進(jìn)行 CNN 推理;但是,有一些缺點(diǎn)需要考慮。在微控制器上運(yùn)行基于固件的推理時(shí),需要從內(nèi)存中檢索計(jì)算所需的命令以及相關(guān)的參數(shù)數(shù)據(jù),然后才能寫回中間結(jié)果,因此會消耗大量精力和時(shí)間。

表 1 比較了使用三種不同解決方案的 CNN 推理速度和能耗。該示例模型是使用手寫數(shù)字識別訓(xùn)練集MNIST開發(fā)的,該訓(xùn)練集對視覺輸入數(shù)據(jù)中的數(shù)字和字母進(jìn)行分類,以得出準(zhǔn)確的輸出結(jié)果。測量每種處理器類型所需的推理時(shí)間,以確定能耗和速度之間的差異。

表 1.利用MNIST數(shù)據(jù)集進(jìn)行手寫數(shù)字識別的三種不同場景

wKgZomUFVKqAZi7aAABzd91nJ9U074.png

在第一個場景中,集成到MAX4中的Arm Cortex-M32630F處理器(運(yùn)行頻率為96 MHz)用于計(jì)算推理。在第二種情況下,為了處理計(jì)算,使用了MAX78000基于硬件的CNN加速器。當(dāng)使用帶有基于硬件的加速器 (MAX400) 的微控制器時(shí),推理速度(即在網(wǎng)絡(luò)輸入處呈現(xiàn)視覺數(shù)據(jù)與結(jié)果輸出之間的時(shí)間)會降低 78000 倍。此外,每次推理所需的能量要低 1100 倍。在第三個比較中,MNIST網(wǎng)絡(luò)針對每次推理的最小能耗進(jìn)行了優(yōu)化。在這種情況下,結(jié)果的準(zhǔn)確性從 99.6% 下降到 95.6%。但是,網(wǎng)絡(luò)速度要快得多,每次推理只需要 0.36 毫秒。每次推理的能耗降至僅 1.1 μW。在使用兩節(jié)AA堿性電池(總能量為6 Wh)的應(yīng)用中,可以進(jìn)行《》萬次推理(省略電路其余部分消耗的功率)。

這些數(shù)據(jù)說明了硬件加速計(jì)算的強(qiáng)大功能。硬件加速計(jì)算對于無法利用連接或連續(xù)電源的應(yīng)用程序來說是一種寶貴的工具。該MAX78000支持邊緣處理,而無需大量能源、寬帶互聯(lián)網(wǎng)接入或延長推理時(shí)間。

MAX78000 AI 微控制器的示例用例

該MAX78000支持多種潛在應(yīng)用程序,但讓我們以以下用例為例。要求是設(shè)計(jì)一個電池供電的攝像頭,檢測貓何時(shí)在其圖像傳感器的視野中,從而能夠通過貓門的數(shù)字輸出進(jìn)入房屋。

圖2描述了這種設(shè)計(jì)的示例框圖。在這種情況下,RISC-V內(nèi)核定期打開圖像傳感器,并將圖像數(shù)據(jù)加載到由MAX78000供電的CNN中。如果貓識別的概率高于先前定義的閾值,則啟用貓門。然后,系統(tǒng)將返回到待機(jī)模式。

wKgZomUFVLuAYlzNAAC2xU1B-gw768.png

圖2.智能寵物門的框圖。

開發(fā)環(huán)境和評估套件

開發(fā)邊緣 AI 應(yīng)用程序的過程可以分為以下幾個階段:

第 1 階段:人工智能——網(wǎng)絡(luò)的定義、訓(xùn)練和量化

第 2 階段:Arm 固件 – 將第 1 階段生成的網(wǎng)絡(luò)和參數(shù)包含在 C/C++ 應(yīng)用程序中,并創(chuàng)建和測試應(yīng)用程序固件

開發(fā)過程的第一部分涉及 AI 模型的建模、訓(xùn)練和評估。在這個階段,開發(fā)人員可以利用開源工具,如PyTorch和TensorFlow。GitHub 存儲庫提供了全面的資源,幫助用戶規(guī)劃他們使用 PyTorch 開發(fā)環(huán)境構(gòu)建和訓(xùn)練 AI 網(wǎng)絡(luò)的旅程,同時(shí)考慮MAX78000的硬件規(guī)格。存儲庫中包含一些簡單的AI網(wǎng)絡(luò)和應(yīng)用程序,例如面部識別(Face ID)。

圖 3 顯示了 PyTorch 中典型的 AI 開發(fā)過程。首先,對網(wǎng)絡(luò)進(jìn)行建模。需要注意的是,并非所有MAX7800x微控制器的硬件都支持PyTorch環(huán)境中的所有數(shù)據(jù)操作。因此,ADI公司提供的文件 ai8x.py 必須首先包含在項(xiàng)目中。此文件包含使用該MAX78000所需的 PyTorch 模塊和運(yùn)算符。基于此設(shè)置,可以構(gòu)建網(wǎng)絡(luò),然后使用訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練、評估和量化。此步驟的結(jié)果是一個檢查點(diǎn)文件,其中包含最終合成過程的輸入數(shù)據(jù)。在最后一個流程步驟中,網(wǎng)絡(luò)及其參數(shù)被轉(zhuǎn)換為適合硬件CNN加速器的形式。這里應(yīng)該提到的是,網(wǎng)絡(luò)培訓(xùn)可以在任何PC(筆記本電腦,服務(wù)器等)上完成。但是,如果沒有 CUDA 顯卡支持,這可能需要大量時(shí)間——即使對于小型網(wǎng)絡(luò),幾天甚至幾周也是完全現(xiàn)實(shí)的。

wKgZomUFVMeAfRfrAAEschWs7w0757.png

圖 3。人工智能開發(fā)過程。

在開發(fā)過程的第 2 階段,使用將數(shù)據(jù)寫入 CNN 加速器并讀取結(jié)果的機(jī)制創(chuàng)建應(yīng)用程序固件。在第一階段創(chuàng)建的文件通過 #include 指令集成到 C/C++ 項(xiàng)目中。Eclipse IDE和GNU工具鏈等開源工具也用于微控制器的開發(fā)環(huán)境。ADI提供軟件開發(fā)套件(Maxim Micros SDK (Windows))作為安裝程序,其中包含所有必要的組件和配置。軟件開發(fā)套件還包含外設(shè)驅(qū)動程序以及示例和說明,以簡化開發(fā)應(yīng)用程序的過程。

一旦項(xiàng)目被編譯和鏈接而沒有任何錯誤,就可以在目標(biāo)硬件上對其進(jìn)行評估。為此,ADI開發(fā)了兩種不同的硬件平臺。圖 4 顯示了MAX78000EVKIT,圖 5 顯示了MAX78000FTHR,這是一個稍小的羽毛外形板。每塊板都配有一個VGA攝像頭和一個麥克風(fēng)。

wKgaomUFVNyAf-34AAvFn8k76YA889.png

結(jié)論

以前,人工智能應(yīng)用需要服務(wù)器場或昂貴的FPGA形式的大量能源消耗。現(xiàn)在,借助帶有專用 CNN 加速器的 MAX78000 系列微控制器,可以使用單塊電池長時(shí)間為 AI 應(yīng)用供電。能源效率和功耗的這一突破使邊緣 AI 比以往任何時(shí)候都更容易獲得,并釋放了以前不可能實(shí)現(xiàn)的令人興奮的全新邊緣 AI 應(yīng)用的潛力。

編輯:黃飛

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

    關(guān)注

    48

    文章

    7555

    瀏覽量

    151430
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21738

    瀏覽量

    603461
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4771

    瀏覽量

    100777
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    30898

    瀏覽量

    269130
  • cnn
    cnn
    +關(guān)注

    關(guān)注

    3

    文章

    352

    瀏覽量

    22217
收藏 人收藏

    評論

    相關(guān)推薦

    深度探索AI微控制器CNN硬件轉(zhuǎn)換方案

    MAX78000是一款具有超低功耗CNN加速AI微控制器,這是一種先進(jìn)的片上系統(tǒng)。它能夠以超低功耗為資源受限的邊緣設(shè)備或物聯(lián)網(wǎng)應(yīng)用提供神經(jīng)網(wǎng)絡(luò)。
    發(fā)表于 11-24 09:22 ?429次閱讀
    深度探索<b class='flag-5'>AI</b><b class='flag-5'>微控制器</b>對<b class='flag-5'>CNN</b>的<b class='flag-5'>硬件</b><b class='flag-5'>轉(zhuǎn)換</b>方案

    電梯的基礎(chǔ)原理:微控制器

    微控制器
    jf_10480160
    發(fā)布于 :2022年12月14日 07:20:15

    精密模擬微控制器詳解

    1 什么是精密模擬微控制器?  精密模擬微控制器(見圖1)將高性能模數(shù)轉(zhuǎn)換器(ADC)和數(shù)模轉(zhuǎn)換器(DAC)與單芯片處理和外圍設(shè)備集成在一
    發(fā)表于 08-19 11:41

    什么是微控制器

    使微控制器的線路可以盡量優(yōu)化,硬件結(jié)構(gòu)更加簡單,從而可以實(shí)現(xiàn)較低的成本和功耗,當(dāng)然完成相同的工作可能需要更多的指令。所以,二者取舍之間沒有絕對優(yōu)勢,只能說根據(jù)應(yīng)用的不同需求和側(cè)重來進(jìn)行選擇
    發(fā)表于 11-14 14:30

    微控制器MCU是什么

    在開發(fā)嵌入式系統(tǒng)時(shí),其中一個選擇是將計(jì)算硬件基于微控制器,而不是微處理MPU。這兩種方法都有其吸引力,但通常它們將在不同的應(yīng)用中找到。通常,微控制器MCU可用于大小,低功耗和低成本是
    發(fā)表于 11-03 06:45

    AT32微控制器硬件設(shè)計(jì)指南及抗EMC設(shè)計(jì)要點(diǎn)

    本應(yīng)用筆記為使用AT32系列微控制器芯片的硬件設(shè)計(jì)人員提供參考設(shè)計(jì),包括供電電源要求、時(shí)鐘管理、復(fù)位管理、調(diào)試接口的管理。它說明了使用AT32系列微控制器芯片所需的最低硬件資源。文中介
    發(fā)表于 10-25 07:54

    微控制器硬件抗干擾技術(shù)

    介紹干擾的形成過程, 并從實(shí)用角度介紹微控制器硬件抗干擾的基本原理,給出設(shè)計(jì)微控制系統(tǒng)所應(yīng)采取的基本方法。
    發(fā)表于 05-14 14:35 ?16次下載

    什么是微控制器?如何編程微控制器?

    微控制器進(jìn)行編程或刻錄意味著“將程序從編譯傳輸?shù)?b class='flag-5'>微控制器的存儲”。微控制器的程序通常是用C或匯編語言編寫的,最后編譯
    的頭像 發(fā)表于 08-21 15:40 ?1w次閱讀

    微控制器中各式各樣的編程語言

    在上一篇文章中,我們探索了微控制器中的軟件與硬件,并分析了為何微控制器的軟件和硬件相輔相成缺一不可。我們知道,微控制器
    的頭像 發(fā)表于 05-19 19:58 ?2694次閱讀

    微控制器布局

    有效 的,其他則需要適當(dāng)?shù)牧粜囊幌?PCB 設(shè)計(jì)。 因此,很容易地理解噪聲的來源主要由 NEC CMOS 微控制器 的內(nèi)部躁聲和它傳播到外面的躁聲組成。 3.1典型的微控制器布局 在以下章節(jié)將詳細(xì)討論半導(dǎo)體,一些技術(shù)術(shù)語用以下的圖片簡要的說明一下。 除 AD
    的頭像 發(fā)表于 08-15 19:59 ?1302次閱讀
    <b class='flag-5'>微控制器</b>布局

    如何采用帶專用CNN加速AI微控制器實(shí)現(xiàn)CNN硬件轉(zhuǎn)換

    本文重點(diǎn)解釋如何使用硬件轉(zhuǎn)換卷積神經(jīng)網(wǎng)絡(luò)(CNN),并特別介紹使用帶CNN硬件加速器的人工智能(AI
    的頭像 發(fā)表于 05-16 01:05 ?800次閱讀

    先楫系列微控制器硬件設(shè)計(jì)指南

    電子發(fā)燒友網(wǎng)站提供《先楫系列微控制器硬件設(shè)計(jì)指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 14:20 ?2次下載
    先楫系列<b class='flag-5'>微控制器</b><b class='flag-5'>硬件</b>設(shè)計(jì)指南

    AT32微控制器硬件設(shè)計(jì)指南及抗EMC設(shè)計(jì)要點(diǎn)

    電子發(fā)燒友網(wǎng)站提供《AT32微控制器硬件設(shè)計(jì)指南及抗EMC設(shè)計(jì)要點(diǎn).pdf》資料免費(fèi)下載
    發(fā)表于 09-19 15:53 ?0次下載
    AT32<b class='flag-5'>微控制器</b><b class='flag-5'>硬件</b>設(shè)計(jì)指南及抗EMC設(shè)計(jì)要點(diǎn)

    在軟硬件設(shè)計(jì)方面,微控制器的PWM功能有何具體差異?

    硬件架構(gòu):不同的微控制器可能采用不同的硬件架構(gòu),這會影響PWM模塊的設(shè)計(jì)和實(shí)現(xiàn)方式。例如,一些微控制器可能使用專用的PWM模塊,而另一些微控制器
    的頭像 發(fā)表于 12-13 10:03 ?613次閱讀

    新唐科技宣布推出基于微控制器的終端AI平臺,加速AI應(yīng)用普及

    新唐科技宣布推出基于微控制器的終端AI平臺,使AI生態(tài)系擴(kuò)展至微控制器領(lǐng)域。
    的頭像 發(fā)表于 04-23 09:58 ?727次閱讀