AI應用程序需要大量的能源消耗,通常是以服務器儲存所或昂貴的現(xiàn)場可編程門陣列的形式出現(xiàn)。挑戰(zhàn)在于提高計算能力,同時保持低能耗和低成本?,F(xiàn)在,人工智能的應用正在看到強大的智能邊緣計算帶來的巨大變化。與傳統(tǒng)的基于硬件的計算方法相比,基于硬件的卷積神經網絡加速度正以其令人印象深刻的速度和功率,為計算性能開創(chuàng)一個新的時代。通過使傳感器節(jié)點能夠自己做出決定,智能邊緣技術極大地降低了5G和Wi-Fi網絡的數(shù)據(jù)傳輸速率。這正在為以前不可能的新興技術和獨特應用提供動力。例如,偏遠地區(qū)的煙霧/火災探測器或傳感器層面的環(huán)境數(shù)據(jù)分析都已成為現(xiàn)實--所有這些都隨著電池的使用年限而發(fā)生變化。為了檢驗這些功能是如何實現(xiàn)的,本文探索了一個CNN的硬件轉換,一個專用的人工智能微控制器。
人工智能微控制器與超低功率卷繞神經網絡加速器
MAX78000 是一個人工智能微控制器與超低功率CNN加速器,在芯片上的先進系統(tǒng)。它使神經網絡能夠在資源受限的邊緣設備或iot應用超低功率。這些應用包括目標檢測和分類、音頻處理、聲音分類、噪聲消除、面部識別、心率/健康信號分析的時序數(shù)據(jù)處理、多傳感器分析和預測維護。
MAX78000由一個ARM提供高達100兆赫的動力。 帶有浮點單元的M4F芯。為了給應用程序提供足夠的內存資源,這個版本的微控制器配備了512kb的閃存和128kb的SRAM。包括多個外部接口,例如,對音頻應用來說很重要的ICS,SPIS,UART,以及IVOS。此外,還有一個集成的60兆赫RSCV核心。RSCS-V從/向單個外圍塊和內存(閃存和SRAM)復制數(shù)據(jù),使其成為一個智能的直接內存訪問(DMA)引擎。RSCS-V核心為人工智能加速器預處理傳感器數(shù)據(jù),因此ARM核心在此期間可以處于深度睡眠模式。必要時,推理結果可以通過中斷觸發(fā)ARM核心,ARMCPU隨后在主應用程序中執(zhí)行操作,無線傳遞傳感器數(shù)據(jù),或通知用戶。
用于執(zhí)行卷繞神經網絡推理的硬件加速器單元是MAX7800X系列微控制器的一個顯著特點,它使它與標準微控制器體系結構和外圍設備不同。這個硬件加速器可以支持完整的CNN模型架構以及所有所需的參數(shù)(權重和偏差)。CNN加速器配備了64個并行處理器和一個集成存儲器,該存儲器有442kb,用于存儲參數(shù),并用于輸入數(shù)據(jù)。由于模型和參數(shù)存儲在SRAM內存中,可以通過固件進行調整,網絡可以實時適應。根據(jù)模型中是否使用1-、2-、4-或8位權重,這個內存足以容納350萬個參數(shù)。由于存儲能力是加速器不可或缺的一部分,因此不需要在每次連續(xù)的數(shù)學操作中通過微控制器總線結構提取參數(shù)。由于延遲時間長和耗電量高,這項活動成本高昂。神經網絡加速器可以支持32或64層,取決于池功能。每層可編程圖像的輸入/輸出尺寸可達1024x1024像素。
CNN硬件轉換:能耗和推理速度比較
CNN推理是一個復雜的計算任務,它包含了矩陣形式的大型線性方程組.利用ARM cortex-M4F微控制器的力量,CNN在嵌入式系統(tǒng)固件上的推理是可能的;然而,有一些缺點需要考慮。由于基于固守器的推理運行在微控制器上,能量和時間被大量消耗,因為計算所需的命令,以及相關的參數(shù)數(shù)據(jù),需要從內存中檢索,然后才能將中間的結果寫回去。
表1給出了使用三種不同解決方案的CNN推理速度和能耗的比較。這個例子模型是利用一個手寫的數(shù)字識別訓練集MPERE開發(fā)的,它將數(shù)字和字母從視覺輸入數(shù)據(jù)中分類,以獲得一個準確的輸出結果。測量了每種處理器類型所需的推理時間,以確定能耗和速度之間的差異。
在第一個方案中,使用了一個ARM皮質M4F處理器集成到以96兆赫運行的MAX32630,用于計算推理。在第二種情況下,為了處理計算,使用了MAX78000的基于硬件的CNN加速器。推理速度--即在網絡輸入中顯示視覺數(shù)據(jù)與結果輸出之間的時間--在使用帶有硬件加速器的微控制器(MAX78000)時降低了400倍。此外,每個推論所需的能量是一個低1100系數(shù)。在第三個比較中,每個推理的最小能耗優(yōu)化了MPERE網絡。結果的準確性從99.6%下降到95.6%.然而,網絡速度要快得多,每次推斷只需要0.36MS。每一個推論的能量消耗量減少到只有1.1秒。在使用兩個AA堿性電池(共6小時能量)的應用中,500萬推論是可能的(省去電路其余部分的電源)。
這些數(shù)據(jù)說明了硬件加速計算的力量。硬件加速計算是無法利用連接或連續(xù)電源的應用程序的寶貴工具。MAX78000支持邊緣處理,不需要大量的能源、寬帶互聯(lián)網接入或長時間的推理。
MAX78000人工智能微控制器用例
MAX78000支持大量潛在的應用程序,但是讓我們以下面的用例為例來研究。要求是設計一個電池驅動的相機,它可以檢測到貓在圖像傳感器的視野中,從而能夠通過貓門的數(shù)字輸出進入房子。
發(fā)展環(huán)境和評價包
開發(fā)邊緣應用程序的過程可分為以下幾個階段:
第一階段:人工智能-網絡的定義、培訓和量化
第2階段:ARM固件--將第1階段生成的網絡和參數(shù)納入C/C++應用程序,并創(chuàng)建和測試應用程序固件
開發(fā)過程的第一部分涉及建模、培訓和評估AI模型。在這個階段,開發(fā)者可以利用開源工具.該數(shù)據(jù)庫提供了全面的資源,以幫助用戶在考慮到該系統(tǒng)硬件規(guī)格的情況下,在使用PYOTUB開發(fā)環(huán)境建立和培訓AI網絡方面規(guī)劃自己的旅程。?MAX78000 .存儲庫中包含了一些簡單的AI網絡和應用程序,如面部識別(AMAXID)。
首先,對網絡進行建模。必須注意的是,并非所有MAX7800X微控制器都有硬件,支持在PIOTO環(huán)境中可用的所有數(shù)據(jù)操作。由于這個原因,由模擬設備提供的文件像8X.PY必須首先包括在項目中。這個文件包含使用MAX78000所需的PUTR模塊和操作員。基于此設置,可以建立網絡,然后使用培訓數(shù)據(jù)進行培訓、評估和量化。這個步驟的結果是一個檢查點文件,其中包含最終合成過程的輸入數(shù)據(jù)。在這個最后的過程中,網絡及其參數(shù)被轉換成適合于CNN硬件加速器的形式。這里應該提到的是,網絡訓練可以用任何個人電腦完成(筆記本電腦,服務器等)。然而,如果不支持海關數(shù)據(jù)自動化系統(tǒng)的圖形卡,這可能需要很多時間--即使對于小型網絡,幾天甚至幾周都是完全現(xiàn)實的。
在開發(fā)過程的第二階段,利用將數(shù)據(jù)寫入CNN加速器并讀取結果的機制創(chuàng)建了應用固件。在第一階段創(chuàng)建的文件通過#包含指令被集成到C/C++項目中。開源工具,如EXEXESTI和GNU工具鏈也被用于微控制器的開發(fā)環(huán)境。工業(yè)發(fā)展署提供一套軟件開發(fā)工具包作為已經包含所有必要組件和配置的安裝程序。軟件開發(fā)包還包括外圍驅動程序以及示例和指令,以方便開發(fā)應用程序的過程。
結論
以前,人工智能的應用程序需要大量的能源消耗,如服務器儲存所或昂貴的FPGA?,F(xiàn)在,有了MAX78000,它有可能從單個電池上為AI應用程序提供長時間的動力。在能源效率和電力方面的這種突破使得Edge AI比以往任何時候都更容易獲得,并釋放出以前不可能的新的和令人興奮的Edge AI應用的潛力。