來(lái)源:貿澤電子 在上一篇文章中,我們簡(jiǎn)要介紹了更高層次的問(wèn)題,這些問(wèn)題為優(yōu)化加速器的需求奠定了基礎。作為一個(gè)尖銳的問(wèn)題提醒,現在讓我們通過(guò)一個(gè)非常簡(jiǎn)單的圖像分類(lèi)算法,來(lái)看一看與之相關(guān)聯(lián)的計算成本與功耗。 利用Mark Horowitz提供的數據點(diǎn),我們可以考慮圖像分類(lèi)器在不同空間限制下的相對功耗。雖然您會(huì )注意到Mark的能耗估計是針對45nm節點(diǎn)的,但業(yè)界專(zhuān)家建議,這些數據點(diǎn)將繼續按當前的半導體工藝尺寸進(jìn)行調整。也就是說(shuō),無(wú)論工藝尺寸是45nm還是16nm,與FP32運算相比,INT8運算的能量成本仍然低一個(gè)數量級。 ![]() Cadence 嵌入式神經(jīng)網(wǎng)絡(luò )峰會(huì ),2017年2月1日 數據來(lái)源:Bill Dally(斯坦福) 功耗可按以下方式進(jìn)行計算: 功耗=能量(J)/運算*運算/s 從這個(gè)等式中我們可以看出,只有兩種方法能夠降低功耗:要么減少執行特定運算所需的功耗,要么減少運算的次數,或者一起減少。 對于我們的圖像分類(lèi)器,我們將選擇ResNet50作為一個(gè)目標。ResNet提供了近乎最先進(jìn)的圖像分類(lèi)性能,同時(shí)與眾多具有類(lèi)似性能的可比網(wǎng)絡(luò )相比,它所需的參數(權重)更少,這便是它的另一大優(yōu)勢。 為了部署ResNet50,我們每次推斷必需大約77億運算的算力。這意味著(zhù),對于每一幅我們想要分類(lèi)的圖像,我們將產(chǎn)生7.7*10E9的“計算成本”。 現在,讓我們考慮一個(gè)相對高容量的推斷應用,在該應用中,我們可能希望每秒對1000幅圖像進(jìn)行分類(lèi)。堅持沿用Mark的45nm能量估算,我們得出以下結論: 功耗=4pJ+0.4pJ/運算*7.7B運算/圖像*1000圖像/s=33.88W 作為創(chuàng )新的第一維度,我們可以將網(wǎng)絡(luò )FP32量化到8位整數運算。這將功耗降低了一個(gè)數量級以上。雖然在訓練期間FP32的精度有利于反向傳輸,但它在像素數據的推斷時(shí)間幾乎沒(méi)有創(chuàng )造價(jià)值。大量研究和論文已經(jīng)表明,在眾多應用中,可以分析每一層的權重分布并對該分布進(jìn)行量化,同時(shí)將預量化的預測精度保持在非常合理的范圍內。 此外,量化研究還表明,8位整數值對于像素數據來(lái)說(shuō)是很好的“通用”解決方案,并且對于典型網(wǎng)絡(luò )的許多內層,可以將其量化到3-4位,而在預測精度上損失最小。由Michaela Blott領(lǐng)導的賽靈思研究實(shí)驗室團隊多年來(lái)一直致力于二進(jìn)制神經(jīng)網(wǎng)絡(luò )(BNN)的研究與部署,并取得了一些令人矚目的成果。 如今,我們與DNNDK的重點(diǎn)是將網(wǎng)絡(luò )推斷量化至INT8,F代賽靈思FPGA 中的單個(gè)DSP片可以在單個(gè)時(shí)鐘周期內計算兩個(gè)8位乘法運算,這并非巧合。在16nm UltraScale+MPSoC器件系列中,我們擁有超過(guò)15種不同的器件變型,從數百個(gè)DSP片擴展到數千個(gè)DSP片,同時(shí)保持應用和/OS兼容性。16nm DSP片的最大fCLK峰值為891MHz。因此,中型MPSoC器件是功能強大的計算加速器。 現在,讓我們考慮一下從FP32遷移到INT8的數學(xué)含義: 功耗=0.2pJ+0.03pJ/運算*7.7B運算/圖像*1000圖像/s=1.771W Mark在演講中,提出了一個(gè)解決計算效率問(wèn)題的方法,那就是使用專(zhuān)門(mén)構建的專(zhuān)用加速器。他的觀(guān)點(diǎn)適用于機器學(xué)習推斷。 上述分析沒(méi)有考慮到的是,我們還將看到FP32的外部DDR流量至少減少四倍。正如您可能預料到的那樣,與外部存儲器訪(fǎng)問(wèn)相關(guān)的功耗成本比內部存儲器高得多,這也是事實(shí)。如果我們簡(jiǎn)單地利用Mark的數據點(diǎn),我們會(huì )發(fā)現訪(fǎng)問(wèn)DRAM的能量成本大約是1.3-2.6nJ,而訪(fǎng)問(wèn)L1存儲器的能量成本可能是10-100pJ?雌饋(lái),與訪(fǎng)問(wèn)內部存儲器(如賽靈思SoC中發(fā)現的BlockRAM和UltraRAM)的能量成本相比,外部DRAM訪(fǎng)問(wèn)的能量成本至少高出一個(gè)數量級。 除了量化所提供的優(yōu)勢以外,我們還可以使用網(wǎng)絡(luò )剪枝技術(shù)來(lái)減少推斷所需的計算工作負載。使用賽靈思Vitis AI優(yōu)化器工具,可以將在 ILSCVR2012(ImageNet 1000類(lèi))上訓練的圖像分類(lèi)模型的計算工作負載減少30-40%,精度損失不到1%。再者,如果我們減少預測類(lèi)的數量,我們可以進(jìn)一步增加這些性能提升,F實(shí)情況是,大多數現實(shí)中的圖像分類(lèi)網(wǎng)絡(luò )都是在有限數量的類(lèi)別上進(jìn)行訓練的,這使得超出這種水印的剪枝成為可能。作為參考,我們其中一個(gè)經(jīng)過(guò)剪枝的VGG-SSD實(shí)現方案在四個(gè)類(lèi)別上進(jìn)行訓練,需要17個(gè)GOP(與原始網(wǎng)絡(luò )需要117個(gè)GOP相比),在精度上沒(méi)有損失!誰(shuí)說(shuō)VGG沒(méi)有內存效率? 然而,如果我們簡(jiǎn)單地假設我們在ILSCVR2012上訓練我們的分類(lèi)器,就會(huì )發(fā)現我們通?梢酝ㄟ^(guò)剪枝減少大約30%的計算工作負載?紤]到這一點(diǎn),我們得出以下結論: 功耗=0.2pJ+0.03pJ/運算*7.7B運算/圖像0.7*1000圖像/s=1.2397W 將此值與FP32推斷的原始估計值33.88W進(jìn)行比較。 雖然這種分析沒(méi)有考慮到多種變量(混合因素),但顯然存在一個(gè)重要的優(yōu)化機會(huì )。因此,當我們繼續尋找遙遙無(wú)期的“解決計算飽和的靈丹妙藥”時(shí),考慮一下吳恩達斷言“AI是新電能”的背景。我認為他并不是在建議AI需要更多的電能,只是想表明AI具有極高的價(jià)值和巨大的影響力。所以,讓我們對ML推斷保持冷靜的頭腦。對待機器學(xué)習推斷應保持冷靜思考,既不必貿然跟風(fēng),也無(wú)需針對高性能推斷設計采用液態(tài)冷卻散熱。 |