當前位置:
首頁 > 新聞 > 百度開源新一代深度學習硬體測試工具:覆蓋Titan Xp到iPhone7

百度開源新一代深度學習硬體測試工具:覆蓋Titan Xp到iPhone7

選自Baidu Research

機器之心編譯


今天,百度研究院開源了新一代 DeepBench,一款深度學習基準測試工具,這次升級加入了推理測量等功能。

百度開源新一代深度學習硬體測試工具:覆蓋Titan Xp到iPhone7

1. 介紹

2016 年 9 月,百度推出了第一版 DeepBench,它是一個開源基準測試工具,用於測試訓練深度學習神經網路的基本性能指標,可兼容不同硬體平台上的神經網路庫。

DeepBench GitHub 地址:https://github.com/baidu-research/DeepBench

DeepBench 的主要目的是測試深度學習系統在不同硬體平台上的運行效果,它使用神經網路庫來測試硬體系統的表現,而非深度學習框架或模型訓練時間。下圖展示了百度 DeepBench 如何應用於不同深度學習系統。

百度開源新一代深度學習硬體測試工具:覆蓋Titan Xp到iPhone7

百度表示,構建 DeepBench 的最大目標是測試:「哪一種硬體在訓練深度神經網路時具有最佳性能?」通過測試深度學習任務的運行速度,DeepBench 可以幫助開發人員選擇最優的硬體配置。此外,DeepBench 也是向硬體供應商提供交流機會的平台。

DeepBench 包含五個深度學習訓練基礎模塊:矩陣乘法、卷積、循環運算(vanilla 和「LSTM」)以及它們的簡化版。在實驗中,百度研究人員測試了所有方法的正向和反向運算,並專註於單精度浮點運算的訓練性能。你可以在 DeepBench 的博客中獲得更多信息:https://svail.github.io/DeepBench/

自上次發布以來,百度已經接到了來自業界和學界的大量反饋信息。這次,DeepBench 的測試結果中加入了三種新的英偉達 GPU:TitanXp、1080Ti 和 P100。由於廣受歡迎,DeepBench 正在成為深度學習和新硬體開發的標準之一。

深度學習是一個發展很快的領域,大量新的應用正在不斷出現。在測試內容中,新的 DeepBench 加入了推理的測試功能。

2. 推理

對於在 DeepBench 中加入核推理測試的呼聲一直很高,這是一個非常具有挑戰性的問題,因為大多數深度學習應用都具有其特殊性。為了收集用於基準測試的核,百度研究人員調查了公司內部使用的多種不同應用,選擇了其中最熱門的幾種。此外,新版本中也包含了業內常用的深度學習模型性核如深度殘差網路(Resnet)[5]。

深度學習推理也為深度學習模型帶來了一些約束。例如,在實際應用場景下,語音識別必須是實時的,它對延遲的要求很高。正如在 Deep Speech2[2] 中所提到的,雙向循環模型不適用於實時交互的語音識別應用。因此,百度研究人員使用了前向循環模型。DeepBench 中的推理核均來自已經部署,並在延遲和吞吐量上滿足應用要求的模型。

這些推理核在測試中會進行與訓練集相同的一系列操作,如矩陣乘法、卷積和循環操作。此外還有一些不同之處,下文將對此進行討論。

2.1 部署平台

深度學習的大規模應用,如圖像搜索、機器翻譯和語音識別通常都會部署在數據中心裡。用戶從客戶端嚮應用發出請求,深度學習模型在伺服器中負責處理。遠端伺服器通常是含有多個處理器的強大計算機,足以運行非常複雜的深度神經網路模型。這種方法的缺點也顯而易見:由於網路帶寬等問題的限制,數據傳輸過程中的延遲難以避免——用戶在使用服務時必須連接網路。為了解決這些問題,近年來出現了一些可以部署在移動設備中的模型 [1,11,12]。然而這些模型需要適應移動和可穿戴設備的計算能力、能耗和內存。

在 DeepBench 上,從伺服器到終端設備平台的基準都已包含在內。除了上述新顯卡的支持外,DeepBench 還支持三種 ARM 系統:Raspberry Pi3、iPhone6 和 iPhone7,所有人都可以使用這些基準測試並將結果添加到存儲庫中。

