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