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