當前位置:
首頁 > 新聞 > 深度學習硬體對比評測:英特爾FPGA和英偉達GPU哪個更好?

深度學習硬體對比評測:英特爾FPGA和英偉達GPU哪個更好?

選自Nextplatform

作者:Linda Barney

參與:李澤南、晏奇、黃小天、吳攀

FPGA 會隨著深度學習的發展佔領 GPU 的市場嗎?英特爾的研究人員對目前最好的兩種晶元做了對比。


社交媒體和物聯網正持續不斷地以指數級方式產出語音、視頻、圖像等數字數據,這帶動了對於數據分析(讓數據變得可理解與可執行)的需求。數據分析經常依賴於機器學習(ML)演算法。在眾多機器學習演算法中,深度卷積神經網路在重要的圖像分類任務中具有當前最高的精確度,因而被廣泛採用。

在最近的「2017 現場可編程門陣列國際大會(ISFPGA)」上,來自英特爾加速器架構實驗室(AAL)的 Eriko Nurvitadhi 博士展示了有關「在加速新一代深度神經網路方面,FPGA 可否擊敗 GPU」的研究,其研究使用最新的 DNN 演算法在兩代英特爾 FPGA(Arria10 與 Stratix 10)與目前最高性能的英偉達 Titan X Pascal GPU 之間做了對比評估。

論文地址:http://dl.acm.org/citation.cfm?id=3021740

英特爾 Programmable Solutions Group 的 FPGA 架構師以及論文的聯合作者之一 Randy Huang 博士說:


深度學習是人工智慧之中一個最激奮人心的領域,其取得了人工智慧領域的最大進展,並催生出了最多的應用。儘管人工智慧和 DNN 研究者喜歡使用 GPU,但我們發現英特爾新一代 FPGA 架構與應用領域之間存在著一個完美的契合。我們關注著即將來臨的 FPGA 技術進步,DNN 演算法的快速進展,並考慮著未來的高性能 FPGA 在新一代 DNN 演算法的表現上能否勝過 GPU。通過研究我們發現在 DNN 研究中 FPGA 表現很好,並可用在人工智慧、大數據或機器學習等需要分析大量數據的研究領域。當使用剪枝過的或緊密的數據類型 VS 全 32 位浮點數(FP32)時,被測試的英特爾 Stratix 10 的表現勝過了 GPU。除了性能之外,FPGA 同樣很強大,因為其適應性強,並且可通過復用一個現存的晶元而容易地實現變化——一塊晶元就可幫助一個團隊在 6 個月內把一個想法做成原型,而打造一個 ASIC 則需要 18 個月。


測試中使用的神經網路機器學習

神經網路可以被表示為由加權邊(weighted edges)互連起來的神經元圖。每個神經元(neuron)和邊(edge)都分別與一個激活值與權重相關聯。神經網路結構由多層神經元組成。如下圖 1 所示:

深度學習硬體對比評測:英特爾FPGA和英偉達GPU哪個更好?

圖 1:深度神經網路概觀。該圖由 Intel 提供。

神經網路的計算在網路中逐層傳遞。對於一個給定的層,每個神經元的值由前一層神經元的值與邊權重(edge weight)累加相乘計算而成。計算在很大程度上基於乘積-累加操作。DNN 計算由正向與反向通過組成。正向通過在輸入層獲取一個樣本,然後遍歷隱藏層,在輸出層產生一個預測。對於推理而言,只需要正向通過就能獲得一個給定樣本的預測結果。對訓練而言,從正向通過中得到的錯誤預測接下來會在反向通過過程中被返回,以此來更新網路的權重——這被稱為「反向傳播演算法(back-propagation algorithm)」。訓練會反覆進行正向與反向通過操作,從而以此來修正神經網路的權重直到模型可以產生理想精度的結果。



使 FPGA 成為可選項的改變

硬體:儘管和高端 GPU 相比,FPGA 的能量效率(性能/功率)會更好,但是大多數人不知道它們還可以提供頂級的浮點運算性能(floating-point performance)。FPGA 技術正在快速發展。即將上市的 Intel Stratix 10 FPGA 能提供超過 5000 個硬浮點單元(DSP),超過 28MB 的片上內存(M20K),同時整合了高帶寬內存(最高可達 4x250GB/s/stack 或 1TB/s),以及由新的 HyperFlex 技術的改善了的頻率。英特爾 FPGA 能提供全面的從軟體生態系統——從低級硬體描述語言到 OpenCL、C 和 C++的高級軟體開發環境。使用 MKL-DNN 庫,英特爾將進一步將 FPGA 與英特爾機器學習生態系統和諸如 Caffe 這樣的傳統架構結合起來。Intel Stratix 10 基於英特爾的 14 納米技術開發,擁有 FP32 吞吐量上 9.2TFLOP/s 的峰值速度。相比之下,最新的 Titan X Pascal GPU 提供 FP32 吞吐量 11TLOP/s 的速度。