2.2 縮小批量

為了縮小延遲,大多數聯網應用的請求在傳遞到數據中心後並不會被分割成多線程。這樣做有兩個缺點:單獨的處理請求使得操作帶寬隨處理器需要載入網路的權重受到限制,這使得處理器難以有效地利用自身高速緩存;另外,可用來分類一個請求的並行度是有限的,這使得我們難以利用 SIMD 或多核並行運算。在這種情況下,RNN 難以部署,因為 RNN 依賴於矩陣向量乘法,而它難以並行計算。

為了解決這些問題,百度構建了批處理調度程序 Batch Dispatch[2],它在執行前向傳播之前會將用戶請求封裝為不同批次。這樣,我們就可以通過調整批尺寸來優化效率,改善延遲問題。批尺寸越大,用戶等待的時間就越多。這對批數量造成了限制。

在實踐中,批尺寸 4 或 5 對於數據中心部署的效率較高,而在移動設備部署中,批尺寸被限制為 1。

2.3 推理精度

深度神經網路使用單精度 32 比特浮點數進行訓練。在 3.2 節中將有對訓練精度的詳細討論。推理精度要求明顯低於訓練要求。與浮點模型相比,有幾種不同的模型可以部署 8 位表示用於推理,而它們幾乎沒有精度損失 [4,9,15]。因此,對於推理核,我們分別指定 8 位和 32 位乘法和累加的最小精度。並非所有硬體平台都支持這些最低精度要求。我們將接受任何具有精度支持大於最小指定精度的平台的結果。所有結果將包括用於基準測試的精度。

為了使用 ARM 處理器的 8 位輸入進行基準矩陣乘法,DeepBench 使用 Gemmlowp 庫,來自 ARM Compute Library 的卷積核用於卷積基準測試。ARM Compute 庫僅支持單精度卷積,低精度卷積支持會隨後提供。ARM Compute 庫對 RNN 沒有任何支持。因此,DeepBench 不包括 ARM 設備的 RNN 結果。

對於伺服器部署,DeepBench 使用 CudNN 和 cuBLAS 庫。對於英偉達 GPU 而言,RNN kerenel 僅支持單精度,結果報告同樣給出。有關不同處理器支持哪些操作的更多詳細信息,請參見第 4 節。

2.4 稀疏核

稀疏神經網路是大多數權重為零的神經網路。這些零權重對神經網路的預測沒有貢獻,但它減少了對於內存和計算性能的需求,從而使深度學習模型能夠部署在移動設備上。RNN 的推理性能主要由硬體的內存帶寬支配,因為大多數工作是在每個時間步長中進行參數讀取。稀疏計算會帶來準確性的懲罰,但如果調整得當,稀疏數據需求也能滿足使用。

百度開源新一代深度學習硬體測試工具:覆蓋Titan Xp到iPhone7

在數據中心裡使用的伺服器級處理器可以快速推理以服務於單個用戶,但是在數據中心中,性能/花費比是最重要的。允許模型評估更快的諸如稀疏技術等方法可以讓每塊 GPU 為更多用戶提供服務,從而提高能耗比。

過去幾年來,稀疏神經網路已經過了很大的發展 [4,13]。在 DeepBench 中,稀疏矩陣向量和稀疏矩陣乘法核已被包含在內。百度研究人員了在實驗中了解到,90-95% 稀疏的神經網路可以達到很好的性能。儘管目前的稀疏矩陣乘法應用使用了更高的稀疏(99% 或更高)。通過包含稀疏核,研究人員希望刺激硬體供應商和軟體開發人員構建新庫,為 90-95%的稀疏提供更好的性能。

DeepBench 使用 Eigen 庫來對 ARM 設備上的稀疏操作進行基準測試,對於 GPU 的測試則使用了英偉達的 cuSparse 庫。

2.5 延遲討論

