萬 朵,胡謀法,肖山竹,張 焱
國(guó)防科技大學(xué) 電子科學(xué)學(xué)院 自動(dòng)目標(biāo)識(shí)別重點(diǎn)實(shí)驗(yàn)室,長(zhǎng)沙 410073
隨著物聯(lián)網(wǎng)+的普及,邊緣計(jì)算得到快速發(fā)展,以深度學(xué)習(xí)為代表的智能算法越來越多地被部署到邊緣計(jì)算設(shè)備上,構(gòu)成萬物互聯(lián)重要的端側(cè)算力。然而,深度學(xué)習(xí)類算法的網(wǎng)絡(luò)結(jié)構(gòu)千變?nèi)f化、層數(shù)和參數(shù)異常龐大,對(duì)算力資源的需求也日益復(fù)雜多元。邊緣智能計(jì)算面臨算力、功耗、體積、成本等諸多現(xiàn)實(shí)挑戰(zhàn),其中最主要的是算力與功耗的矛盾[1]。近年來,在邊緣智能計(jì)算應(yīng)用于實(shí)際場(chǎng)景的研究中,涌現(xiàn)了網(wǎng)絡(luò)剪枝[2]、參數(shù)量化[3]、模型蒸餾[4]等一系列網(wǎng)絡(luò)輕量化技術(shù),同時(shí)也特別強(qiáng)調(diào)依靠硬件加速技術(shù)實(shí)現(xiàn)算力與功耗的平衡。硬件適配是硬件加速技術(shù)中的代表性實(shí)現(xiàn)手段,其中異構(gòu)并行計(jì)算平臺(tái)(下文中簡(jiǎn)稱“異構(gòu)平臺(tái)”,含兩種及以上傳統(tǒng)計(jì)算平臺(tái))的硬件實(shí)現(xiàn)受到廣泛關(guān)注。本文針對(duì)邊緣智能計(jì)算的實(shí)現(xiàn)問題,對(duì)傳統(tǒng)計(jì)算平臺(tái)和異構(gòu)并行計(jì)算平臺(tái)兩種硬件適配方案進(jìn)行分析,旨在從算力、功耗的適配以及開發(fā)的便利等角度,為智能算法模型在端側(cè)落地提供硬件平臺(tái)選擇參考。同時(shí),通過梳理關(guān)鍵技術(shù)的發(fā)展脈絡(luò),對(duì)關(guān)鍵技術(shù)的發(fā)展成果進(jìn)行總結(jié),提出異構(gòu)并行計(jì)算平臺(tái)所面臨的挑戰(zhàn)。
本文首先對(duì)比分析了傳統(tǒng)計(jì)算平臺(tái)的優(yōu)缺點(diǎn),并梳理了異構(gòu)平臺(tái)中各個(gè)核心處理器(傳統(tǒng)計(jì)算平臺(tái))在指令模型、通訊機(jī)制和存儲(chǔ)體系三個(gè)方面的技術(shù)發(fā)展脈絡(luò)。然后,調(diào)研了近年來的典型異構(gòu)平臺(tái)代表性產(chǎn)品,并對(duì)比分析運(yùn)算速度和功耗等關(guān)鍵技術(shù)指標(biāo),介紹其在邊緣智能計(jì)算中的典型應(yīng)用。重點(diǎn)從算力和功耗的適配角度,對(duì)典型異構(gòu)平臺(tái)以及傳統(tǒng)計(jì)算平臺(tái)進(jìn)行對(duì)比分析,給出不同應(yīng)用約束條件下異構(gòu)平臺(tái)的選擇建議,最后總結(jié)了異構(gòu)并行計(jì)算平臺(tái)面臨的關(guān)鍵技術(shù)挑戰(zhàn)。
傳統(tǒng)計(jì)算平臺(tái)的核心處理器主要有CPU、GPU、FPGA和ASIC。其中,CPU包括ARM和DSP,而ASIC還包含了以RISC-V為基礎(chǔ)的專用集成芯片等。異構(gòu)計(jì)算平臺(tái)至少包含兩種核心。下面將圍繞每一類核心處理器在邊緣計(jì)算方面的優(yōu)缺點(diǎn)進(jìn)行對(duì)比分析,指出傳統(tǒng)計(jì)算平臺(tái)在邊緣智能計(jì)算中的優(yōu)勢(shì)與局限性,說明不同類型處理器之間存在互補(bǔ)性。然后從指令模型、通訊機(jī)制與存儲(chǔ)體系三個(gè)方面梳理核心處理器的關(guān)鍵技術(shù)發(fā)展脈絡(luò),得益于這些關(guān)鍵技術(shù)的突破,傳統(tǒng)計(jì)算平臺(tái)的能力得到飛速提升,也使得綜合了多核心優(yōu)勢(shì)的異構(gòu)計(jì)算平臺(tái)大量涌現(xiàn)。
在計(jì)算芯片的發(fā)展過程中,每一類核心處理器均形成了各自的獨(dú)特優(yōu)勢(shì),分別在不同領(lǐng)域中起到了不可代替的作用,不能籠統(tǒng)地下結(jié)論去判定孰強(qiáng)孰弱。而在同一領(lǐng)域中,以各處理器為核心的傳統(tǒng)計(jì)算平臺(tái)的優(yōu)缺點(diǎn)是具有可比性的[5],因此本文以邊緣計(jì)算和深度學(xué)習(xí)智能算法的應(yīng)用為牽引,對(duì)傳統(tǒng)計(jì)算平臺(tái)進(jìn)行對(duì)比,結(jié)果如表1所示。
各類傳統(tǒng)計(jì)算平臺(tái)對(duì)于邊緣智能計(jì)算的優(yōu)勢(shì)側(cè)重明顯,且算力與功耗的矛盾突出。ARM采用單指令多數(shù)據(jù)技術(shù)、高級(jí)微控制器總線架構(gòu)和存儲(chǔ)層次系統(tǒng),DSP采用超長(zhǎng)指令集、直接存儲(chǔ)訪問和便箋式存儲(chǔ)器,使得多核間通信速率大幅提升,側(cè)重于不同網(wǎng)絡(luò)層之間的信息交互,諸如串行遞歸、分支等操作能夠高效實(shí)現(xiàn),但是在功耗方面開銷較大。ARM和DSP在多核實(shí)現(xiàn)上優(yōu)勢(shì)明顯,能應(yīng)用于小型網(wǎng)絡(luò)部署,但對(duì)網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜的中大型網(wǎng)絡(luò)支持不足,多用于神經(jīng)網(wǎng)絡(luò)的編解碼過程。GPU采用單指令多線程技術(shù)、共享內(nèi)存通訊和共享存儲(chǔ)器,實(shí)現(xiàn)密集數(shù)據(jù)的高精度并行計(jì)算,側(cè)重于大量浮點(diǎn)矩陣乘加計(jì)算的加速,但能耗大,且不利于數(shù)據(jù)傳輸頻繁、多次少量情況下的計(jì)算加速。FPGA片上內(nèi)存豐富,采用脈動(dòng)陣列技術(shù)通訊,節(jié)省外部?jī)?nèi)存讀取所需的功耗,同時(shí)實(shí)現(xiàn)了數(shù)據(jù)搬運(yùn)計(jì)算過程中的低群時(shí)延,側(cè)重于數(shù)據(jù)吞吐量大的計(jì)算密集型任務(wù)的部署。ASIC采用針對(duì)神經(jīng)網(wǎng)絡(luò)的專用指令集、特殊定制的數(shù)據(jù)通信機(jī)制和分布式片上內(nèi)存,RISC-V人工智能芯片采用其同名精簡(jiǎn)指令集,是ASIC的一個(gè)特例,二者在提升邊緣智能計(jì)算算力的同時(shí)保持了低功耗,局限性在于關(guān)鍵技術(shù)經(jīng)過定制化地裁剪后芯片的通用程度受限。GPU[6-7]、FPGA[8]和ASIC[9-10]在并行實(shí)現(xiàn)上優(yōu)勢(shì)明顯,能夠應(yīng)用于邊緣側(cè)的推理,對(duì)于中大型網(wǎng)絡(luò)部署有很大優(yōu)勢(shì)。在功耗方面,F(xiàn)PGA、ASIC和RISC-V定制化程度較高,能量損耗經(jīng)過優(yōu)化,功耗相較ARM、DSP和GPU處理器小。
表1傳統(tǒng)計(jì)算平臺(tái)對(duì)比分析Table 1 Comparison and analysis of traditional computing platforms
由此可見,不論是在對(duì)邊緣智能算法的適應(yīng)性方面、算力方面,還是功耗方面,傳統(tǒng)計(jì)算平臺(tái)在邊緣智能計(jì)算中的優(yōu)勢(shì)各有側(cè)重,且局限性明顯,一味地針對(duì)某種單一傳統(tǒng)計(jì)算平臺(tái)進(jìn)行優(yōu)化,并不能達(dá)到算力與功耗的最佳效果,二者的矛盾問題依舊突出。因此,為了消除“木桶效應(yīng)”,更好地適配深度學(xué)習(xí)智能算法,同時(shí)考慮邊側(cè)設(shè)備對(duì)功耗的約束,平衡算力與功耗,在面向邊緣智能計(jì)算時(shí),計(jì)算平臺(tái)的核心處理器芯片往往采用多種類型組合的方式,即異構(gòu)形式,許多單芯片往往也是采用定制化的異構(gòu)方式實(shí)現(xiàn),進(jìn)一步提升能耗比[11],緩和算力與功耗之間的矛盾。
以深度學(xué)習(xí)為代表的智能計(jì)算具有網(wǎng)絡(luò)結(jié)構(gòu)多樣、網(wǎng)絡(luò)層數(shù)和參數(shù)龐大,以及對(duì)硬件資源的需求復(fù)雜多元等特點(diǎn),而邊緣智能計(jì)算面臨的主要問題是算力與功耗的矛盾。傳統(tǒng)計(jì)算平臺(tái)的能/耗平衡與晶體管工藝、處理器核數(shù)量、指令模型、通訊機(jī)制和存儲(chǔ)體系等因素均有直接關(guān)系,其往往通過提升晶體管工藝、增加處理器核數(shù)量、優(yōu)化指令模型、優(yōu)化通訊機(jī)制以及優(yōu)化存儲(chǔ)體系等方法來提升能耗比,以適應(yīng)邊緣智能計(jì)算的需求。其中,提升晶體管工藝和增加處理器核數(shù)量的方式大多針對(duì)單核或多核同構(gòu)架構(gòu)處理器,而指令模型、通訊機(jī)制與存儲(chǔ)體系的發(fā)展不僅在傳統(tǒng)計(jì)算平臺(tái)能力提升中發(fā)揮了巨大的作用,在異構(gòu)平臺(tái)的技術(shù)發(fā)展脈絡(luò)中同樣具有代表性。因此,下面將從指令模型、通訊機(jī)制與存儲(chǔ)體系這三個(gè)方面,闡述技術(shù)發(fā)展過程,總結(jié)這三個(gè)方面的發(fā)展成果與存在的不足。
1.2.1 指令模型
指令模型關(guān)鍵技術(shù)如表2所示[12-22]。指令模型的發(fā)展主要體現(xiàn)在指令模型方面的進(jìn)步主要體現(xiàn)在指令并行度、數(shù)據(jù)并行度以及代碼密度的提高,有利于減少神經(jīng)網(wǎng)絡(luò)中一個(gè)神經(jīng)元操作需要用到的指令數(shù)量,提高計(jì)算速度。同時(shí),各指令模型在其對(duì)應(yīng)平臺(tái)上的優(yōu)勢(shì)逐漸突出。然而,每一種指令模型均存在其局限性,影響算力的穩(wěn)定。例如:SIMD的計(jì)算受算術(shù)邏輯單元的位寬限制,并且要求計(jì)算量盡可能是向量維數(shù)的整數(shù)倍,否則會(huì)造成算力的浪費(fèi);VLIW不能確定指令執(zhí)行時(shí)延且代碼密度低,在寄存器連接和譯碼/控制方面開銷大;SIMT在線程數(shù)量多時(shí)對(duì)分支計(jì)算的加速效率低下等,這些問題依舊是邊緣智能計(jì)算的底層優(yōu)化加速的挑戰(zhàn)。
表2 指令模型關(guān)鍵技術(shù)Table 2 Key technologies of instruction model
1.2.2 通訊機(jī)制
通訊機(jī)制關(guān)鍵技術(shù)如表3所示[23-29]。通訊機(jī)制的優(yōu)化主要體現(xiàn)在數(shù)據(jù)的傳輸速率和重用率得到有效提高,從而降低了智能算法在邊緣計(jì)算時(shí)的數(shù)據(jù)通訊時(shí)間,節(jié)約了功耗,傳統(tǒng)計(jì)算平臺(tái)上的數(shù)據(jù)通信控制變得輕量化,有利于加速神經(jīng)網(wǎng)絡(luò)中的數(shù)據(jù)傳遞。但現(xiàn)有通訊機(jī)制仍存在部分缺點(diǎn),會(huì)降低通訊速率,從而對(duì)計(jì)算平臺(tái)的算力造成影響。例如:AXI4總線技術(shù)寫數(shù)據(jù)通道不支持亂序發(fā)送,DMA與處理器仍然存在競(jìng)爭(zhēng)訪問總線的情況,傳統(tǒng)脈動(dòng)陣列無法處理多周期操作等,片內(nèi)通訊機(jī)制仍具有改進(jìn)空間。
表3 通訊機(jī)制關(guān)鍵技術(shù)Table 3 Key technologies of communication mechanism
1.2.3 存儲(chǔ)體系
存儲(chǔ)體系關(guān)鍵技術(shù)如表4所示[30-35]。存儲(chǔ)體系的發(fā)展主要體現(xiàn)在訪存速度的提升,訪存時(shí)延的降低以及訪存功率的減小,有利于降低神經(jīng)網(wǎng)絡(luò)相關(guān)算法中數(shù)據(jù)讀寫對(duì)整個(gè)計(jì)算過程的影響,降低數(shù)據(jù)讀寫功耗占整個(gè)網(wǎng)絡(luò)計(jì)算功耗的比重。但是,存儲(chǔ)層次系統(tǒng)在功耗方面,Cache的面積和功耗一般會(huì)占到整個(gè)芯片的四分之一至一半,在端側(cè)設(shè)備中更甚;在算力方面,其命中率不易預(yù)測(cè)精確,難以滿足邊緣智能計(jì)算中硬實(shí)時(shí)處理系統(tǒng)的要求。而便箋式存儲(chǔ)器存在動(dòng)態(tài)數(shù)據(jù)分配問題[36],數(shù)據(jù)分配方案有待優(yōu)化。
表4 存儲(chǔ)體系關(guān)鍵技術(shù)Table 4 Key technologies of storage system
以上三類關(guān)鍵技術(shù)的發(fā)展過程,正是各個(gè)傳統(tǒng)計(jì)算平臺(tái)為了適應(yīng)邊緣智能計(jì)算應(yīng)用需求,即為了提高算力、降低功耗而不斷優(yōu)化的過程,同時(shí)這些關(guān)鍵技術(shù)在異構(gòu)平臺(tái)中也得到了廣泛的應(yīng)用,對(duì)異構(gòu)平臺(tái)速度/能耗比的提升產(chǎn)生了很大的影響。
異構(gòu)平臺(tái)是指不同種類計(jì)算單元的組織形式、資源配置、通信機(jī)制以及互聯(lián)關(guān)系的整體性描述,是承載異構(gòu)計(jì)算[37]的硬件平臺(tái)系統(tǒng)規(guī)范性表達(dá)。異構(gòu)并行計(jì)算平臺(tái)是傳統(tǒng)計(jì)算平臺(tái)的組合,主要包括CPU+FPGA組合、CPU+GPU組合,以及基于ASIC和RICS-V的人工智能芯片。相對(duì)于單一處理器計(jì)算平臺(tái)(即單核或同構(gòu)多核[38]計(jì)算平臺(tái))而言,它包含兩種及兩種以上的控制/計(jì)算單元,使用不同類型的指令集,在計(jì)算處理過程中,需要運(yùn)用并行的編程方法,使多種類型的處理器同時(shí)進(jìn)行控制/計(jì)算,從而有效發(fā)揮每一種處理器的優(yōu)勢(shì),提高計(jì)算能力、增強(qiáng)可擴(kuò)展性和減少計(jì)算資源浪費(fèi),達(dá)到計(jì)算性能和資源消耗最優(yōu)化的目的。由此,異構(gòu)并行計(jì)算平臺(tái)在要求高性能、低功耗的實(shí)時(shí)處理應(yīng)用中展現(xiàn)出了優(yōu)越性,更加適合智能算法的邊緣實(shí)現(xiàn)。目前,國(guó)內(nèi)外已經(jīng)有相當(dāng)可觀數(shù)量的研究將深度學(xué)習(xí)算法,特別是深度學(xué)習(xí)中的推斷部分,移植至異構(gòu)平臺(tái)完成[39-43]。
下面將分別列舉異構(gòu)并行計(jì)算平臺(tái)的典型代表,對(duì)比分析運(yùn)算速度和功耗等技術(shù)指標(biāo),介紹它們?cè)谶吘壷悄苡?jì)算中的典型應(yīng)用。
基于CPU+FPGA的異構(gòu)平臺(tái)包括ARM與FPGA的組合和DSP與FPGA的組合。其中,ARM與FPGA的組合對(duì)應(yīng)的代表芯片為賽靈思公司的Zynq7000系列,而DSP與FPGA的組合的代表產(chǎn)品為創(chuàng)龍科技的TL6678FEasyEVM評(píng)估板。
(1)ARM與FPGA組合
ARM+FPGA組合以賽靈思Zynq7000系列為例,其由兩個(gè)ARM Cortex-A9核心與Artix-7/Kintex-7型號(hào)的FPGA組合而成。為使兩種處理器緊密結(jié)合,該芯片提供了三種通訊機(jī)制,分別是DMA、AXI技術(shù)和內(nèi)存共享。關(guān)于DMA,賽靈思為其FPGA封裝了DMA邏輯IP核,使得原本只能在ARM或DSP一類同構(gòu)處理器上使用的DMA通訊技術(shù),也能用于ARM+FPGA異構(gòu)平臺(tái),有利于實(shí)現(xiàn)ARM與FPGA之間的快速數(shù)據(jù)交換,進(jìn)而充分發(fā)揮二者在算力和功耗上的優(yōu)勢(shì)。此外,賽靈思致力于將ARM和FPGA集成于一個(gè)芯片內(nèi),減小芯片面積,并且提供Vivado Design Suite/Xilinx Vitis系列完整開發(fā)套件,為開發(fā)人員提供高性能、低功耗的同時(shí)保障設(shè)計(jì)編程的靈活性。Zynq7000系列中XC7Z020型號(hào)芯片的技術(shù)指標(biāo)如表5所示。
表5 賽靈思XC7Z020系列技術(shù)規(guī)格Table 5 Specific of Xilinx XC7Z020 series technology
ARM+FPGA組合適用于深度學(xué)習(xí)圖像分類識(shí)別、目標(biāo)檢測(cè)與跟蹤和視頻監(jiān)測(cè)等相關(guān)算法的實(shí)時(shí)實(shí)現(xiàn)[44],支持VGG、YOLOv3、CNN和剪枝后的DNN網(wǎng)絡(luò)的部署[45]。ARM與FPGA分工明確,高效配合,F(xiàn)PGA負(fù)責(zé)神經(jīng)網(wǎng)絡(luò)中卷積操作等并行計(jì)算部分的部署,ARM負(fù)責(zé)權(quán)重的更新、網(wǎng)絡(luò)訓(xùn)練的控制算法[46]以及其他簡(jiǎn)單的分支、迭代算法,其應(yīng)用方向?yàn)楦呒?jí)駕駛員輔助系統(tǒng)、專業(yè)相機(jī)和機(jī)器視覺系統(tǒng)等。
(2)DSP與FPGA組合
DSP+FPGA組合以創(chuàng)龍科技TL6678F-EasyEVM評(píng)估板為例,其是基于FPGA+多核DSP平臺(tái)的高端異構(gòu)多核開發(fā)板,兩種處理器分別位于獨(dú)立的芯片內(nèi),然后集成在一塊電路板上,芯片之間的通訊機(jī)制為SRIO、EMIF16以及I2C總線。在該異構(gòu)平臺(tái)上,雖然兩類處理器之間的聯(lián)系沒有賽靈思系列芯片密切,通訊效率較低,但是靈活性強(qiáng),可擴(kuò)展性好。每個(gè)DSP核心的主頻為1.0 GHz/1.25 GHz,工作在1.25 GHz時(shí)單核定點(diǎn)運(yùn)算速度為40 GMACS,單核浮點(diǎn)運(yùn)算速度為20 GFLOPS。Kintex-7的運(yùn)算速度為2 845 GMACS。整體功耗控制在20 W以下,能耗比略高于XC7Z020芯片。其技術(shù)規(guī)格如表6所示。
表6 創(chuàng)龍科技TL6678F-EasyEVM技術(shù)規(guī)格Table 6 Specific of Tronlong TL6678F-EasyEVM technology
DSP+FPGA組合所適用的智能算法與所支持的神經(jīng)網(wǎng)絡(luò)與ARM+FPGA組合類似,二者不同之處在于DSP不僅可以負(fù)責(zé)網(wǎng)絡(luò)中的控制算法,還能夠應(yīng)用于系統(tǒng)中非神經(jīng)網(wǎng)絡(luò)部分的信號(hào)與信息處理相關(guān)任務(wù),F(xiàn)PGA依舊負(fù)責(zé)網(wǎng)絡(luò)中以數(shù)據(jù)計(jì)算為主的作業(yè)。其主要應(yīng)用方向?yàn)閺?fù)雜信號(hào)處理,如雷達(dá)探測(cè)、軟件無線電、光電探測(cè)、視頻追蹤和定位導(dǎo)航系統(tǒng)等。
在基于CPU+GPU的異構(gòu)平臺(tái)中CPU也可分為ARM和DSP。由于僅由DSP與GPU搭配的組合不多見,故此處僅介紹由ARM和GPU組成的異構(gòu)平臺(tái),其主要生產(chǎn)廠商為英偉達(dá)公司。下面以Nvidia Jetson TX2為例展開介紹。
Nvidia Jetson TX2中集成了一顆A57應(yīng)用處理器,一顆丹佛微處理器,以及一顆嵌入式的Pascal架構(gòu)圖形處理器。在指令架構(gòu)方面,Pascal圖形處理器升級(jí)了流處理器簇中的調(diào)度器,一個(gè)調(diào)度器在單周期內(nèi)能夠發(fā)起兩條指令,提高指令并行度。在通訊機(jī)制方面,為平衡軟硬件設(shè)計(jì)難度和數(shù)據(jù)傳輸效率,同構(gòu)的ARM核之間、GPU內(nèi)部以及異構(gòu)的ARM與GPU之間所采用的數(shù)據(jù)交換方式主要為內(nèi)存共享:兩個(gè)ARM處理器分別私有2 MB大小的二級(jí)緩存;GPU內(nèi)包含執(zhí)行引擎和拷貝引擎,其中,執(zhí)行引擎由兩個(gè)流處理器簇構(gòu)成,每個(gè)流處理器簇有128個(gè)流處理單元核,共享512 KB的二級(jí)緩存;ARM與GPU共享8 GB動(dòng)態(tài)隨機(jī)存儲(chǔ)器。這一機(jī)制有利于保證數(shù)據(jù)的傳輸速率和重用率,降低智能算法在邊緣計(jì)算時(shí)的數(shù)據(jù)通訊時(shí)間,進(jìn)而節(jié)約功耗。Nvidia Jetson TX2的具體技術(shù)指標(biāo)如表7所示。
表7 Nvidia Jetson TX2技術(shù)規(guī)格Table 7 Specific of Nvidia Jetson TX2 technology
ARM和GPU的組合適用于SVM、k-NN、k-Means和決策樹等機(jī)器學(xué)習(xí)算法的加速,可實(shí)現(xiàn)SSD、YOLO、Tiny-YOLO和CNN等神經(jīng)網(wǎng)絡(luò)的部署[47]。在實(shí)現(xiàn)Tiny-YOLO網(wǎng)絡(luò)時(shí),可將該網(wǎng)絡(luò)預(yù)處理、推斷和后處理等步驟流水線化,ARM與GPU處理器緊密配合,把預(yù)處理和后處理操作部署于ARM上,把推斷運(yùn)算部署于GPU上,完成異構(gòu)平臺(tái)對(duì)神經(jīng)網(wǎng)絡(luò)的協(xié)同處理[48]。其應(yīng)用方向?yàn)橹悄軝C(jī)器人、自動(dòng)化物流車輛、智能城市和水下無人機(jī)等。
由于ASIC不同于其他傳統(tǒng)計(jì)算平臺(tái),其計(jì)算單元根據(jù)特定的應(yīng)用場(chǎng)景而專門設(shè)計(jì),往往不會(huì)是單一架構(gòu),不能夠簡(jiǎn)單地劃分為某一特定類,故此處將ASIC作為異構(gòu)并行架構(gòu)再一次進(jìn)行介紹。下面列舉了三個(gè)典型的ASIC芯片或搭載ASIC芯片的加速卡,以及一個(gè)RISC-V人工智能芯片,并對(duì)其性能和應(yīng)用方向進(jìn)行說明和概括。
(1)英特爾Movidius Myriad X VPU
Movidius Myriad X VPU中包含一個(gè)“神經(jīng)計(jì)算引擎”,該神經(jīng)計(jì)算引擎內(nèi)嵌大量乘加單元,而且在存儲(chǔ)體系方面,將內(nèi)存結(jié)構(gòu)進(jìn)行專門優(yōu)化,乘加單元與內(nèi)存直接相連,實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的快速計(jì)算,緩解內(nèi)存墻的瓶頸。該處理器在推理階段的神經(jīng)網(wǎng)絡(luò)計(jì)算能力提高到9 160億次/s,且支持浮點(diǎn)16位和定點(diǎn)8位數(shù)據(jù)計(jì)算,能夠在深度神經(jīng)網(wǎng)絡(luò)推理上達(dá)到超過1 TOPS的計(jì)算性能,提供超過40 000億次/s運(yùn)算的總體性能,其技術(shù)規(guī)格表如表8所示。
表8 英特爾Movidius Myriad X視覺處理單元技術(shù)規(guī)格Table 8 Specific of Intel Movidius Myriad X visual processing unit technology
Movidius Myriad X VPU適用于CNN等常用深度神經(jīng)網(wǎng)絡(luò)的加速,支持基于Caffe和TensorFlow機(jī)器學(xué)習(xí)框架的移植和部署,可用于深度神經(jīng)網(wǎng)絡(luò)推理階段的硬件加速,其應(yīng)用方向?yàn)闊o人機(jī)、智能相機(jī)、智能家居、安全和VR/AR頭戴式耳機(jī)等設(shè)備[49]。
(2)寒武紀(jì)思元220 M.2人工智能加速卡
MLU220是寒武紀(jì)研發(fā)的一款專門用于邊緣計(jì)算應(yīng)用場(chǎng)景的人工智能加速產(chǎn)品,在指令模型方面,其采用針對(duì)智能算法定制的指令集,從而具有較高的能耗比。該加速卡理論峰值性能為8 TOPS,功耗僅為8.25 W,具有處理延時(shí)低和帶寬利用率高等優(yōu)勢(shì),可用于邊緣端設(shè)備的AI方案實(shí)現(xiàn)。思元220-M.2規(guī)格參數(shù)如表9所示。
表9 思元220-M.2參數(shù)規(guī)格Table 9 Specific of Cambricon MLU220-M.2 parameters
MLU220-M.2加速卡支持CNN、RMM和SOM等網(wǎng)絡(luò),可用于決策樹、SVM、k-NN等算法的加速,并可廣泛應(yīng)用于視覺、語音、自然語言處理和傳統(tǒng)機(jī)器學(xué)習(xí)的邊緣計(jì)算場(chǎng)景。
(3)華為海思昇騰310
昇騰310采用華為自研的Da Vinci架構(gòu),使用特殊的CISC指令集,這種指令集經(jīng)過了自定義和優(yōu)化,具有良好的可編程性,可靈活應(yīng)對(duì)深度學(xué)習(xí)算法的迭代更新。同時(shí),其集成大量、多類型的計(jì)算單元,例如標(biāo)量、矢量和張量等,單個(gè)核心在單個(gè)指令周期內(nèi)可以實(shí)現(xiàn)4 096次乘加計(jì)算,并且支持多種混合精度計(jì)算,既可用于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練階段,也可用于推理應(yīng)用中,在16位浮點(diǎn)數(shù)據(jù)類型下算力為8 TOPS,在8位定點(diǎn)數(shù)據(jù)類型下算力為16 TOPS,且最大功耗僅為8 W,是一款高能效、靈活可編程的AI處理器,適用領(lǐng)域廣泛。關(guān)鍵特性如表10所示。
表10 海思昇騰310關(guān)鍵特性Table 10 Key specific of Hisilicon Ascend 310
昇騰310可用于統(tǒng)計(jì)學(xué)習(xí)、深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)等典型機(jī)器學(xué)習(xí)算法的加速,支持CNN和DNN網(wǎng)絡(luò),以及TensorFlow、MindSpore機(jī)器學(xué)習(xí)框架[50],其應(yīng)用方向平安城市、自動(dòng)駕駛、云業(yè)務(wù)和IT智能、智能制造、機(jī)器人、便攜機(jī)、智能手機(jī)、智能手表等應(yīng)用。
(4)嘉楠科技勘智K210芯片
勘智K210的中央處理器為帶有浮點(diǎn)運(yùn)算單元的64位雙核RISC-V架構(gòu),具有輕量化的指令集結(jié)構(gòu)以及配套工具鏈,其芯片功耗為0.3 W,典型設(shè)備功耗1 W,算力1 TOPS,靈活適配邊緣測(cè)場(chǎng)景需求,芯片自帶SRAM和離線數(shù)據(jù)庫,可在設(shè)備本地完成數(shù)據(jù)的處理和存儲(chǔ)。其參數(shù)規(guī)格如表11所示。
表11 勘智K210參數(shù)規(guī)格Table 11 Specific of Canaan Kendryte K210 parameters
此外,勘智K210支持TensorFlow、Keras和Darknet等深度學(xué)習(xí)框架,可用于剪枝后的TinyYOLO系列神經(jīng)網(wǎng)絡(luò)的部署[51],以及機(jī)器視覺與機(jī)器聽覺多模態(tài)識(shí)別等算法的加速,其應(yīng)用方向?yàn)橹悄芗揖?,如人臉門鎖系統(tǒng);智能園區(qū),如無感門禁系統(tǒng)和智能考勤機(jī);智能能耗,如智能抄表系統(tǒng),以及智能農(nóng)業(yè)等。
本章首先從算力和功耗適配等角度,對(duì)典型異構(gòu)平臺(tái)進(jìn)行對(duì)比分析,并針對(duì)不同條件給出了異構(gòu)平臺(tái)的選擇建議。然后,從速度/能耗比、并行效率、體積/面積和開發(fā)生態(tài)的角度,對(duì)異構(gòu)平臺(tái)與傳統(tǒng)計(jì)算平臺(tái)進(jìn)行對(duì)比分析,進(jìn)一步闡述異構(gòu)相對(duì)于傳統(tǒng)平臺(tái)的優(yōu)勢(shì)。最后,提出了異構(gòu)并行計(jì)算平臺(tái)在指令模型、通訊機(jī)制、存儲(chǔ)體系以及開發(fā)生態(tài)四個(gè)方面的關(guān)鍵技術(shù)挑戰(zhàn)。
為了更直觀地比較各平臺(tái)的運(yùn)算速度、功耗等性能指標(biāo),將第2章中列舉的各平臺(tái)典型代表的技術(shù)參數(shù)匯總?cè)绫?2所示。
表12 異構(gòu)平臺(tái)的對(duì)比分析匯總Table 12 Summary of comparative analysis on heterogeneous platform
在運(yùn)算速度方面,華為海思昇騰Ascend 310芯片最快,其運(yùn)算速度高達(dá)16 TOPS;其次是寒武紀(jì)MLU220-M.2邊緣人工智能加速卡、英特爾Movidius Myriad X、創(chuàng)龍科技TL6678F-EasyEVM、英偉達(dá)Nvidia Jetson TX2和勘智K210;賽靈思XC7Z020的運(yùn)算速度最慢,僅為230 GOPS。在功耗方面,勘智K210最低,僅需0.3 W;其次是英特爾Movidius Myriad X、賽靈思XC7Z020、英偉達(dá)Jetson TX2、華為海思昇騰310和寒武紀(jì)MLU220-M.2;創(chuàng)龍科技TL6678F-EasyEVM功耗最高,全速工作時(shí)功耗為19.26 W。
速度/能耗比是判斷處理器算力與功耗的平衡度的常見指標(biāo),各異構(gòu)平臺(tái)典型代表的速度/能耗比的比較如圖1所示。
圖1 速度/能耗比對(duì)比圖Fig.1 Comparison illustration of speed/power ratio
在速度/能耗比的對(duì)比中,ASIC類型的處理器相較非ASIC類的異構(gòu)平臺(tái)明顯更優(yōu),其中勘智K210排第一,速度/能耗比達(dá)到了3 000 GOPS/W以上,其次才是CPU+GPU異構(gòu)平臺(tái)NvidiaJetson TX2,速度/能耗比最低的是CPU+FPGA異構(gòu)平臺(tái)創(chuàng)龍科技TL6678FEasyEVM和XilinxXC7Z020。其中原因?yàn)锳SIC在指令模型、通訊機(jī)制以及存儲(chǔ)體系等方面專門針對(duì)邊緣智能計(jì)算的特點(diǎn)進(jìn)行優(yōu)化設(shè)計(jì),總是傾向于將速度/能耗比做到極致,其缺點(diǎn)是通用性不高。后兩者優(yōu)勢(shì)在于通用性強(qiáng),可編程性強(qiáng),研發(fā)周期較短。由于在性能差不多的前提下,F(xiàn)PGA功耗小于GPU功耗,故CPU+FPGA的平臺(tái)的速度/能耗比應(yīng)該要比CPU+GPU的平臺(tái)更高,本文結(jié)果與該結(jié)論相反,是因?yàn)樵谶x取對(duì)應(yīng)平臺(tái)的典型代表時(shí),CPU+GPU異構(gòu)平臺(tái)選取的是英偉達(dá)的高級(jí)人工智能終端計(jì)算解決方案,為了令其產(chǎn)品適用于邊緣智能計(jì)算,對(duì)GPU進(jìn)行了CUDA核數(shù)量的刪減以及其他優(yōu)化手段,而CPU+FPGA異構(gòu)平臺(tái)選取的是賽靈思XC7Z020芯片,這款芯片搭載的FPGA并非性能最高級(jí)別,且沒有針對(duì)智能算法做過專門優(yōu)化,導(dǎo)致最后的計(jì)算結(jié)果偏低。
然而,在邊緣部署智能算法之前,不能一味地追求高算力或低功耗,需要綜合性地考慮多個(gè)指標(biāo)參數(shù),大多數(shù)時(shí)候需要尋求算力與功耗的平衡。此外,處理器的體積/面積和開發(fā)的便利(如軟件開發(fā)生態(tài)等)有時(shí)也需要納入考慮范圍,其相關(guān)參數(shù)在表12中也有對(duì)應(yīng)體現(xiàn)。處理器的體積/面積在某些對(duì)重量、面積敏感的應(yīng)用領(lǐng)域會(huì)有較大影響,如無人機(jī)等,這些應(yīng)用領(lǐng)域要求處理器體積和重量越小越輕越好;軟件開發(fā)生態(tài)是否完善關(guān)系到整個(gè)開發(fā)過程中的難易程度和開發(fā)周期,非AISC類異構(gòu)平臺(tái)的軟件開發(fā)生態(tài)一般比ASIC類異構(gòu)平臺(tái)的軟件開發(fā)生態(tài)要成熟。
綜上分析,在一般情況下建議使用CPU+FPGA和CPU+GPU這類組合式架構(gòu)來進(jìn)行邊緣智能計(jì)算的加速,它們的通用性強(qiáng),可重構(gòu)性強(qiáng),若涉及到信號(hào)或信息處理相關(guān)任務(wù),其中CPU選擇為DSP會(huì)更加合適;若應(yīng)用領(lǐng)域?qū)τ?jì)算平臺(tái)的功耗要求比較嚴(yán)格,則建議適用FPGA相關(guān)的異構(gòu)平臺(tái);若相關(guān)算法要求開發(fā)周期短、更新迭代速度快,則建議使用GPU相關(guān)的異構(gòu)平臺(tái)。當(dāng)應(yīng)用環(huán)境對(duì)算力和功耗要求都很高時(shí),優(yōu)先考慮ASIC計(jì)算平臺(tái),與此同時(shí),如果待部署的智能算法已經(jīng)比較成熟,則可以直接選用市面上已有的ASIC處理器,其開發(fā)套件中一般包含典型智能算法的例程,可以縮短開發(fā)時(shí)間,否則研發(fā)周期長(zhǎng)會(huì)大幅拉長(zhǎng)。
總而言之,不論是在運(yùn)算速度方面還是功耗方面,ASIC芯片均更勝一籌,但該類芯片設(shè)計(jì)難度高,研發(fā)周期長(zhǎng),通用程度不高,故目前在邊緣智能計(jì)算中使用更為廣泛的仍然是CPU+FPGA和CPU+GPU這類組合式平臺(tái)。此外,RISC-V作為新興的精簡(jiǎn)指令集架構(gòu),以其開源的絕對(duì)優(yōu)勢(shì)吸引了全球范圍內(nèi)大批芯片廠商投入其中,并且已經(jīng)取得了顯著成果。建議一般情況下優(yōu)先選取CPU+FPGA和CPU+GPU類型的異構(gòu)平臺(tái),再全面考慮運(yùn)算速度、功耗、體積/面積、軟件開發(fā)生態(tài)和應(yīng)用領(lǐng)域等綜合條件,選擇具體處理器的組合形式。
為進(jìn)一步說明異構(gòu)平臺(tái)相對(duì)于傳統(tǒng)平臺(tái)的優(yōu)勢(shì),本小節(jié)從速度/能耗比、并行效率、體積/面積和開發(fā)生態(tài)四個(gè)角度,將異構(gòu)平臺(tái)與傳統(tǒng)計(jì)算平臺(tái)進(jìn)行了對(duì)比分析。對(duì)比結(jié)果如表13所示。異構(gòu)平臺(tái)在滿足邊緣智能計(jì)算多元需求時(shí)相對(duì)于傳統(tǒng)計(jì)算平臺(tái)更具優(yōu)勢(shì)。
表13 異構(gòu)平臺(tái)與傳統(tǒng)計(jì)算平臺(tái)對(duì)比Table 13 Comparison of heterogeneous and traditional computing platforms
在速度/能耗比方面,異構(gòu)平臺(tái)優(yōu)于傳統(tǒng)計(jì)算平臺(tái)。異構(gòu)平臺(tái)結(jié)合多類處理器的在算力與功耗上的優(yōu)勢(shì),極大程度地緩和了傳統(tǒng)計(jì)算平臺(tái)上算力與功耗的矛盾,提高了速度/能耗比。在并行效率方面,異構(gòu)平臺(tái)高于傳統(tǒng)計(jì)算平臺(tái)。相對(duì)于傳統(tǒng)單一處理器而言,異構(gòu)平臺(tái)包含兩種或兩種以上的控制/計(jì)算單元,需要使用并行的編程方法進(jìn)行異構(gòu)計(jì)算,使得多種類型的處理器同時(shí)參與程序控制和數(shù)據(jù)計(jì)算,有效地提升了并行效率。在體積/面積方面,異構(gòu)平臺(tái)對(duì)應(yīng)的產(chǎn)品大小一般情況下大于傳統(tǒng)計(jì)算平臺(tái)。對(duì)于組合類型的異構(gòu)平臺(tái)而言兩種異構(gòu)類型,一種是分立式的異構(gòu),即將兩種及以上單獨(dú)制造的處理器芯片集成在一塊印刷電路板上(以創(chuàng)龍科技的TL6678F-EasyEVM核心板為例);另一種是聯(lián)合封裝式的異構(gòu),即在一顆芯片內(nèi)集成多種處理單元(以賽靈思XC7Z020芯片為例)。雖然這兩種異構(gòu)方式實(shí)現(xiàn)難易程度不同,但本質(zhì)上都是傳統(tǒng)處理器的組合相加,因此產(chǎn)品的體積/面積更大。而ASIC類型的異構(gòu)平臺(tái),為滿足特殊邊緣智能計(jì)算場(chǎng)景的需求,能夠通過定制化的工藝將芯片面積縮小,部分產(chǎn)品體積/面積甚至能夠做到比傳統(tǒng)單一處理器芯片更小。在開發(fā)生態(tài)方面,傳統(tǒng)計(jì)算平臺(tái)的軟件開發(fā)生態(tài)已基本成熟,而對(duì)于異構(gòu)平臺(tái),雖然每個(gè)半導(dǎo)體芯片廠商為其產(chǎn)品均配有相應(yīng)的開發(fā)套件,但是這些開發(fā)套件對(duì)智能計(jì)算支持的完備程度不一,使用的難易程度也不同。例如,賽靈思的Vitis開發(fā)套件有固定頻率的維護(hù)更新,正不斷提高對(duì)開發(fā)人員的友好程度,趨于完善,而新興ASIC類異構(gòu)芯片的開發(fā)生態(tài)還只是初具雛形,需要不斷發(fā)展。
為了解決邊緣智能計(jì)算中算力與功耗的矛盾問題,應(yīng)對(duì)以深度學(xué)習(xí)為代表的智能算法在邊側(cè)實(shí)現(xiàn)時(shí)對(duì)算力資源復(fù)雜多元的需求,傳統(tǒng)計(jì)算平臺(tái)經(jīng)過指令模型、通訊機(jī)制和存儲(chǔ)體系方面的優(yōu)化,提升了運(yùn)算速度,減少了能量損耗,增強(qiáng)了對(duì)深度學(xué)習(xí)算法的適應(yīng)性。然而,比起傳統(tǒng)計(jì)算平臺(tái),異構(gòu)并行計(jì)算平臺(tái)不僅需要持續(xù)在指令模型方面提高指令、數(shù)據(jù)并行度以及代碼密度;在通訊機(jī)制方面增加數(shù)據(jù)的傳輸速率和重用率;在存儲(chǔ)體系方面提升訪存速度,減小訪存時(shí)延的降低以及訪存功率等,還呈現(xiàn)出了一系列新的問題與挑戰(zhàn)。
指令模型問題。目前,盡管不同架構(gòu)的處理器已經(jīng)能夠被集成到同一塊芯片中,但它們所使用的指令模型卻仍然不同,沒有從根本上解決執(zhí)行模型的兼容問題,異構(gòu)并行計(jì)算過程中任務(wù)管理困難,開發(fā)難度增加。專用指令集的發(fā)展有助于解決這一問題,但其通用程度不高,應(yīng)用范圍受限。如何設(shè)計(jì)一個(gè)統(tǒng)一且通用的指令模型,實(shí)現(xiàn)片上異構(gòu)處理器的深度融合,為異核任務(wù)管理提供支撐,為研發(fā)人員進(jìn)一步提供開發(fā)的便利是異構(gòu)并行計(jì)算平臺(tái)在技術(shù)發(fā)展中的重大挑戰(zhàn)。
通訊機(jī)制問題。深度學(xué)習(xí)相關(guān)算法多為數(shù)據(jù)密集型算法,要求訪存帶寬大、延遲小,否則易面臨存儲(chǔ)墻的問題。而邊緣計(jì)算受到功耗的嚴(yán)苛約束,對(duì)片內(nèi)通訊機(jī)制則提出了更高的要求:數(shù)據(jù)通信機(jī)制必須足夠輕量化。除了通過提高片上數(shù)據(jù)的重用率和減少運(yùn)算中的訪存需求等方式降低系統(tǒng)的能耗外,還要考慮如何利用異構(gòu)處理器之間的互補(bǔ)性,實(shí)現(xiàn)數(shù)據(jù)的均衡負(fù)載,最小化通信量,以及考慮如何保證不同處理器在執(zhí)行過程中密切協(xié)同,以低延遲高帶寬的數(shù)據(jù)交換將整體芯片計(jì)算性能最大化。因此,通訊機(jī)制的輕量化是邊緣智能計(jì)算中的關(guān)鍵研究問題。
存儲(chǔ)體系問題。不同于云計(jì)算,邊緣計(jì)算受集成電路板面積的限制,所使用的存儲(chǔ)芯片通常不會(huì)很大,片上存儲(chǔ)更是如此,這意味著在邊緣計(jì)算中存儲(chǔ)資源非常有限,所以,優(yōu)秀的存儲(chǔ)體系需要最大化片上存儲(chǔ)的使用率,其中如何持續(xù)提高高速緩存的命中率是存儲(chǔ)體系設(shè)計(jì)中的挑戰(zhàn)之一。此外,在異構(gòu)并行計(jì)算平臺(tái)中,由于不同架構(gòu)的處理器可能使用不同的高速緩存結(jié)構(gòu)、高速緩存一致性協(xié)議以及訪存方式,所以需要一種靈活的存儲(chǔ)體系對(duì)異構(gòu)處理器之間的訪存干涉進(jìn)行管理。其中,加強(qiáng)對(duì)多級(jí)存儲(chǔ)層次分配的軟硬件協(xié)同管理的研究至關(guān)重要,使軟件與硬件兩種存儲(chǔ)管理方式相互配合,充分發(fā)揮軟件管理的靈活性和硬件管理的高效性是存儲(chǔ)體系設(shè)計(jì)中的另一個(gè)挑戰(zhàn)。
開發(fā)生態(tài)問題。研發(fā)人員在使用異構(gòu)并行計(jì)算平臺(tái)進(jìn)行智能算法實(shí)現(xiàn)過程中可以很明顯地察覺到,不同類型的處理器其應(yīng)用程序接口、庫和操作系統(tǒng)服務(wù)不是統(tǒng)一的,而且目前沒有一種編程模型能夠適用于所有異構(gòu)系統(tǒng)。不統(tǒng)一的開發(fā)生態(tài)增加了研發(fā)人員的學(xué)習(xí)成本,給異構(gòu)并行計(jì)算平臺(tái)的應(yīng)用和普及帶來了困難,尤其是以ASIC為主的專用芯片。因此,為保證研發(fā)出來的芯片能夠落地使用,芯片廠商不僅需要在芯片算力和功耗上下功夫,還需要不斷完善自己的軟件生態(tài)系統(tǒng),研發(fā)相應(yīng)的編譯工具鏈、操作系統(tǒng)以及智能計(jì)算相關(guān)的核心軟件庫,擁有完備的開發(fā)環(huán)境的芯片才具有核心競(jìng)爭(zhēng)力,未來開發(fā)生態(tài)的設(shè)計(jì)將對(duì)異構(gòu)平臺(tái)的應(yīng)用產(chǎn)生深遠(yuǎn)的影響。
邊緣智能計(jì)算是學(xué)術(shù)界與工業(yè)界的研究熱點(diǎn)。異構(gòu)并行計(jì)算平臺(tái)充分利用不同類型處理器的特點(diǎn),在要求高算力低功耗的嵌入式領(lǐng)域中表現(xiàn)出絕對(duì)的優(yōu)勢(shì),成為邊緣智能計(jì)算落地的端側(cè)算力的首選。在開展某一智能算法的端側(cè)實(shí)現(xiàn)前,硬件方案的選擇非常重要,需要充分考慮算力、功耗、面積/體積、軟件開發(fā)生態(tài)以及應(yīng)用領(lǐng)域等因素,適配硬件計(jì)算平臺(tái)。本文對(duì)目前典型異構(gòu)平臺(tái)的代表計(jì)算平臺(tái)進(jìn)行了對(duì)比分析,旨在為開發(fā)人員提供選擇參考,加速算法的部署。此外,本文還從指令模型、通訊機(jī)制和存儲(chǔ)體系三個(gè)關(guān)鍵技術(shù)入手,對(duì)其發(fā)展脈絡(luò)進(jìn)行了全面的調(diào)查和總結(jié),提出了面向邊緣智能計(jì)算的異構(gòu)并行計(jì)算平臺(tái)在今后的發(fā)展過程中所需要面臨的關(guān)鍵技術(shù)挑戰(zhàn),旨在為該領(lǐng)域的研究人員帶來一定的啟發(fā)。
將異構(gòu)并行計(jì)算平臺(tái)應(yīng)用于邊緣化智能計(jì)算時(shí)間尚較短,其雖然是從傳統(tǒng)計(jì)算平臺(tái)中繼承發(fā)展而來的,但不能將其簡(jiǎn)單視為傳統(tǒng)計(jì)算平臺(tái)的排列組合。不論是異核的架構(gòu)的多樣性,還是邊緣智能計(jì)算問題的復(fù)雜性,都蘊(yùn)含了巨大的挑戰(zhàn)。如何選用且用好異構(gòu)平臺(tái),如何攻克關(guān)鍵技術(shù)難題,需要更多專家學(xué)者的參與和研究。