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