在過去的十年中,神經網絡已經從有趣的研究發展到廣泛應用于語言翻譯、關鍵詞識別和對象識別。
長期以來,神經網絡僅限于具有運行神經網絡所需的計算資源的數據中心,最初是在微處理器上,然后越來越多地在 GPU 上,因為 GPU 具有運行神經網絡所需的更多 MAC。
英偉達最近宣布,其推理產品的銷售額首次超過了培訓產品的銷售額。
隨著推理移動到電力和成本預算受限的邊緣(數據中心之外的任何地方),客戶正在尋找能夠以他們能夠承受的價格和電力提供所需吞吐量的推理加速器。
本博客討論如何對推理加速器進行基準測試,以找到最適合您的神經網絡的加速器;以及客戶在學習曲線上通常如何發展他們對基準測試的思考。神經網絡推理令人興奮但也很復雜,因此最初非常令人困惑。當客戶解決問題時,燈會逐步亮起。
首先讓我們回顧一下推理加速器的常見元素以及它們運行的??神經網絡。
所有推理加速器的共同元素
所有推理加速器都有以下共同點:
MAC(很多)
片上 SRAM
片外DRAM
控制邏輯
所有單元之間的片上互連
推理加速器之間的元素和組織的數量差異很大;組織 MAC 的方法;MAC 與 SRAM/DRAM 的比率;以及它們之間的數據如何流動對于確定加速器的實際加速情況至關重要。
所有神經網絡模型的共同元素
所有神經網絡都包含以下元素:
數值選擇:32 位浮點(模型訓練時使用的),
16 位浮點、16 位整數或 8 位整數
輸入數據:圖像、音頻、文本等
幾十到幾百層,每層處理前一層的激活,并將輸出激活傳遞到下一層
模型每一層的權重
TOPS - 推理基準測試的第一階段
剛接觸神經網絡性能估計的客戶幾乎總是先問“你的芯片/模塊/板有多少 TOPS?” 因為他們假設 TOPS 和吞吐量相關 - 但事實并非如此。
TOPS 是每秒萬億次操作的首字母縮寫詞,可用 MAC 的數量(以千計)乘以 MAC 運行的頻率(以千兆赫茲為單位)乘以 2(一個 MAC = 兩個操作)。因此,簡單來說,1GHz 的 1K MAC = 2 TOPS。
更多 MAC 意味著更多 TOPS。
重要的是內存組織和互連是否可以保持 MAC 的“饋送”,從而使它們得到高度利用,從而在模型上產生高吞吐量。
ResNet-50 - 推理基準測試的第二階段
一旦客戶意識到重要的指標是吞吐量,他們通常會繼續詢問,“ResNet-50 的芯片/模塊/板的推理/秒吞吐量是多少?”
MLPerf 最近發布了眾多制造商提交的 ResNet-50 基準。
ResNet-50 是一種流行的 CNN(卷積神經網絡),用于對圖像進行分類,多年來一直廣泛用于基準測試。
問題是,沒有客戶真正使用 ResNet-50。
客戶詢問 ResNet-50 是因為他們假設他們模型上的芯片/模塊/板的吞吐量將與 ResNet-50 吞吐量相關。
這個假設的兩個主要缺陷是:
ResNet-50 使用 224x224 圖像,但大多數客戶希望處理 16 倍以上的百萬像素圖像。ResNet-50 對于 224x224 圖像可能在芯片/模塊/板上運行良好,但可能不適用于百萬像素圖像,因為較大的圖像比較小的圖像對內存子系統的壓力更大。對于 2 兆像素的圖像,中間激活可以是 64 兆字節,而對于 224x224 圖像,中間激活最多為幾兆字節。
批量大?。褐圃焐滔M盟麄兛梢詾榛鶞蕼y試的最大數字,因此他們的 ResNet-50 基準數字通常是他們可以運行的最大批量大小。但對于邊緣應用程序,幾乎所有應用程序都需要批量大小 = 1 以實現最小延遲??紤]一輛車:如果你正在尋找像行人這樣的物體,你需要盡快意識到它們。因此,大批量可能會最大化吞吐量,但在邊緣需要的是最小延遲,即批量大小為 1。
如果 ResNet-50 在批量大小 = 1 的百萬像素圖像上運行,則它對于真實世界模型來說并不是一個糟糕的基準。但它不是通常使用的一個好的基準。
真實世界模型和圖像 - 推理基準測試的第三階段
客戶在學習曲線中達到的下一個階段是他們應該找到一個具有與他們相似特征的開源神經網絡模型:相似類型的模型(CNN 或 RNN 或 LSTM),相似大小的圖像(或其他輸入類型),相似的層數和相似的操作。
例如,對 CNN 感興趣的客戶他們最常問的問題是:“對于 2 兆像素(或 1 或 4),YOLOv2(或 YOLOv3)的每秒幀數是多少?”
真正有趣的是,盡管大多數客戶都想了解 YOLOv2/v3,但幾乎沒有制造商為其提供基準(一個例外是 Nvidia Xavier,它將 YOLOv3 的基準為 608x608 或 1/3 兆像素)。
YOLOv3 是一個壓力很大的基準測試,它很好地測試了推理加速器的魯棒性:6200 萬個權重;100+層;和超過 3000 億個 MAC 來處理單個 2 兆像素圖像。對該模型進行基準測試顯示了加速器是否可以同時獲得高 MAC 利用率、管理存儲讀取/寫入而不會使 MAC 停滯,以及互連是否可以在內存和 MAC 之間有效移動數據而不會停滯計算。
當然,不僅僅是吞吐量很重要,實現吞吐量的成本和功率也很重要。
2000 美元和 75 瓦的 Nvidia Tesla T4 可能具有您想要的吞吐量,但可能遠遠超出您的預算。
客戶考慮的另一件事是他們計劃運行的模型的吞吐量效率、吞吐量/美元和吞吐量/瓦特
第 4 階段:對吞吐量、功率和成本的實際模型進行基準測試
客戶對基準推理學習曲線的最后階段是開發自己的模型,使用通常來自 Nvidia 或數據中心的訓練硬件/軟件,然后在可能的目標推理加速器上對該模型進行基準測試。
通過這種方式,客戶可以真正判斷哪個加速器將為他們提供最佳的吞吐量效率。
終點似乎很明顯,但事后諸葛亮。神經網絡推理非常復雜,所有客戶都要經過學習曲線才能得出正確的結論。
審核編輯:郭婷
-
神經網絡
+關注
關注
42文章
4717瀏覽量
100009 -
gpu
+關注
關注
27文章
4591瀏覽量
128144 -
數據中心
+關注
關注
16文章
4517瀏覽量
71632
發布評論請先 登錄
相關推薦
評論