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