將CNN硬件加速器集成進通用MCU,ADI的MAX78000和MAX78002實現(xiàn)高能效邊緣AI應用
要實現(xiàn)人工智能,必然要進行大量的矩陣計算。而大量的矩陣計算依賴于大量的存儲空間、強大的計算能力和高速的數(shù)據(jù)交互,因此通常只能在云端的大型服務器集群中可以進行部署。
但在很多垂直的邊緣端要實現(xiàn)AI賦能,調用云端的AI能力的成本較高,而且整個鏈條的響應時間也較長,對于連接質量的依賴程度也較高,因此并不能做到較為實時的計算和處理,這與端側的低功耗、低延時的系統(tǒng)設計目標并不相符。但其實剖析大部分端側的AI應用場景,并不需要非常復雜的模型運算,例如識別車牌、物體,進行語音指令識別等等,這些應用已經(jīng)沉淀了成熟的AI模型,因此只需要在端側計算單元中部署一個資源夠用的卷積神經(jīng)網(wǎng)絡(CNN)加速器,就可以承擔起端側的AI任務,而且也釋放了更擅長做計算任務的CPU等資源,從而在增加AI運算的同時,還保證了達到端側高能效目標。
在百億IoT設備中,大部分的計算單元是MCU。而在MCU中集成CNN加速器,已經(jīng)成為了MCU的一個發(fā)展方向。目前諸多MCU廠商都已經(jīng)推出了AI集成的MCU產(chǎn)品,其中也包括ADI的邊緣AI微控制器產(chǎn)品MAX7800X系列,目前該系列產(chǎn)品型號包括MAX78000和MAX78002。
CNN加速器集成,實現(xiàn)高能效邊緣AI計算
據(jù)預測,2025年75%的數(shù)據(jù)產(chǎn)生在邊緣側進行處理,端側AI MCU市場潛力巨大。MAX7800X系列也因此應運而生。據(jù)ADI中國技術支持中心高級工程師辛毅介紹,該系列產(chǎn)品由兩個微控制器內(nèi)核(ARM Cortex M4F和RISC-V)加上一個卷積神經(jīng)網(wǎng)絡(CNN)加速器構成。這一架構針對邊緣AI應用進行了高度優(yōu)化,數(shù)據(jù)的加載和啟動由微控制器內(nèi)核負責,而AI推理由卷積神經(jīng)網(wǎng)絡加速器專門負責。
據(jù)ADI MCU產(chǎn)品線資深業(yè)務經(jīng)理李勇介紹,Cortex-M4F內(nèi)核主要是做一些應用和通信,同時內(nèi)部還配有FLASH和SRAM。而RISC-V則是一顆小內(nèi)核,采用32位精簡指令集,主要是配合CNN來工作。比如圖片、聲音、波形等數(shù)據(jù)通過通信接口或者圖像Camera接口輸入進來后,會由RISC-V內(nèi)核將這些數(shù)據(jù)搬運至存儲空間,再讓CNN來使用。CNN經(jīng)過硬件計算,將原始的數(shù)據(jù)通過矩陣的乘法和加法得到一些特征值,再放到內(nèi)存里來進行比對。
借助于CPU和CNN兩類硬件的分工合作,MAX7800X系列一不需要聯(lián)網(wǎng),二支持電池供電,完美地滿足了邊緣AI的要求,是AIoT應用的理想產(chǎn)品。
目前MAX7800X提供了MAX78000和mAX78002兩種產(chǎn)品型號,MAX78000可支持多達3.5M的模型權重,MAX78002則支持多達16M的模型權重。如果把AI看成一個工作的大腦,那么模型權重就相當于這個大腦里儲存的知識。因此,MAX78002和MAX78000相比,不僅可以做到圖像的識別,還可以進行復雜的視頻分析?!翱偟膩碚f,ADI的邊緣AI解決方案具備速度快、無需外部存儲、時鐘控制靈活和超低功耗等四大特色,因此對于需要使用電池供電、需要及時決策的物聯(lián)網(wǎng)設備來說特別合適。”辛毅介紹到。
更完美平衡的邊緣AI方案
邊緣AI的計算平臺,可以選擇FPGA、GPU、DSP或其它專用ASIC,但ADI的MAX7800X憑借著針對性的架構設計,提供了更高的能效和性能表現(xiàn)。
對比傳統(tǒng)的MCU+DSP的方案,ADI的MAX7800X的CNN加速器可以將功耗降低99%以上,而且算法在CNN上執(zhí)行的效率也比DSP上更高。對于單純采用微控制器的方案,MAX7800X的CNN加速器具備更高的數(shù)據(jù)吞吐量,可以將速度提高100倍以上;而且釋放了CPU的工作負載,使其專注于更擅長的計算任務。而對于FPGA等方案,雖然可以處理更復雜的細節(jié),但其成本、功耗和面積都并不適合更邊緣側的部署,MAX7800X也具備更大的優(yōu)勢。
如下圖所示,將最新的MAX78000,與ADI的通用MCUMAX32650,以及競爭對手的某個MCU放在一起進行對比。當執(zhí)行相同的人臉識別(也就是圖像識別、視覺識別)和關鍵字識別(也就是音頻識別、聽覺識別)的AI推理時,MAX78000中的CNN在50MHz的主頻下就可以達到280億次每秒的運算速度,而另外兩顆MCU則在內(nèi)置的帶CMSIS-NN的DSP上運行相同INT8網(wǎng)絡,速度遠不及MAX78000中的專用CNN。而在功耗表現(xiàn)方面,競品MCU還要增加外部3.3V SDRAM和控制器的功耗,遠高于MAX78000和MAX32650??偟膩砜?,在執(zhí)行AI運算時,不論是推理速度和推理功耗,MAX78000在都大幅領先于另外兩顆沒有內(nèi)置CNN的MCU。
硬件CNN集成,邊緣AI MCU的技術趨勢
當前邊緣AI的實現(xiàn),有多種不同的方案,但考慮到更低的功耗表現(xiàn),MCU內(nèi)部集成專用的CNN硬件加速器是必然的選擇。因為AI需要的大量矩陣計算,在Cortex-M7或RISC-V等內(nèi)核上運算的效率并不高,勢必帶來大幅的功耗上升。而集成的CNN是專門針對矩陣計算設計的,因此執(zhí)行效率非常高。據(jù)李勇介紹,ADI的硬件CNN有64個8位處理器,里面有很多存放權重數(shù)據(jù)的Memory,這些Memory都分布在64個處理器周圍,并不需要那么多寄存器去進行管理,CNN的處理器直接取值,運算了再放出來,這一過程就會省很多時間,運算也非???。因為全是硬件完成的,比傳統(tǒng)微控制器的處理速度要快得多。CNN工作在50MHz的頻率上,可以非??焱瓿葾I工作,然后進入到睡眠狀態(tài)。因此集成來硬件CNN的MCU做這類運算,會比其他傳統(tǒng)MCU控制器更加省電。
為了實現(xiàn)可穿戴級別的低功耗,MAX7800X系列在設計上針對低功耗的進行了全面的考量。首先,選擇的Cortex-M4F和RISC-V內(nèi)核本身就是低功耗的取向,每個芯片有不同的工作模式、功耗模式,可以針對不同工況來關斷不需要的資源和接口,確保芯片一直保持在更低的功耗水平。其次,ADI的設計中包含有多個時鐘源,不僅有100MHz,還有7MHz和4MHz的。采用低頻率時鐘源的時候,功耗可以實現(xiàn)顯著降低。第三是提高集成度,ADI將電源管理、通信接口、比較大的Memory、甚至是電頻轉換芯片都集成在芯片里面, 輸入一個2.0V到3.6V的單電源,可以實現(xiàn)多路電源輸出,內(nèi)部供給內(nèi)核、Memory或者GPIO使用,從而幫助客戶提升了系統(tǒng)的整體功耗表現(xiàn)。
目前MAX78000支持的模型已經(jīng)有一些客戶成功案例,比如用來做山火監(jiān)測的安全攝像頭,有些地方經(jīng)常突發(fā)山火,需要一些遠程監(jiān)控設備,但又不需要傳輸大量的圖像。另外比如城市里的管道漏水、漏氣,是通過聲音和管道震動來檢測的。還有一些特殊產(chǎn)品,比如摩托車頭盔上的攝像頭,需要采用語音控制等等。其實ADI已經(jīng)無形中將AI應用到方方面面。
結語
隨著AI在邊緣的落地,硬件CNN在端側MCU的集成已經(jīng)成為一種技術趨勢。這種AI MCU的發(fā)展,將會迎來巨大的市場機遇。