深度學(xué)習(xí)方案ASIC、FPGA、GPU比較 哪種更有潛力
掃描二維碼
隨時(shí)隨地手機(jī)看文章
幾乎所有深度學(xué)習(xí)的研究者都在使用GPU,但是對(duì)比深度學(xué)習(xí)硬鑒方案,ASIC、FPGA、GPU三種究竟哪款更被看好?主要是認(rèn)清對(duì)深度學(xué)習(xí)硬件平臺(tái)的要求。
今天被羅振宇的跨年演講刷爆了朋友圈。不過(guò)他講深度學(xué)習(xí)和GPU的時(shí)候,真讓人虐心。
顯卡的處理器稱為圖形處理器(GPU),它是顯卡的“心臟”,與CPU類似,只不過(guò)GPU是專為執(zhí)行復(fù)雜的數(shù)學(xué)和幾何計(jì)算而設(shè)計(jì)的,這些計(jì)算是圖形渲染所必需的。
對(duì)深度學(xué)習(xí)硬件平臺(tái)的要求要想明白“深度學(xué)習(xí)”需要怎樣的硬件,必須了解深度學(xué)習(xí)的工作原理。首先在表層上,我們有一個(gè)巨大的數(shù)據(jù)集,并選定了一種深度學(xué)習(xí)模型。每個(gè)模型都有一些內(nèi)部參數(shù)需要調(diào)整,以便學(xué)習(xí)數(shù)據(jù)。而這種參數(shù)調(diào)整實(shí)際上可以歸結(jié)為優(yōu)化問(wèn)題,在調(diào)整這些參數(shù)時(shí),就相當(dāng)于在優(yōu)化特定的約束條件。
百度的硅谷人工智能實(shí)驗(yàn)室(SVAIL)已經(jīng)為深度學(xué)習(xí)硬件提出了DeepBench基準(zhǔn),這一基準(zhǔn)著重衡量的是基本計(jì)算的硬件性能,而不是學(xué)習(xí)模型的表現(xiàn)。這種方法旨在找到使計(jì)算變慢或低效的瓶頸。 因此,重點(diǎn)在于設(shè)計(jì)一個(gè)對(duì)于深層神經(jīng)網(wǎng)絡(luò)訓(xùn)練的基本操作執(zhí)行效果最佳的架構(gòu)。那么基本操作有哪些呢?現(xiàn)在的深度學(xué)習(xí)算法主要包括卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)?;谶@些算法,DeepBench提出以下四種基本運(yùn)算:
矩陣相乘(Matrix MulTIplicaTIon)——幾乎所有的深度學(xué)習(xí)模型都包含這一運(yùn)算,它的計(jì)算十分密集。
卷積(ConvoluTIon)——這是另一個(gè)常用的運(yùn)算,占用了模型中大部分的每秒浮點(diǎn)運(yùn)算(浮點(diǎn)/秒)。
循環(huán)層(Recurrent Layers )——模型中的反饋層,并且基本上是前兩個(gè)運(yùn)算的組合。
All Reduce——這是一個(gè)在優(yōu)化前對(duì)學(xué)習(xí)到的參數(shù)進(jìn)行傳遞或解析的運(yùn)算序列。在跨硬件分布的深度學(xué)習(xí)網(wǎng)絡(luò)上執(zhí)行同步優(yōu)化時(shí)(如AlphaGo的例子),這一操作尤其有效。
除此之外,深度學(xué)習(xí)的硬件加速器需要具備數(shù)據(jù)級(jí)別和流程化的并行性、多線程和高內(nèi)存帶寬等特性。 另外,由于數(shù)據(jù)的訓(xùn)練時(shí)間很長(zhǎng),所以硬件架構(gòu)必須低功耗。 因此,效能功耗比(Performance per Watt)是硬件架構(gòu)的評(píng)估標(biāo)準(zhǔn)之一。
GPU在處理圖形的時(shí)候,從最初的設(shè)計(jì)就能夠執(zhí)行并行指令,從一個(gè)GPU核心收到一組多邊形數(shù)據(jù),到完成所有處理并輸出圖像可以做到完全獨(dú)立。由于最初GPU就采用了大量的執(zhí)行單元,這些執(zhí)行單元可以輕松的加載并行處理,而不像CPU那樣的單線程處理。另外,現(xiàn)代的GPU也可以在每個(gè)指令周期執(zhí)行更多的單一指令。所以GPU比CPU更適合深度學(xué)習(xí)的大量矩陣、卷積運(yùn)算的需求。深度學(xué)習(xí)的應(yīng)用與其原先的應(yīng)用需求頗為類似。GPU廠家順理成章的在深度學(xué)習(xí),找到了新增長(zhǎng)點(diǎn)。
英偉達(dá)以其大規(guī)模的并行GPU和專用GPU編程框架CUDA主導(dǎo)著當(dāng)前的深度學(xué)習(xí)市場(chǎng)。但是越來(lái)越多的公司開發(fā)出了用于深度學(xué)習(xí)的加速硬件,比如谷歌的張量處理單元(TPU/Tensor Processing Unit)、英特爾的Xeon Phi Knight‘s Landing,以及高通的神經(jīng)網(wǎng)絡(luò)處理器(NNU/Neural Network Processor)。
多虧了新技術(shù)和充滿GPU的計(jì)算機(jī)數(shù)據(jù)中心,深度學(xué)習(xí)獲得了巨大的可能應(yīng)用領(lǐng)域。這家公司的任務(wù)中很大一部分都只是獲取用來(lái)探索這些可能性的時(shí)間和計(jì)算資源。這項(xiàng)工作極大地?cái)U(kuò)張了設(shè)計(jì)空間。就科學(xué)研究而言,覆蓋的領(lǐng)域已經(jīng)在指數(shù)式擴(kuò)張了。而這也已經(jīng)突破了圖像識(shí)別的范疇,進(jìn)入到了語(yǔ)音識(shí)別、自然語(yǔ)言理解等其它任務(wù)中。正因?yàn)楦采w的領(lǐng)域越來(lái)越多,微軟在提高其GPU集群的運(yùn)算能力的同時(shí)也在探索使用其它的專用處理器,其中包括FPGA——一種能針對(duì)特定任務(wù)(如深度學(xué)習(xí))編程的芯片。而且這項(xiàng)工作已經(jīng)在全世界的技術(shù)和人工智能領(lǐng)域掀起了波瀾。英特爾完成了其歷史上最大的并購(gòu)案,收購(gòu)了專注FPGA的Altera。
FPGA的優(yōu)勢(shì)是,如果計(jì)算機(jī)需要改變,它可以被重新裝配。但是,最通用、最主流的方案仍舊是使用 GPU,以并行處理大量數(shù)學(xué)運(yùn)算。不出預(yù)料,GPU 方案的主要推動(dòng)者是該市場(chǎng)的霸主英偉達(dá)。
英偉達(dá)旗艦顯卡 Pascal TItan X
事實(shí)上, 2009 年之后人工神經(jīng)網(wǎng)絡(luò)的復(fù)興與 GPU 有緊密聯(lián)系——那一年,幾名斯坦福的學(xué)者向世界展示,使用 GPU 可以在合理的時(shí)間內(nèi)訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)。這直接引發(fā)了 GPU 通用計(jì)算的浪潮。
英偉達(dá)首席科學(xué)家、斯坦福并發(fā) VLSI 架構(gòu)小組的負(fù)責(zé)人 William J. Dally 表示:“行內(nèi)每個(gè)人現(xiàn)在都在做深度學(xué)習(xí),這方面,GPU 幾乎已經(jīng)達(dá)到了最好。”