在本系列的前幾篇文章中 ( "人工智能引發(fā)能源問(wèn)題,我們?cè)撛趺崔k (一) “ 和”在 "人工智能引發(fā)能源問(wèn)題,我們?cè)撛趺崔k (二)"),我們討論了 Dennard Scaling 和摩爾定律的細(xì)目以及對(duì)專用和適應(yīng)性加速器的需求。然后,我們深入研究了功耗問(wèn)題,并討論了網(wǎng)絡(luò)壓縮的高級(jí)優(yōu)勢(shì)。
在這第三篇文章中,我們將探討專門構(gòu)建的“計(jì)算有效”神經(jīng)網(wǎng)絡(luò)模型的優(yōu)點(diǎn)和挑戰(zhàn)。
神經(jīng)網(wǎng)絡(luò)可以被歸類為一組大致模仿人腦建模方式的算法,能夠通過(guò)引入新數(shù)據(jù)來(lái)完成“學(xué)習(xí)”過(guò)程。事實(shí)上,開(kāi)發(fā)專用的“計(jì)算高效型”神經(jīng)網(wǎng)絡(luò)模型能提供大量?jī)?yōu)勢(shì)。然而,為了確保模型的有效性,需要考慮幾項(xiàng)關(guān)鍵需求。
關(guān)鍵點(diǎn)之一是在實(shí)現(xiàn)推斷加速器(或就此點(diǎn)而言,廣義的硬件加速器)時(shí)應(yīng)采用何種方式訪問(wèn)存儲(chǔ)器。在機(jī)器學(xué)習(xí) (ML) 推斷范疇內(nèi),我們特別需要考慮如何將權(quán)重和中間激活值一起存儲(chǔ)。過(guò)去幾年里已有多種方法投入使用并獲得不同程度的成功。相關(guān)的架構(gòu)選擇帶來(lái)的影響十分顯著:
時(shí)延:對(duì) L1、L2 和 L3 存儲(chǔ)器的訪問(wèn)表現(xiàn)出相對(duì)較低的時(shí)延。如果與下一個(gè)圖形運(yùn)算有關(guān)的權(quán)重和激活值被緩存起來(lái),那么我們就能保持合理水平的效率。然而,如果我們要從外部 DDR 提取數(shù)據(jù),就會(huì)發(fā)生流水線停頓,進(jìn)而影響時(shí)延和效率。
功耗:訪問(wèn)外部存儲(chǔ)器的能耗至少比訪問(wèn)內(nèi)部存儲(chǔ)器大一個(gè)數(shù)量級(jí)。
計(jì)算飽和:一般而言,應(yīng)用要么受計(jì)算限制,要么受存儲(chǔ)器限制。這可能會(huì)影響給定推斷范式中可實(shí)現(xiàn)的 GOP/TOP,而且在某些情況下,這種影響不可小視。如果被部署的具體網(wǎng)絡(luò)的實(shí)際性能是 1 TOP,那么使用能達(dá)到 10 TOP 峰值性能的推斷引擎價(jià)值就不大。
在此基礎(chǔ)上更進(jìn)一步,考慮到訪問(wèn)現(xiàn)代賽靈思器件里的內(nèi)部 SRAM(熟悉賽靈思 SoC 的人也稱其為 BRAM 或 UltraRAM)的能耗大約在幾微微焦耳,與訪問(wèn)外部 DRAM 的能耗相比,低大約兩個(gè)數(shù)量級(jí)。
我們可以考慮將 TPUv1 作為架構(gòu)示例。TPUv1 內(nèi)置有一個(gè) 65,536 INT8 MAC 單元,與 28MB 的片上存儲(chǔ)器結(jié)合,用于存儲(chǔ)中間激活值。權(quán)重從外部 DDR 提取。TPUv1 的理論峰值性能是 92 TOPS。
圖 1:TPUv1 架構(gòu)
參考資料:Jouppi 等,2017 年,https://arxiv.org/ftp/arxiv/papers/1704/1704.04760.pdf
TPU 是其中一種非常普遍的 Tensor 加速器。它使用復(fù)雜的編譯器來(lái)調(diào)度圖形運(yùn)算。這種 TPU 對(duì)于特定工作負(fù)載(引用 CNNO 的速率達(dá)到 86 TOPS)體現(xiàn)出極為優(yōu)異的吞吐效率。然而,CNN 的計(jì)算/內(nèi)存引用比低于 MLP 和 LSTM。因此我們可以看出這些特定的工作負(fù)載受存儲(chǔ)器限制。在必須將新權(quán)重加載到矩陣單元中時(shí),會(huì)導(dǎo)致流水線停頓,CNN1 性能也就會(huì)隨之劣化(14.1 TOPS)。
圖 2:各種網(wǎng)絡(luò)拓?fù)湎?TPUv1 的極限性能水平
參考資料:Jouppi 等,2017 年,
https://arxiv.org/ftp/arxiv/papers/1704/1704.04760.pdf
神經(jīng)網(wǎng)絡(luò)架構(gòu)對(duì)性能有巨大影響,而且對(duì)于選擇推斷解決方案而言,峰值性能指標(biāo)的價(jià)值微乎其微(除非我們能為需要加速的特定工作負(fù)載實(shí)現(xiàn)高水平的效率)。如今,眾多 SoC、ASSP 和 GPU 廠商繼續(xù)為 LeNet、AlexNet、VGG、GoogLeNet 和 ResNet 等經(jīng)典圖像分類模型推廣性能測(cè)試基準(zhǔn)。然而,圖像分類任務(wù)的實(shí)際用例數(shù)量有限,而許多時(shí)候這種模型只是用作對(duì)象檢測(cè)與分割等更復(fù)雜的任務(wù)的后臺(tái)特征提取器。
更貼近現(xiàn)實(shí)的實(shí)際可部署模型的示例包括對(duì)象檢測(cè)與分割。盡管眾多市售半導(dǎo)體器件標(biāo)榜可提供數(shù)十 TOP 的性能,而這又與不得不花長(zhǎng)時(shí)間為 YOLOv3 和 SSD 等網(wǎng)絡(luò)辛苦找尋正式的 IPS 性能基準(zhǔn)測(cè)試的現(xiàn)狀有何關(guān)聯(lián)?開(kāi)玩笑的說(shuō),如果只是要在云存儲(chǔ)中簡(jiǎn)單查找照片,比如找出您的貓的照片,我看這真不是什么問(wèn)題:
圖 3:作者收養(yǎng)的家貓“TumbleWeed”
大量開(kāi)發(fā)者在首次嘗試設(shè)計(jì)帶有 AI 功能的產(chǎn)品時(shí)往往以不能滿足性能要求而告終,迫使他們?cè)谠O(shè)計(jì)中途遷移到不同的架構(gòu)上。這不足為奇。如果這么做意味著需要同時(shí)對(duì) SOM 基板的軟硬件進(jìn)行重新構(gòu)建,難度將不可小覷。選擇賽靈思 SoC 的主要原因在于,與競(jìng)爭(zhēng)對(duì)手的解決方案不同的是,賽靈思推斷解決方案能在保持處理器和推斷加速器架構(gòu)不變的情況下,直接提供超過(guò)一個(gè)數(shù)量級(jí)的性能縮放。
2017 年谷歌的一個(gè)研發(fā)團(tuán)隊(duì)(Howard 等,《MobileNet:面向移動(dòng)視覺(jué)應(yīng)用的高效卷積神經(jīng)網(wǎng)絡(luò)》https://arxiv.org/pdf/1704.04861.pdf )發(fā)表了針對(duì)移動(dòng)應(yīng)用的一類新的模型。MobileNet 的優(yōu)勢(shì)在于它能在保持高精度水平的同時(shí),顯著降低計(jì)算成本。MobileNet 網(wǎng)絡(luò)采用的重大創(chuàng)新之一是深度可分卷積。在經(jīng)典卷積中,每個(gè)輸入通道對(duì)每個(gè)輸出通道都有影響。如果我們有 100 個(gè)輸入通道和 100 個(gè)輸出通道,就有 100x100 條虛擬路徑。然而對(duì)深度卷積而言,我們將卷積層劃分為 100 個(gè)群組,因此只得到 100 條路徑。每個(gè)輸入通道僅與一個(gè)輸出通道相連接,這樣就能節(jié)省大量計(jì)算。
圖 4:經(jīng)典卷積和深度卷積的連接方式
參考資料:Song Yao,Hotchips Hc30,第 8 節(jié):
https://www.hotchips.org/archives/2010s/hc30/
其結(jié)果之一就是 MobileNet 的計(jì)算/內(nèi)存引用比得以下降,這意味著存儲(chǔ)器帶寬和時(shí)延對(duì)實(shí)現(xiàn)高吞吐量來(lái)說(shuō)起著至關(guān)重要的作用。
可惜的是,計(jì)算效率高的網(wǎng)絡(luò)未必適合用硬件實(shí)現(xiàn)。在理想情況下,時(shí)延應(yīng)隨 FLOP 的降低而呈線性比例下降。然而誠(chéng)如老話所言,天下沒(méi)有免費(fèi)的午餐。例如,根據(jù)下面的比較,MobileNetv2 的計(jì)算工作負(fù)載不足 ResNet50 的計(jì)算工作負(fù)載的十分之一,然而時(shí)延并未體現(xiàn)出相同的降幅。
圖 5:MobileNet 與 ResNet50 的計(jì)算量及時(shí)延對(duì)比
參考資料:Song Yao,Hotchips Hc30,第 8 節(jié):
https://www.hotchips.org/archives/2010s/hc30/
從上面的分析中可以看出,時(shí)延并未隨 FLOP 的降低發(fā)生成比例的 12 倍下降。
那么我們?nèi)绾谓鉀Q這個(gè)問(wèn)題?如果我們比較片外通信/計(jì)算比,會(huì)發(fā)現(xiàn) MobileNet 的模式與 VGG 有很大不同。就 DWC 層而言,我們可以看到該比例為 0.11。因?yàn)?PE 陣列中的眾多單元猶如數(shù)據(jù)中心內(nèi)的“黑暗”服務(wù)器,不從事任何有用的工作,只純粹消耗功耗并占用晶片面積,導(dǎo)致加速器受存儲(chǔ)器限制,效率水平下降。
圖 6:VGG16 與 MobileNetv1 的片外通信/計(jì)算比
參考資料:Song Yao,Hotchips Hc30,第 8 節(jié):
https://www.hotchips.org/archives/2010s/hc30/
賽靈思之所以推出 DPUv1,是為了加速常規(guī)卷積(以及其他運(yùn)算)。常規(guī)卷積要求縮減輸入通道數(shù)量。這種縮減更適合用于硬件推斷,因?yàn)樗岣吡擞?jì)算/權(quán)重存儲(chǔ)比及計(jì)算/激活值存儲(chǔ)比。從計(jì)算能耗與存儲(chǔ)能耗相權(quán)衡的角度來(lái)看,這是一種非常優(yōu)秀的做法?;?ResNet 的網(wǎng)絡(luò)在高性能應(yīng)用中得到如此廣泛的部署的原因之一在于,與眾多傳統(tǒng)的主干架構(gòu)相比,使用 ResNet 能提高計(jì)算/內(nèi)存引用比。
深度卷積無(wú)法實(shí)現(xiàn)這樣的通道數(shù)縮減。存儲(chǔ)器性能變得更加重要。
為了開(kāi)展推斷,我們一般將 DWC 卷積與 PWC 卷積融合,并將 DWC 激活值存儲(chǔ)在片上存儲(chǔ)器里,然后立即啟動(dòng) 1x1 PWC。就原始 DPU 而言,沒(méi)有為 DWC 提供專門的硬件支持,因此效率低于理想水平:
圖 7:MobileNet 與 ResNet50 的運(yùn)算與時(shí)延對(duì)比 – DPUv1(無(wú)原生 DWC 支持)
參考資料:Song Yao,Hotchips Hc30,第 8 節(jié):
https://www.hotchips.org/archives/2010s/hc30/
為了在硬件中提高 DWC 性能,我們對(duì)賽靈思 DPU 中的處理單元 (PE) 的功能進(jìn)行了修改,并將 DWC 運(yùn)算符與點(diǎn)卷積融合。第一層處理完畢一個(gè)輸出像素后,激活值立即流水線到 1x1 卷積(通過(guò) DPU 中的片上 BRAM 存儲(chǔ)器),而無(wú)需寫(xiě)入到 DRAM。我們可以運(yùn)用這種專用方法顯著提高部署在 DPU 上的 MobileNet 的效率。
圖 8:DPUv2,專用 DWC 處理單元
參考資料:Song Yao,Hotchips Hc30,第 8節(jié):
https://www.hotchips.org/archives/2010s/hc30/
采用這種改進(jìn)型 DPUv2 架構(gòu),我們能夠顯著提高 MNv1 推斷的效率。此外,通過(guò)提高片上存儲(chǔ)器的容量,我們還能進(jìn)一步提高它的效率,使之與我們?cè)?ResNet50 上獲得的結(jié)果相媲美。所有這些都是在 CPU 和硬件架構(gòu)不變的情況下實(shí)現(xiàn)的!
圖 9:MobileNet 與 ResNet50 的時(shí)延比較,DPUv1 對(duì)比 DPUv2(支持 DWC)
參考資料:Song Yao,Hotchips Hc30,第 8 節(jié):
https://www.hotchips.org/archives/2010s/hc30/
廣泛采用的做法是互不關(guān)聯(lián)地分別優(yōu)化推斷硬件和神經(jīng)網(wǎng)絡(luò)模型。應(yīng)該注意到的是,網(wǎng)絡(luò)一般使用 GPU 進(jìn)行訓(xùn)練,然后在邊緣部署在架構(gòu)顯著不同的 SoC 或 GPU 上。為真正優(yōu)化性能,我們必須適配硬件,才能高效完成模型(不一定對(duì)硬件友好)部署。在這種情況下,自適應(yīng)硬件的主要優(yōu)勢(shì)在于賽靈思器件提供在流片后繼續(xù)聯(lián)合演進(jìn)軟硬件的特有能力。
為進(jìn)一步理解這個(gè)問(wèn)題,不妨考慮題為《彩票假說(shuō)》的一篇獨(dú)創(chuàng)論文(Frankle 和 Carbin,2019 年https://arxiv.org/pdf/1803.03635.pdf)的寓意。在該論文(摘得 2019 年國(guó)際學(xué)習(xí)表征大會(huì)桂冠的兩篇論文之一)中,作者“詳細(xì)闡述了一種假說(shuō)”,即“含有子網(wǎng)絡(luò)(中獎(jiǎng)彩票)的密集隨機(jī)初始化前饋網(wǎng)絡(luò),如果單獨(dú)訓(xùn)練,測(cè)試精度可媲美經(jīng)過(guò)類似數(shù)量(訓(xùn)練)迭代的原始網(wǎng)絡(luò)”。顯然根據(jù)這個(gè)假說(shuō),網(wǎng)絡(luò)剪枝的前景仍然光明,AutoML 等技術(shù)將很快為我們指明網(wǎng)絡(luò)發(fā)現(xiàn)與優(yōu)化過(guò)程中的“中獎(jiǎng)彩票”。
同樣地,為保證在邊緣實(shí)現(xiàn)高效、高精度的部署,當(dāng)今最優(yōu)秀的解決方案仍保留著傳統(tǒng)主干架構(gòu)的通道剪枝。這些主干架構(gòu)的部署效率也許不高,但這些主干架構(gòu)的半自動(dòng)化通道剪枝可提供極為高效的結(jié)果(參見(jiàn)賽靈思 VGG-SSD 示例)。因此,我可以將這個(gè)假說(shuō)解釋成:只要您選擇的下一個(gè)推斷架構(gòu)能讓您的設(shè)計(jì)永不過(guò)時(shí),您就可以在今天輕松地找到“中獎(jiǎng)彩票”。它能幫助您充分發(fā)揮未來(lái)網(wǎng)絡(luò)架構(gòu)和優(yōu)化技術(shù)的優(yōu)勢(shì),同時(shí)向您的客戶保證產(chǎn)品經(jīng)久不衰。
圖 9:我個(gè)人的“中獎(jiǎng)彩票”假說(shuō)
我可以非??隙ǖ氖?,從“彩票假說(shuō)”衍生出的未來(lái)研究有望引領(lǐng)我們開(kāi)發(fā)出新一代剪枝技術(shù),贏得更大程度的效率提升。此外,我感覺(jué)只有采用可提供多維度可擴(kuò)展性的自適應(yīng)硬件才能收獲這樣的成果。這并非純粹是我的直覺(jué)。
購(gòu)買ZCU104,下載Vitis-AI,立刻開(kāi)啟您駛向未來(lái) AI 的旅程吧。
責(zé)任編輯:lq
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7647瀏覽量
167168 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4814瀏覽量
103440 -
人工智能
+關(guān)注
關(guān)注
1806文章
48984瀏覽量
248910
原文標(biāo)題:人工智能引發(fā)能源問(wèn)題,我們?cè)撛趺崔k?(三)
文章出處:【微信號(hào):FPGA-EETrend,微信公眾號(hào):FPGA開(kāi)發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
BP神經(jīng)網(wǎng)絡(luò)的優(yōu)缺點(diǎn)分析
深度學(xué)習(xí)入門:簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)的構(gòu)建與實(shí)現(xiàn)
人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法

評(píng)論