很多推理性應用有著實時延遲的要求。比如,語音界面要求語音識別模型在無延遲的情況下可以恢復一個結果,從而可以被用戶捕捉到。DeepBench 核可以被當做一個起點來使用,從而來測量獨立操作下的最佳延遲情況。然而,在聚焦於基礎操作而不是完整應用的情況下,測量全部系統的延遲是超出 DeepBench 此版本的範圍的。例如,一個在移動設備上運行的完整應用可能需要修改系統啟動時的功率狀態。又比如,一個完整的伺服器應用程序可能有一個重要的延遲部件,它是由用戶和伺服器間的網路連接來決定的。我們可能需要用未來版本的 DeepBench 來解決操作延遲的問題。

3. 訓練更新

在此更新版本中,也包括對訓練核(kernel) 的更新,把百度新應用的核包括在內。此外,我們還看到了在已有應用上的大量新研究。下文中我們將討論兩個主要的訓練升級。

3.1 GRU 支持

在首版 DeepBench 中,我們納入了 Vanilla、LSTM [6] 循環神經網路的核函數。而另一個比較常用的循環架構師是 GRU(門控循環單元)[3]。近期的一項綜合研究顯示,帶有合適初始化門的 GRU 架構表現可媲美於 LSTM[10]。GRU 相比於 LSTM 有更少的參數,在訓練與推理上比 LSTM 更高效。

多種深度學習模型使用 GRU 作為循環單元,因此我們在新版 DeepBench 訓練與推理負載中加入了 GRU 核。GRU 相比 LSTM 單元有非常類似的表現特性。類似於 Vanilla RNN 和 LSTM,GRU 有可能通過對比多個層優化其表現。GRU 固有的非線性對 Reset 門和 Update 門而言應該是 S 型的。輸出門的非線形應該是一個 Relu 函數。

3.2 低精度訓練

雖然訓練深度學習模型時,大部分研究員都是用單個精度浮點數計算所有 kernel。但學術研究演示了減少在有限數據集上訓練的多個不同模型的精度訓練工作 [7、8、14]。根據以往經驗,我們發現 16 位的半精度浮點數足夠在大型數據集上訓練大型的深度學習模型。使用半精度浮點數訓練,能夠讓硬體更好的利用計算能力。此外,權重也只需要整個模型存儲的一半。

有了此版更新,我們規格化了訓練中用到的所有運算的加與乘的精度。其中,乘與加的最小精度分別設定為了 16 位和 32 位。目前,沒有硬體支持 16 位相乘 和 32 位相加。我們將能夠接受任何滿足這一最小精度需求的硬體平台的結果。所有的結果都會包含該基準使用的精度。

4. 支持 Ops & 精度

在此部分,我們記錄了對不同處理器所有精度上各種運算的支持。我們儘可能挑選了接近最小需求精度的精度值,其中精度需求如下所示。然而,某些情況下我們需要衡量更高精度運算的基準。下表強調了每個處理器的運算基準。

  • 訓練時的最小精度:16 位乘積,32 位的相加

  • 推理時的最小精度:8 位乘積,32 位相加

4.1 訓練

單精度結果可用於 6 種英偉達 GPU 以及英特爾的 Xeon Phi 處理器。這些處理器都不支持 16 位相乘與 32 位相加。作為替代,我們衡量了英偉達 Psuedo FP 16 模型的基準,該硬體的輸入/輸出是 16 位,但仍舊是單精度計算。下面的硬體處理器支持單精度訓練。

4.2 伺服器部署

在英偉達處理器上,GEMM 和卷積基準運行的是 8 位相乘與 32 位相加。然而,該精度模式下英偉達 GPU 不支持所有的輸入大小。輸入大小要為 4 倍才能運行這一精度模型。

百度開源新一代深度學習硬體測試工具:覆蓋Titan Xp到iPhone7

4.3 設備部署

下表描述了在不同處理器、ops、精度上設備推理的核結果。我們沒 RNN 的結果,因為沒有支持 RNN 的 ARM 庫。ARM 計算庫不支持 iPhone。

百度開源新一代深度學習硬體測試工具:覆蓋Titan Xp到iPhone7

5. 結論

