從云端的大數(shù)據(jù)(big data)處理到邊緣端的關鍵詞識別和影像分析,人工智能(AI)應用的爆炸式成長促使專家們前仆后繼地開發(fā)最佳架構,以加速機器學習(ML)算法的處理。各式各樣的新興解決方案都凸顯了設計人員在選擇硬件平臺之前,明確定義應用及其需求的重要性。
從很多方面來看,AI加速熱潮與1990年代末期和2000年代初的DSP淘金熱很類似;在那個時候,隨著有線和無線通信起飛,市場上紛紛推出高性能DSP協(xié)同處理器(co-processor)以因應基帶處理的挑戰(zhàn)。與DSP協(xié)同處理器一樣,AI加速器的目標是找到最快速、最節(jié)能的方法來執(zhí)行所需的運算任務。
神經(jīng)網(wǎng)絡處理背后的數(shù)學,涉及統(tǒng)計學、多元微積分(multivariable calculus)、線性代數(shù)、數(shù)值優(yōu)化(numerical optimization)和機率等;雖然很復雜,也是高度可平行化的(parallelizable)。但事實上這是令人尷尬的可平行化──與分布式計算不同,在路徑的輸出被重組并產(chǎn)生輸出結果之前,很容易被分解為沒有分支(branches)或從屬關系(dependencies)的平行路徑。
在各種神經(jīng)網(wǎng)絡算法中,卷積神經(jīng)網(wǎng)絡(CNN)特別擅長對象識別類任務——也就是從影像中過濾篩選出感興趣的對象。CNN以多維矩陣(multidimensional matrices)──即張量(tensor)──架構來理解資料,將超出第三個維度的每個維度都嵌入到子數(shù)組中(如圖1),每個添加的維度稱為“階”(order),因此,五階張量會有五個維度。
圖1:CNN以張量架構攝取數(shù)據(jù),也就是可被可視化為3D立方體的數(shù)字矩陣(數(shù)據(jù)集);每個數(shù)組中還有一個子數(shù)組,該數(shù)字定義了CNN的深度。
與數(shù)學相關度不高,AI重點在于快速反復運算
這種多維分層對于理解CNN所需之加速的本質很重要,卷積過程使用乘法在數(shù)學上將兩個函數(shù)“卷繞”(roll)在一起,因此廣泛使用乘加(multiply-accumulate,MAC)數(shù)學運算;舉例來說,在對象識別中,一個函數(shù)是源影像,另一個函數(shù)是用來識別特征然后將其映像到特征空間的過濾器(filter)。每個過濾器都要多次執(zhí)行這種“卷繞”,以識別影像中的不同特征,因此數(shù)學運算變得非常重復,且是令人尷尬(或令人愉悅)的可平行化。
為此,某些AI加速器的設計采用多個獨立的處理器核心(高達數(shù)百或上千個),與內(nèi)存子系統(tǒng)一起整合在單芯片中,以減輕數(shù)據(jù)存取延遲并降低功耗。然而,由于業(yè)界已設計了繪圖處理器(GPU)來對圖像處理功能進行高度平行處理,因此它們對于AI所需的這種神經(jīng)網(wǎng)絡處理也可以實現(xiàn)很好的加速。AI應用的多樣性和深度,特別是在語音控制、機器人、自動駕駛和大數(shù)據(jù)分析等方面,已經(jīng)吸引了GPU供應商將重點轉移到AI處理硬件加速的開發(fā)。
然而AI硬件加速的問題,在于有如此多的數(shù)據(jù),所需的準確性和響應時間又有如此大的差別,設計人員必須對于架構的選擇非常講究。例如數(shù)據(jù)中心是數(shù)據(jù)密集型的,其重點是盡可能快速處理數(shù)據(jù),因此功耗并非特別敏感的因素——盡管能源效率有利于延長設備使用壽命,降低設施的整體能耗和冷卻成本,這是合理的考慮。百度的昆侖(Kunlun)處理器耗電量為100W,但運算性能達到260 TOPS,就是一款特別適合數(shù)據(jù)中心應用的處理器。
接下來看另一個極端的案例。如關鍵詞語音識別這樣的任務需要與云端鏈接,以使用自然語言識別來執(zhí)行進一步的命令?,F(xiàn)在這種任務在采用法國業(yè)者GreenWaves Technologies之GAP8處理器的電池供電邊緣設備上就可以實現(xiàn);該處理器是專為邊緣應用設計,強調超低功耗。
介于中間的應用,如自動駕駛車輛中的攝影機,則需要盡可能接近實時反應,以識別交通號志、其他車輛或行人,同時仍需要最小化功耗,特別是對于電動車來說;這種情況或許需要選擇第三種方案。云端連結在此類應用中也很重要,如此才能實時更新所使用的模型和軟件,以確保持續(xù)提高準確度、反應時間和效率。
ASIC還不足以托付AI加速任務
正因為這是一個在軟、硬件方面都迅速發(fā)展,需要在技術上持續(xù)更新的領域,并不建議將AI神經(jīng)網(wǎng)絡(NN)加速器整合到ASIC或是系統(tǒng)級封裝(SiP)中——盡管這樣的整合具有低功耗、占用空間小、成本低(大量時)和內(nèi)存訪問速度快等優(yōu)點。加速器、模型和神經(jīng)網(wǎng)絡算法的變動太大,其靈活性遠超過指令導向(instruction-driven)方法,只有像Nvidia這種擁有先進技術、資金雄厚的玩家才能夠負擔得起不斷在硬件,而在硬件上根據(jù)特定方法進行迭代。
這種硬件加速器開發(fā)工作的一個很好的例子,就是Nvidia在其Tesla V100 GPU中增加了640個Tensor核心,每個核心在一個頻率周期內(nèi)可以執(zhí)行64次浮點(FP)融合乘加(fused-multiply-add,F(xiàn)MA)運算,可為訓練和推理應用提供125 TFLOPS的運算性能。借助該架構,開發(fā)人員可以使用FP16和FP32累加的混合精度(mixed precision)進行深度學習訓練,指令周期比Nvidia自家上一代Pascal架構高3倍。
混合精度方法很重要,因為長期以來人們已經(jīng)認識到,雖然高性能運算(HPC)需要使用32~256位FP的精確運算,但深度神經(jīng)網(wǎng)絡(DNN)不需要這么高的精度;這是因為經(jīng)常用于訓練DNN的反向傳播算法(back-propagation algorithm)對誤差具有很強的彈性,因此16位半精度(FP16)對神經(jīng)網(wǎng)絡訓練就足夠了。
此外,儲存FP16數(shù)據(jù)比儲存FP32或FP64數(shù)據(jù)的內(nèi)存效率更高,從而可以訓練和部署更多的網(wǎng)絡,而且對許多網(wǎng)絡來說,8位整數(shù)運算(integer computation)就足夠了,對準確性不會有太大影響。
這種使用混合精度運算的能力在邊緣甚至會更實用,當數(shù)據(jù)輸入的來源是低精度、低動態(tài)范圍的傳感器——例如溫度傳感器、MEMS慣性傳感器(IMU)和壓力傳感器等——還有低分辨率視頻時,開發(fā)人員可以折衷精度以取得低功耗。
AI架構的選擇利用霧計算從邊緣擴展至云端
可擴充處理(scalable processing)的概念已經(jīng)擴展到更廣泛的網(wǎng)絡——利用霧運算(fog computing)概念,透過在網(wǎng)絡上的最佳位置執(zhí)行所需的處理,來彌補邊緣和云端之間的能力差距;例如可以在本地物聯(lián)網(wǎng)(IoT)網(wǎng)關或更接近應用現(xiàn)場的本地端服務器上進行神經(jīng)網(wǎng)絡圖像處理,而不必在云端進行。這樣做有三個明顯的優(yōu)勢:一是能減少由于網(wǎng)絡等待時間造成的時延,二來可以更安全,此外還能為必須在云端處理的數(shù)據(jù)釋出可用的網(wǎng)絡帶寬;在更高的層面上,這種方法也通常更節(jié)能。
因此,許多設計師正在開發(fā)內(nèi)建攝影機、影像預處理和神經(jīng)網(wǎng)絡AI信號鏈(signal chains)功能的獨立產(chǎn)品,這些產(chǎn)品僅在相對較閉回路(closed-loop)的運作中呈現(xiàn)輸出,例如已識別標志(自駕車)或人臉(家用安防系統(tǒng))。在更極端的案例中,例如設置在偏遠或難以到達之處,以電池或太陽能供電的設備,可能需要長時間地進行這種處理。
圖2:GreenWave的GAP8采用9個RISC-V處理器核心,針對網(wǎng)絡邊緣智能設備上的低功耗AI處理進行了優(yōu)化。
為了幫助降低這種邊緣AI圖像處理的功耗,GreenWaves Technologies的GAP8處理器整合了9個RISC-V核心;其中一個核心負責硬件和I/O控制功能,其余8個核心則圍繞共享數(shù)據(jù)和指令內(nèi)存形成一個叢集(如圖2)。這種結構形成了CNN推理引擎加速器,具備額外的RISC-V ISA指令來強化DSP類型的運算。
GAP8是為網(wǎng)絡邊緣的智能設備量身打造,在功耗僅幾十毫瓦(mW)的情況下可實現(xiàn)8GOPS運算,或者在1mW時可實現(xiàn)200 MOPS運算;它完全可以用C/C++語言來編程,最小待機電流為70nA。
AI處理器架構比一比:RISC-V vs. Arm
RISC-V開放性硬件架構在一開始遭到質疑,因為那需要一個忠實穩(wěn)固的使用者社群,以提供一系列豐富的支持工具和軟件;而隨著該架構透過各種測試芯片和硬件實作吸引更多開發(fā)者加入,那些質疑也逐漸消退。RISC-V吸引人之處在于它正成為Arm處理器的強勁對手,特別是在超低功耗、低成本應用上;只要談到低成本就會錙銖必較,因此免費方案總是會感覺比需要支付授權費的方案更好。
不過雖然RISC-V架構的GAP8可以節(jié)能并且針對邊緣神經(jīng)網(wǎng)絡處理進行了高度優(yōu)化,從系統(tǒng)開發(fā)的角度來看仍然需要考慮周邊功能,例如攝影機傳感器本身和網(wǎng)絡通訊接口,以及是采用有線還是無線技術等;依據(jù)系統(tǒng)通訊和處理影像的次數(shù)頻率,這些功能占用的功耗比例可能較高。根據(jù)GreenWaves的說法,GAP8若采用3.6Wh的電池供電,能以每3分鐘分類一張QVGA影像的頻率持續(xù)工作長達10年;但該數(shù)字并未考慮整體系統(tǒng)中其他因素的影響。
GreenWaves將其GAP8處理器與采用Arm Cortex-M7核心、運作頻率216MHz的意法半導體(ST)處理器STM32 F7進行了直接比較(圖3);兩者以CIFAR-10數(shù)據(jù)集的影像進行訓練,權重量化為8位定點(fixed point)。
圖3:GreenWaves Technologies的GAP8與ST的STM32 F7處理器性能比較。
雖然GAP8因為擁有八核心架構而呈現(xiàn)更高效率,并能以較低時鐘速率與更少的周期實現(xiàn)推理,Arm架構也不遑多讓──Arm已經(jīng)發(fā)表了針對行動設備和其他相鄰、網(wǎng)絡邊緣應用的機器學習(ML)處理器,其應用場景包括AR/VR、醫(yī)療、消費性電子產(chǎn)品以及無人機等;該架構采用固定功能引擎(fixed-function engines)來執(zhí)行CNN層,并采用可程序化層(programmable layer)引擎來執(zhí)行非卷積層以及實現(xiàn)所選基元(primitive)和運算符(operator),參考圖4。
圖4:Arm的ML處理器設計用于CNN類型固定功能以及可程序化層引擎的低功耗邊緣處理。
有趣的是,ML處理器是以高度可擴充架構為基礎,因此同一處理器和工具可用于開發(fā)從物聯(lián)網(wǎng)到、嵌入式工業(yè)和交通,到網(wǎng)絡處理和服務器等各種應用,運算性能要求從20 MOPS到70 TOPS以上不等。
如果開發(fā)團隊希望從云端往下擴充,或從邊緣往上擴充,那么這種可擴充性比較適合之前討論的霧運算概念。此外該處理器本身與主流神經(jīng)網(wǎng)絡學習框架緊密整合,例如Google的TensorFlow和TensorFlow Lite,以及Caffe和Caffe 2;它還針對Arm Cortex CPU和Arm Mali GPU進行了優(yōu)化。
在異構處理體系架構中部署AI
透過ML處理器,Arm還強調了異質(heterogenous)方法對AI應用之神經(jīng)網(wǎng)絡的重要性,但僅限于其CPU和GPU的狹窄范圍內(nèi)。從更廣泛的角度來看,英特爾(Intel)的OpenVINO (Visual Inference & Neural Network Optimization,視覺推理和神經(jīng)網(wǎng)絡優(yōu)化)工具套件可以實現(xiàn)異質混合架構的開發(fā),包括CPU、GPU與FPGA,當然還有英特爾自家的Movidius視覺處理器(VPU)和基于Atom的圖像處理器(IPU)。利用通用API以及針對OpenCV和OpenVX優(yōu)化的呼叫(call),英特爾聲稱其深度學習性能可以提高19倍。
異質方法對于針對AI的神經(jīng)網(wǎng)絡處理既有好處又不可或缺;當從頭開始一個設計,這種方法能開啟更多的處理可能性和潛在的優(yōu)化機會。但許多嵌入式系統(tǒng)已經(jīng)部署了相關硬件,通常是混合了MCU、CPU、GPU和FPGA,因此如果有開發(fā)工具可以在這樣的已設置硬件基礎上開發(fā)AI應用,并透過單一API進行相對應的優(yōu)化(假設像OpenVINO這樣的工具套件是與底層硬件兼容),可以解決很多問題。
百度將AI處理性能推向新高
在今年7月初于北京舉行的百度開發(fā)者大會Create 2018上,該公司發(fā)表了昆侖(圖5),號稱是中國首款從云端到邊緣的AI芯片組,包括818-300訓練芯片和818-100推理芯片。
圖5:百度的昆侖是中國第一款從云端到邊緣的AI處理器芯片組,雖然其架構細節(jié)尚未公布,但號稱比百度2011年發(fā)表、基于FPGA的AI加速器快30倍。
昆侖號稱比百度2011年發(fā)表、基于FPGA的AI加速器快30倍,達到260 TOPS@100W;該芯片將采用三星(Samsung)的14納米工藝,內(nèi)存帶寬為512GB/s。雖然百度尚未公布其架構參數(shù),但它可能包含數(shù)千個核心,能為百度自己的數(shù)據(jù)中心進行巨量數(shù)據(jù)的高速平行處理;該公司也有計劃針對各種客戶端設備和邊緣處理應用推出低性能版本。
在百度的昆侖發(fā)表前不久,Google于5月份也發(fā)表了TPU 3.0;Google并未透露該芯片細節(jié),只說速度比去年的版本快8倍,達到100 PFLOPS。
使用現(xiàn)有技術來啟動AI設計
雖然還有許多其他新興的神經(jīng)網(wǎng)絡處理架構,如果是對“運算性能vs.實時性能要求”有合理期望,目前也有許多處理器和工具套件能充分滿足邊緣運算需求。例如,基本的家用保全系統(tǒng)可能包括一臺攝影機,負責人臉識別處理并透過Wi-Fi連接到家庭網(wǎng)關或路由器,這用市面上現(xiàn)有的處理器或工具套件就可以實現(xiàn)。
想嘗試這種設計的開發(fā)人員不必從零開始,而是只要選擇一個已經(jīng)獲得廣泛支持的平臺,具備各種CPU、視頻與圖片處理GPU、高速內(nèi)存、內(nèi)建無線和有線通訊模塊,還有恰當?shù)?a target="_blank">操作系統(tǒng)支持和廣泛、活躍的用戶生態(tài)系統(tǒng)。
圖6:NXP的i.MX 8M解決了快速啟動開發(fā)的問題,同時還可以使用基于Arm的處理器來擴展AI應用。
恩智浦半導體(NXP)的i.MX 8M就是一個合適的起點(圖6)。該方案實際上是一系列處理器,配備最多達四個的1.5GHz Arm Cortex-A53和Cortex-M4核心;內(nèi)含兩個GPU類型處理器,一個可用于影像預處理,另一個用于神經(jīng)網(wǎng)絡加速。
另一個關鍵設計需求是現(xiàn)場使用壽命要夠長,也就是系統(tǒng)要能夠耐受惡劣使用環(huán)境,特別像是安裝在室外的攝影機;還要能隨著時間持續(xù)更新。后者特別重要,因為設計人員得確保設計中預留足夠的空間,以便在功能增加時實現(xiàn)更高的處理性能要求;同時還要保證低功耗,特別是對電池供電產(chǎn)品來說。
AI加速的重要性在于,其處理能力需求正從傳統(tǒng)的CPU和FPGA轉移到GPU和VPU,或者所有以上處理器的異質組合;當然這取決于應用。在此同時,即使針對越來越龐大數(shù)據(jù)集的AI加速成為主流,CPU的關鍵控制功能仍將保持不變。
-
人工智能
+關注
關注
1806文章
49028瀏覽量
249521 -
機器學習
+關注
關注
66文章
8503瀏覽量
134620
原文標題:如何針對不同的應用,來合適的AI硬件加速方案!
文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
我國生成式人工智能的發(fā)展現(xiàn)狀與趨勢
人工智能推理及神經(jīng)處理的未來

什么是嵌入式人工智能

評論