新興的 DNN 演算法:更深的網路可提升精確度,但需要極大地增加參數數量,模型也隨之變大;而這一切將對計算力、內存帶寬和存儲提出更苛刻的要求。如此,人們開始轉向更高效的 DNN。採用比 32 位更少的緊密低精度數據類型成為了一個新興趨勢;由 DNN 軟體框架(即 TensorFlow)支持的 16 位和 8 位的數據類型正在成為新標準。此外,研究者已經在極低精度 2 位三進位與 1 位二進位 DNN(其值分別地被限制為 (0,+1,-1) 或 (+1,-1))中取得了連續的精度提升。最近 Nurvitadhi 博士合寫的一篇論文首次表明,三進位 DNN 能在眾所周知的 ImageNet 數據集中取得當前最高的(即,ResNet)精確度。稀疏性(零的存在)是另一個新興趨勢,其可以通過剪枝、ReLU 和 ternarization 等技術被引入到 DNN 的神經元和權重之中,併產生帶有 50% 至 90% 零的 DNN。因為沒必要在這樣的零值上計算,所以如果執行稀疏 DNN 的硬體可以有效地跳過零值計算,那麼性能勢必提升。

新興的低精度和稀疏 DNN 演算法相比於傳統的密集 FP32 DNN 能更大地提升巨型演算法的效率,但也帶來了 GPU 難以應對的不規律並行和自定義數據類型。相反,FPGA 專為極端的自定義性設計,並在運行不規律並行和自定義數據類型時表現出眾。這些趨勢將使未來的 FPGA 在運行 DNN、人工智慧和機器學習應用方面成為一個可行的平台。Huang 說,FPGA 專用機器學習演算法還有更多的峰值儲備。

深度學習硬體對比評測:英特爾FPGA和英偉達GPU哪個更好?

圖 2 表示 FPGA 的極端自定義性 (2A),使新興 DNN (2B) 的高效實現成為可能。

深度學習硬體對比評測:英特爾FPGA和英偉達GPU哪個更好?

圖 3. 矩陣乘法(GEMM)測試的結果,GEMM 是 DNN 中的關鍵部分



測試 1:矩陣乘法(GEMM)

DNN 嚴重依賴於矩陣乘法運算(GEMM),常規 DNN 依賴於 FP32 密集 GEMM。而更低精度和稀疏的新 DNN 方法則依賴於低精度(或)稀疏的 GEMM。英特爾的團隊評估了兩種類型的 GEMM。

FP32 密集 GEMM:團隊對比了 FPGA 和 GPU 的數據峰值。結果顯示:Stratix 10 和 Titan X Pascal 的峰值理論性能為 11 TFLOPs 和 9.2 TFLOPs。如圖 3A 顯示,英特爾 Stratix 10 相比 Arria 10 具有更多數量的 DSP,這大大提升了它的 FP32 性能,使其達到了狙擊 Titan X 的實力。

低精度 INT6 GEMM:為了展示 FPGA 可定製性帶來的優勢,實驗小組研究了將四個 Int6 封裝到 DSP 模塊中用於 FPGA 的 6 位(Int6)GEMM 的方式。GPU 並沒有對 Int6 的原生支持,在實驗中它們使用峰值 Int8 進行比較。圖 3B 中的數據顯示英特爾 Stratix 10 的表現優於 GPU。同時 FPGA 的能效也佔據優勢。

超低精度 1 位二進位 GEMM:二進位 DNN 提出了非常緊湊的 1 位數據類型,可通過 xnor 和位計數操作替代乘法,非常適合 FPGA。圖 3C 展示了二進位 GEMM 的測試結果,FPGA 的表現優於 GPU(在不同頻率目標中可達後者 2 倍-10 倍表現)。

稀疏 GEMM:新出現的稀疏 DNN 包含了大量的零。研究小組測試了稀疏 GEMM 在包含 85% 零的矩陣中的表現(基於剪枝 AlexNet)。團隊測試了 FPGA 的靈活性設計——細粒度的方式跳過零計算。該團隊還在 GPU 上測試了稀疏 GEMM,但發現性能比在 GPU(相同矩陣大小)上執行密集 GEMM 要差。英特爾的稀疏 GEMM 測試(圖 3D)表明,FPGA 的表現優於 GPU,這取決於目標 FPGA 頻率。

深度學習硬體對比評測:英特爾FPGA和英偉達GPU哪個更好?

圖 4. FPGA 與 GPU 在三元 ResNet DNN 測試中的精度趨勢和結果



測試 2:使用三元 ResNet DNNs

三元 DNN 提出了將神經網路權重約束為+1、0 或-1。這允許稀疏的 2 位權重,並用符號位操作替換了乘法。在測試中,研究小組使用了零跳過、2 位權重和無乘法器的 FPGA 設計來優化三元 ResNet DNN 的運行。

