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