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