與其他很多種低精度稀疏 DNN 不同,三元 DNN 提供了與現有最強 DNN(如 ResNet)相近的準確率,正如圖 4 所示。「目前存在的 GPU 和 FPGA 研究注重在 ImageNet 上"能做到多好?",這些研究基於 2012 年的 AlexNet。在 2015 年,最好的方法是 ResNet,圖像識別準確率比前者提升了 10%。在 2016 年下半年的另一個研究中,我們第一次展示了 ResNet 的低精度和稀疏三元版本 DNN 演算法可以達到和全精度 ResNet 相差大約 1% 的表現。三元 ResNet 是我們在 FPGA 研究中希望達到的目標。我們的實驗結果第一次證明 FPGA 可以提供一流的(ResNet)ImageNet 精度,而且它可以做得比 GPU 更好。」Nurvitadhi 指出。

圖 4 顯示了英特爾 Stratix 10 FPGA 和 Titan X Pascal 在 ResNet-50 任務中的性能和性能/功耗比。即使保守地估計,英特爾 Stratix 10 FPGA 也已經比實現比 Titan X GPU 高出 60%的表現。中性或樂觀的估計則更加亮眼(2.1 倍和 3.5 倍速度提升)。有趣的是,英特爾 Stratix 10 在最高 750MHz 的頻率上可以比英偉達 Titan X Pascal(1531 MHz)提供多出 35% 的 性能。在性能/功耗方面,英特爾 Stratix 10 比 Titan X 高出 2.3 到 4.3 倍。



FPGA 在測試中的表現

測試結果顯示,英特爾 Stratix 10 FPGA 在 GEMM 稀疏、Int6 和二值化 DNN 中的表現(TOP/sec)比英偉達 Titan X Pasacal GPU 分別要好 10%、50% 和 5.4 倍。在 Ternary-ResNet 中,Stratix 10 FPGA 可以輸出超過 Titan X Pascal 60% 的表現,而功耗效率則比對手好上 2.3 倍。實驗結果表明:FPGA 可以成為下一代 DNN 的最佳計算平台之選。



FPGA 在深度神經網路的未來

FPGA 在下一代深度神經網路出現時能否擊敗 GPU 成為主流?英特爾對兩代 FPGA(英特爾 Arria 10 和英特爾 Stratix 10)與英偉達 Titan X Pascal 在不同最新 DNN 上的評估表明:DNN 演算法的發展趨勢或許有利於 FPGA,這種架構在某些任務上的表現大幅超越對手。儘管這些測試是在 2016 年進行的,英特爾的團隊已經開始對自家 FPGA 在最新 DNN 演算法上的運行和優化開始了研究(如 FFT/winograd 數學變換,主動量化(aggressive quantization)和壓縮)。英特爾的團隊同時指出,除 DNN 以外,FPGA 在各種對延遲敏感的應用(如自動駕駛輔助系統和工業系統)中也有廣泛的前景。

Huang 說道:「目前的機器學習任務都在使用 32 位密度矩陣乘法,這是 GPU 佔優勢的領域。我們正在鼓勵開發者和研究人員加入我們重構機器學習的行列,這樣才能讓 FPGA 的優勢發揮出來,因為 FPGA 可以適應向低精度的轉變。」

深度學習硬體對比評測:英特爾FPGA和英偉達GPU哪個更好?

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

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


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

RBR:2017年全球最有影響力的50家機器人公司
專欄|MSRA視覺組最新研究:可變形卷積網路
谷歌為YouTube添加新功能:利用機器學習自動生成音效字幕
前微軟首席研究員俞棟加盟騰訊AI Lab,擔任副主任

TAG:機器之心 |

您可能感興趣

《正義聯盟:超級英雄》評測:融合MOBA和ARPGDC英雄大亂斗
我的雙腳,我做主!PUMA SPEED IGNITE NETFIT評測
OPPO R11深度評測:比iPhone輕 拍照體驗更進一步
雙重打造、銳不可當——REEBOK SUBLITE SUPER DUO 3.0 實跑評測
OPPO R9s Plus對比榮耀V9深度評測 結果很明顯
騷,非常的騷!NIKE LUNARGLIDE 8 OC跑步鞋評測
集各VR巨頭:國產VR黑馬HYPEREAL Pano評測
微星X299 GAMING PRO CARBON AC評測:定製個性將是DIY主流
美商海盜船GLAIVE RGB評測:無與倫比的貼合感
影馳GAMER III 極光RGB內存評測:高顏值與實力的代表
4K HDR的魅力:評測PS4Pro+PSVR
4K HDR的魅力,評測PS4Pro PSVR
魅族PRO7深度評測:中國iPhone第7代,比蘋果更懂創新
HEXA GEAR VOLTREX 雷電帝王 評測
NIKE跑步鞋 NIKE AIR ZOOM PEGASUS 33跑鞋評測
「索尼精選Hi-Res音樂」APP全方位評測
新版MBP的好搭檔:ORICO Type-C多功能拓展塢評測
集各VR巨頭之大成:國產VR黑馬HYPEREAL Pano評測
OPPO R11 Plus最新評測:更大,更快,更久!