<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

基于AI微控制器的CNN的硬件轉換

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

作者:Ole Dreessen

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

具有超低功耗卷積神經網絡加速器的人工智能微控制器

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

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

wKgZomUFVJ6ADQnaAAFNgEb3YQY727.png

圖 1。MAX78000模塊原理圖。

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

CNN 硬件轉換:能耗和推理速度比較

CNN推理是一項復雜的計算任務,由矩陣形式的大型線性方程組成。利用 Arm Cortex-M4F 微控制器的強大功能,可以在嵌入式系統的固件上進行 CNN 推理;但是,有一些缺點需要考慮。在微控制器上運行基于固件的推理時,需要從內存中檢索計算所需的命令以及相關的參數數據,然后才能寫回中間結果,因此會消耗大量精力和時間。

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

表 1.利用MNIST數據集進行手寫數字識別的三種不同場景

wKgZomUFVKqAZi7aAABzd91nJ9U074.png

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

這些數據說明了硬件加速計算的強大功能。硬件加速計算對于無法利用連接或連續電源的應用程序來說是一種寶貴的工具。該MAX78000支持邊緣處理,而無需大量能源、寬帶互聯網接入或延長推理時間。

MAX78000 AI 微控制器的示例用例

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

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

wKgZomUFVLuAYlzNAAC2xU1B-gw768.png

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

開發環境和評估套件

開發邊緣 AI 應用程序的過程可以分為以下幾個階段:

第 1 階段:人工智能——網絡的定義、訓練和量化

第 2 階段:Arm 固件 – 將第 1 階段生成的網絡和參數包含在 C/C++ 應用程序中,并創建和測試應用程序固件

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

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

wKgZomUFVMeAfRfrAAEschWs7w0757.png

圖 3。人工智能開發過程。

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

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

wKgaomUFVNyAf-34AAvFn8k76YA889.png

結論

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

編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    6865

    瀏覽量

    148248
  • FPGA
    +關注

    關注

    1608

    文章

    21367

    瀏覽量

    594497
  • 神經網絡
    +關注

    關注

    42

    文章

    4590

    瀏覽量

    99234
  • AI
    AI
    +關注

    關注

    87

    文章

    27018

    瀏覽量

    264754
  • cnn
    cnn
    +關注

    關注

    3

    文章

    326

    瀏覽量

    21480
收藏 人收藏

    評論

    相關推薦

    深度探索AI微控制器CNN硬件轉換方案

    MAX78000是一款具有超低功耗CNN加速器的AI微控制器,這是一種先進的片上系統。它能夠以超低功耗為資源受限的邊緣設備或物聯網應用提供神經網絡。
    發表于 11-24 09:22 ?295次閱讀
    深度探索<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'>轉換</b>方案

    #硬聲創作季 微控制器原理:微控制器的典型結構

    微控制器mcu
    Mr_haohao
    發布于 :2022年11月02日 14:51:39

    電梯的基礎原理:微控制器

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

    #硬聲創作季 #微控制器應用 41 視頻:溫度測試儀硬件電路的設計

    微控制器
    發布于 :2022年12月15日 13:00:22

    精密模擬微控制器詳解

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

    什么是微控制器

    使微控制器的線路可以盡量優化,硬件結構更加簡單,從而可以實現較低的成本和功耗,當然完成相同的工作可能需要更多的指令。所以,二者取舍之間沒有絕對優勢,只能說根據應用的不同需求和側重來進行選擇
    發表于 11-14 14:30

    不同微控制器版的特性

    要開始嵌入式開發,我們需要兩個主要的東西,即開發板和IDE(集成開發環境)。微控制器開發板是一種印刷電路板(PCB),其電路和硬件設計用于促進某些微控制器板功能的實驗。開發板與處理,
    發表于 08-07 08:53

    微型微控制器與強大的人工智能(AI)世界有什么關系

    AI設計主要參與方都是功能強大的CPU,GPU和FPGA等。微型微控制器與強大的人工智能(AI)世界有什么關系?但隨著AI從云到邊緣的發展,使得這一觀點正在迅速改變,
    發表于 11-01 08:55

    微控制器MCU是什么

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

    微控制器MCU的相關資料推薦

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

    STM32微控制器的相關資料分享

    硬件需求8、低功耗模式二、STM32庫函數及程序開發1、STM32固件庫二、搭建開發環境及如何開發一、STM32微控制器概述STM32系列32位閃存微控制器使用ARM公司的Cortex-M3內核,按...
    發表于 11-26 07:56

    AT32微控制器硬件設計指南及抗EMC設計要點

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

    如何采用帶專用CNN加速器的AI微控制器實現CNN硬件轉換

    本文重點解釋如何使用硬件轉換卷積神經網絡(CNN),并特別介紹使用帶CNN硬件加速器的人工智能(AI
    的頭像 發表于 05-16 01:05 ?545次閱讀

    先楫系列微控制器硬件設計指南

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

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

    新唐科技宣布推出基于微控制器的終端AI平臺,使AI生態系擴展至微控制器領域。
    的頭像 發表于 04-23 09:58 ?368次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>