深度學(xué)習(xí)最近取得的成功勢不可擋:從圖像分類和語音識別到圖片標(biāo)注、理解視覺場景、視頻概述、語言翻譯、繪畫,甚至是生成圖像、語音、聲音和音樂!隨著我們的家變得越來越智能,你會發(fā)現(xiàn)許多設(shè)備都會需要連續(xù)地使用深度學(xué)習(xí)應(yīng)用、收集和處理數(shù)據(jù)。
所以我們需要新的硬件,一個比 Intel Xeon 所驅(qū)動的服務(wù)器更加高效的硬件。一個英特爾服務(wù)器 CPU 可能會消耗 100-150 瓦功率并需要一個有著冷卻裝置的超大系統(tǒng)來支持其性能的正常發(fā)揮。
還有哪些其它的選擇?
圖形處理器、GPU 現(xiàn)場可編程的邏輯器件、FPGA(現(xiàn)場可編程門陣列/Field-Programmable Gate Array) 定制芯片、特殊應(yīng)用型集成電路、ASIC、[**芯片**](http://pubads.g.doubleclick.net/gampad/clk?id=132505090&iu=/122049170/TEXT_AD)系統(tǒng)或 [**SoC**](http://pubads.g.doubleclick.net/gampad/clk?id=132505090&iu=/122049170/TEXT_AD) 數(shù)字信號處理器、DSP 未來的、外星人發(fā)明的、由新的物理定律所發(fā)展出的技術(shù)
GPU
GPU 最早是為生成基于多邊形網(wǎng)絡(luò)的計算機圖形而設(shè)計的。在最近幾年,由于近來計算機游戲和圖形引擎領(lǐng)域的需求和復(fù)雜度需要,GPU 積累了強大的處理性能。英偉達(dá)是 GPU 領(lǐng)域的領(lǐng)軍者,能生產(chǎn)有數(shù)千個內(nèi)核的處理器,這些內(nèi)核的設(shè)計工作效率可以達(dá)到 100%。實際上這些處理器也非常適用于運行神經(jīng)網(wǎng)絡(luò)和矩陣乘法方面的計算。注意,矩陣向量的乘法運算被認(rèn)為是「尷尬的并行(embarrassingly parallel)」,因為它可以通過簡單的算法擴展被并行化(它們?nèi)鄙俜种б蚨梢员苊饩彺?a target="_blank">信息丟失)。
Titan X 是訓(xùn)練深度學(xué)習(xí)模型的一個最得力的助手。它擁有 3500 多個內(nèi)核,每秒能夠執(zhí)行超過 11 萬億次浮點運算。更多測試性能方面的信息請參考這里(https://github.com/soumith/convnet-benchmarks)。
由于 GPU 的超多核(~3500 個,對比 Intel Xeon 的 16 個/ Xeon Phi 的 32 個),英特爾的 CPU 和英偉達(dá)的 GPU 之間的競爭助長了后者的發(fā)展,使其 GPU 比 CPU 在時鐘頻率快 2~3 倍。GPU 核是更為復(fù)雜(分支預(yù)測和流程)的 CPU 核的流線型版本,但是前者許多都支持更高級別的并行運算,因而擁有更好的性能。
這種 GPU 很擅長訓(xùn)練深度學(xué)習(xí)系統(tǒng)——卷積神經(jīng)網(wǎng)絡(luò)或者循環(huán)神經(jīng)網(wǎng)絡(luò)。它們可以在僅僅幾毫秒之內(nèi)就運行一批 128 或 256 張圖像。但是它們同時也會消耗大約 250 瓦的功率并且需要一個完整的計算機來支持運行,這又消耗了額外的 150 瓦的功率。一個高性能的 GPU 系統(tǒng)至少需要消耗 400 瓦的功率。
這并不適用于增強現(xiàn)實眼鏡、無人機、手機、移動設(shè)備和小型機器人。甚至對于未來的消費級自動駕駛汽車來說也是不可接受的。
英偉達(dá)正在致力于開發(fā)效率更高的器件,比如 Tegra TX1、TX2(深度神經(jīng)網(wǎng)絡(luò)需要 12 瓦的能耗和每秒 ~100 千兆次浮點運算的性能,TX2 需要的更多)和更強大的 Drive PX(250 瓦,與一個 Titan X 的消耗量差不多)。
這里還要注意,在自動駕駛汽車和智能攝像機中,直播視頻是必要的而圖像批處理是不可能實現(xiàn)的,因為視頻需要針對及時響應(yīng)進行實時處理。
一般 GPU 的水平大約是 5 G-flops/s per W。如果我們想在移動系統(tǒng)中部署深度學(xué)習(xí)解決方案,那我們還需要更好的方法!
FPGA
Xilinx 等公司的現(xiàn)代 FPGA 器件就是電子元器件中的樂高。我們可以使用其電路作為模塊來構(gòu)建出整個定制微處理器和復(fù)雜的異構(gòu)系統(tǒng)。而在最近幾年,F(xiàn)PGA 開始生產(chǎn)出越來越多的乘累加計算模塊。這些 DSP 模塊正如其名,能夠執(zhí)行乘法運算并可以被排列到一起來進行一定量的并行運算。
我們將 FPGA 應(yīng)用于神經(jīng)網(wǎng)絡(luò)的研究歷史已有 10 年時間。我們的工作始于來自紐約大學(xué)的 Yann LeCun 的開創(chuàng)性工作,尤其是 Clement Farabet。我們的協(xié)同合作制造出了 NeuFlow,它是一個復(fù)雜的、用于運行神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)流處理器。
從 2011 年到 2015 年早期,我們完善了一個全新的設(shè)計——nn-X。這項工作是由 Berin Martini 和 Vinayak Gokhale(來自我們的辦公室)領(lǐng)導(dǎo)的。這套系統(tǒng)可以在 4 瓦的功率電力預(yù)算下實現(xiàn) 200 G-ops/s 的速度,也即 50 G-ops/s/W,這個結(jié)果幾乎是 GPU 性能的 10 倍。
但是 nn-X 有兩個很大的問題:
當(dāng)固定的卷積引擎(convolutional engine)未被使用時其利用率會很低
高內(nèi)存帶寬
第一個問題是由于 nn-X 采用了固定的 10x10 卷積引擎,而當(dāng)它在執(zhí)行 3x3 卷積時,只有 9% 的 DSP 單元得到了有效利用。這一點后來是通過將一個 12x12 的網(wǎng)格分為 4x4 單元的 3x3 卷積器而得以解決。不幸的是該系統(tǒng)還需要高內(nèi)存帶寬,因為它并沒有使用數(shù)據(jù)緩存且需要從內(nèi)存中讀取輸入并直接將結(jié)果保存在內(nèi)存中。像這樣的 nn-X 不能進行擴展,且其 DPS 單元的利用率永遠(yuǎn)不會超過 75–80%。
設(shè)計方面有類似限制的系統(tǒng)也會有性能方面的限制。
我們所需的是一個帶有數(shù)據(jù)緩存的系統(tǒng),它可以使用任意組 DPS 單元來有效地(近乎 100% 地)利用資源。這種系統(tǒng)有 Microsoft Catapult 和我們的 SnowFlake 加速器,后者的利用率幾乎可以達(dá)到 100%(更多內(nèi)容即將呈現(xiàn))。
微軟使用 Altera 器件來實現(xiàn)創(chuàng)紀(jì)錄的深度神經(jīng)網(wǎng)絡(luò)處理性能。不幸的是它并不是一個商業(yè)化的系統(tǒng),而是一項微軟的數(shù)據(jù)中心資產(chǎn),因而還未對公眾開放。中國的科技巨頭企業(yè)百度也加入了這一隊列。
定制 SoC
高通、AMD、ARM、英特爾和英偉達(dá)都在致力于將定制化芯片整合進它們的現(xiàn)有解決方案中。Nervana 和 Movidius(目前都在英特爾旗下)已經(jīng)或者說正在開發(fā)集合方案。SoC 在同一技術(shù)節(jié)點上所能提供的性能大約是 FPGA 系統(tǒng)的 10 倍,在特定結(jié)構(gòu)中還要更高。由于 SoC 和處理器所需的功率變得越來越低,其區(qū)別將來自于新的集合內(nèi)存系統(tǒng)和帶寬對外部存儲器的有效利用。在這一領(lǐng)域,整合為 systems-on-a-package(SOP)的 3D memory 至少可以節(jié)約 10 倍的功率。
DSP
DSP 已經(jīng)存在了很長一段時間,它最初是用來執(zhí)行矩陣算法的。但到目前為止,DSP 并沒能真正提供任何有用的性能或是可以與 GPU 相匹敵的器件。為什么會這樣呢?其主要原因就是核數(shù)量。DSP 主要用于電信系統(tǒng),且無需擁有 16 個或 32 個以上的核。其工作負(fù)載并不需要這么多。相反,GPU 負(fù)載在近 10~15 年間一直在增加,因此它需要更多的核。最終,大約從 2006 年開始,英偉達(dá)的 GPU 在性能上就超過了 DSP。
Texas Instruments 公司還在開發(fā) DSP,但是我們從中并沒有看到任何有競爭力的性能。且許多 DSP 也已經(jīng)被 FPGA 取代了。
Qualcomm 在它們的 SoC 中使用 DSP,并且其性能會有所加速,但是目前還沒有足夠多的信息來將它與其它的解決方案進行比較。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21738瀏覽量
603464 -
cpu
+關(guān)注
關(guān)注
68文章
10863瀏覽量
211799 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5503瀏覽量
121176
原文標(biāo)題:剖析GPU、FPGA、ASIC和DSP,如何選擇高效的深度學(xué)習(xí)硬件?
文章出處:【微信號:FPGAer_Club,微信公眾號:FPGAer俱樂部】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論