NVIDIA Ampere架構(gòu)使數(shù)學(xué)運(yùn)算速度加倍,為各種神經(jīng)網(wǎng)絡(luò)處理提速。
如果你玩過(guò)疊疊樂(lè),那么就可以把AI稀疏性(sparsity)想象成是疊疊樂(lè)。
游戲參與者首先將積木塊交錯(cuò)堆疊成一座積木塔。然后,每名玩家輪流取出一塊積木,過(guò)程中玩家必須小心翼翼的,不能讓積木塔倒塌。
游戲開(kāi)始的時(shí)候,抽取積木很容易,但越往后進(jìn)行就會(huì)變得越驚險(xiǎn),最后必定會(huì)有一名玩家在取出積木時(shí)碰倒整個(gè)積木塔。
多年來(lái),研究人員們一直在研究如何通過(guò)稀疏性加速AI,其過(guò)程就像是在玩兒數(shù)字版的“疊疊樂(lè)”。他們嘗試著盡可能多地從神經(jīng)網(wǎng)絡(luò)中抽出多余參數(shù),同時(shí)又不破壞AI的超高精度。
這樣做是為了減少深度學(xué)習(xí)所需的矩陣乘法堆,從而縮短取得準(zhǔn)確結(jié)果的時(shí)間。但到目前為止,還沒(méi)有出現(xiàn)“大贏家”。
過(guò)去,研究人員嘗試了多種技術(shù),抽出部分的權(quán)重甚至達(dá)到了神經(jīng)網(wǎng)絡(luò)的95%。但是,在整個(gè)過(guò)程中,他們所花的時(shí)間要遠(yuǎn)多于他們所節(jié)省的時(shí)間,而且他們還需要付出巨大的努力來(lái)彌補(bǔ)精簡(jiǎn)后的模型精度。此外,適用于一種模型的精簡(jiǎn)方法往往并不適用于其他模型。
但如今,這一問(wèn)題得到了解決。
數(shù)字稀疏
NVIDIA Ampere架構(gòu)為NVIDIA A100 GPU帶來(lái)了第三代Tensor Core核心,其可以充分利用網(wǎng)絡(luò)權(quán)值下的細(xì)粒度稀疏優(yōu)勢(shì)。相較于稠密數(shù)學(xué)計(jì)算(dense math),最大吞吐量提高了2倍,而且不會(huì)犧牲深度學(xué)習(xí)的矩陣乘法累加任務(wù)的精度。
測(cè)試表明,這種稀疏方法在許多AI任務(wù)(包括圖像分類、對(duì)象檢測(cè)和語(yǔ)言翻譯)中使用,都能保持與使用稠密數(shù)學(xué)計(jì)算相同的精度。該方法還已在卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)以及基于attention的transformer上進(jìn)行了測(cè)試。
A100使用稀疏矩陣加速AI推理任務(wù)
內(nèi)部數(shù)學(xué)加速能夠?qū)?yīng)用層面產(chǎn)生重大影響。A100 GPU可以利用稀疏性運(yùn)行BERT(BERT是最新的自然語(yǔ)言處理模型),其運(yùn)行速度比稠密數(shù)學(xué)計(jì)算快50%。
NVIDIA Ampere架構(gòu)利用了神經(jīng)網(wǎng)絡(luò)中小值的普遍性,讓盡可能多的AI應(yīng)用受益。具體而言,該架構(gòu)定義了一種可以減少一半權(quán)值(50%稀疏)來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò)的方法。
少即是多,但前提是正確
一些研究人員使用粗粒度的剪枝方法從神經(jīng)網(wǎng)絡(luò)層中切斷整個(gè)通道,這往往會(huì)降低網(wǎng)絡(luò)精度。而NVIDIA Ampere架構(gòu)中的方法采用了結(jié)構(gòu)化稀疏和細(xì)粒度修剪技術(shù),因此不會(huì)明顯降低精度,用戶可以在重訓(xùn)練模型時(shí)進(jìn)行驗(yàn)證。
在將網(wǎng)絡(luò)修剪到合適狀態(tài)后,A100 GPU將自動(dòng)完成其余工作。
A100 GPU中的Tensor Core核心能夠有效地壓縮稀疏矩陣以實(shí)現(xiàn)合適的稠密數(shù)學(xué)計(jì)算。跳過(guò)矩陣中的實(shí)際值為零的位置能夠減少計(jì)算量,從而節(jié)省功耗和時(shí)間。壓縮稀疏矩陣還可以減少占用寶貴的內(nèi)存和帶寬。
我們對(duì)稀疏性的支持是NVIDIA Ampere架構(gòu)中的眾多新功能之一,它將AI和HPC性能推向新的高度。