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