在這一部分中,我們將記載一些操作的性能。這些都是隨機挑選的,因為我們只是為了演示一些應用的性能。下面的結果僅包括針對特定操作和參數的快速處理器以及它的運算時間和每秒浮點計算。

全部的結果可在以下獲得:https://github.com/baidu-research/DeepBench

5.1 訓練結果

在第一版 DeepBench 中,我們展示了訓練 GEMM、Convolution、vanilla RNN 和 LSTM 的結果。下一部分為一些樣本 GRU kernel 提供了試驗結果。在 5.1.2 中,我們記載了 psuedo 半精度 GEMM 核。

5.1.1 GRU 結果

循環 op kernel 只在英偉達硬體上運行。

百度開源新一代深度學習硬體測試工具:覆蓋Titan Xp到iPhone7

5.1.2 16 點位 GEMM 表現

在下表中,輸入和輸出是 16 位,但仍使用 32 位計算。

對 GEMM 核函數而言,M、N 和 K 表示矩陣大小。兩個矩陣的大小分別為 M x K、K x N。

百度開源新一代深度學習硬體測試工具:覆蓋Titan Xp到iPhone7

5.2 推理伺服器結果

下面幾部分將提供在伺服器平台上為推理核而執行的 GEMM、Convolution 和 Recurrent 操作結果。這些結果很快可以在英特爾平台上獲得。

5.2.1 GEMM 結果

百度開源新一代深度學習硬體測試工具:覆蓋Titan Xp到iPhone7

5.2.2 稀疏 GEMM 結果

百度開源新一代深度學習硬體測試工具:覆蓋Titan Xp到iPhone7

5.2.3 卷積結果

百度開源新一代深度學習硬體測試工具:覆蓋Titan Xp到iPhone7

5.2.4 RNN 結果

百度開源新一代深度學習硬體測試工具:覆蓋Titan Xp到iPhone7

5.3 推斷設備結果

5.3.1 GEMM 結果

百度開源新一代深度學習硬體測試工具:覆蓋Titan Xp到iPhone7

5.3.2 稀疏 GEMM 結果

百度開源新一代深度學習硬體測試工具:覆蓋Titan Xp到iPhone7

5.3.3 卷積結果

百度開源新一代深度學習硬體測試工具:覆蓋Titan Xp到iPhone7

原文鏈接:https://svail.github.io/DeepBench-update/

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

螞蟻金服發布「定損寶」,推動圖像定損技術在車險領域的應用
認知心理學解釋DNN:DeepMind新研究破解AI黑箱問題
加入巨頭競爭之列,索尼開源可在Windows中運行的神經網路庫NNabla
百度NLP|神經網路模型壓縮技術

TAG:機器之心 |

您可能感興趣

7 Papers | Hinton、李飛飛各有新作;深度學習硬體性能評價
10月Steam硬體調查顯示 Vive Pro和Windows 等新款V
Google 升級 TensorFlow,發布機器學習新硬體
Yoshua Bengio談邁向硬體友好的深度學習
蘋果或明年發iPhone SE2:全套iPhone8硬體
採用全新硬體設計,蘋果iPhone8和iPhoneX不受降頻門影響?
蘋果承認在iphone X和13英寸的MacBook Pro上有硬體問題
微軟Surface Pro 6/Laptop 2價格曝光:硬體升級
三星Note 9和iPhone X Plus硬體參數曝光?假的!
三防加強版三星S8Active硬體性能對比iPhone8
iPhone硬體檢查
Nokia 9 PureView圖賞:五顆攝像頭的硬體壓制
硬體黑客工具Packet Squirrel之二:實現openVPN遠程訪問
ChinaBang Awards 2019 年度硬體:一次創意和消費者痛點碰撞的大集結
Lemnis旨在VR變焦技術推出新軟體和硬體平台Verifocal
9月SteamVR硬體報告:Rift優勢擴大,Vive Pro入榜
如何在 Ubuntu 或 Linux Mint 啟用 Chromium 硬體加速的視頻解碼
Lemnis為AR/VR展示眼球追蹤軟硬體平台Verifocal
Valve公布2月份Steam硬體調查:Rift和WindowsVR佔有率持續增長
EA公布Battlefield 5最低PC硬體要求