詳解人工智能芯片 CPU/GPU/FPGA有何差異?
2.驟然爆發(fā)的數據洪流
本文引用地址:http://dyxdggzs.com/article/201704/346122.htm深度學(xué)習模型需要通過(guò)大量的數據訓練才能獲得理想的效果。以語(yǔ)音識別問(wèn)題為例,僅在其聲學(xué)建模部分,算法就面臨著(zhù)十億到千億級別的訓練樣本數據。訓練樣本的稀缺使得人工智能即使在經(jīng)歷了算法的突破后依然沒(méi)能成為人工智能應用領(lǐng)域的主流算法。直到2012年,分布于世界各地的互相聯(lián)系的設備、機器和系統促進(jìn)了非結構化數據數量的巨大增長(cháng),并終于在可靠性方面發(fā)生了質(zhì)的飛躍,大數據時(shí)代到來(lái)。
大數據到底有多大?一天之中,互聯(lián)網(wǎng)產(chǎn)生的全部?jì)热菘梢钥虧M(mǎn)1.68億張DVD;發(fā)出的郵件有2940億封之多,相當于美國兩年的紙質(zhì)信件數量;發(fā)出的社區帖子達200萬(wàn)個(gè),相當于《時(shí)代》雜志770年的文字量;賣(mài)出的手機為37.8萬(wàn)臺,高于全球每天出生的嬰兒數量37.1萬(wàn)倍。然而,即使是人們每天創(chuàng )造的全部信息,包括語(yǔ)音通話(huà)、電子郵件和信息在內的各種通信,以及上傳的全部圖片、視頻與音樂(lè ),其信息量也無(wú)法匹及每一天所創(chuàng )造出的關(guān)于人們自身活動(dòng)的數字信息量。
我們現在還處于所謂“物聯(lián)網(wǎng)”的最初級階段,隨著(zhù)技術(shù)的成熟,我們的通訊設備、交通工具和可穿戴科技將能互相連接與溝通,信息量的增加也將以幾何倍數持續下去。
3.難以滿(mǎn)足的硬件需求
驟然爆發(fā)的數據洪流滿(mǎn)足了深度學(xué)習算法對于訓練數據量的要求,但是算法的實(shí)現還需要相應處理器極高的運算速度作為支撐。當前流行的包括X86和ARM在內的傳統CPU處理器架構往往需要數百甚至上千條指令才能完成一個(gè)神經(jīng)元的處理,但對于并不需要太多的程序指令,卻需要海量數據運算的深度學(xué)習的計算需求,這種結構就顯得非常笨拙。尤其是在當前功耗限制下無(wú)法通過(guò)提升CPU主頻來(lái)加快指令執行速度,這種矛盾愈發(fā)不可調和,深度學(xué)習研究人員迫切需要一種替代硬件來(lái)滿(mǎn)足海量數據的運算需求。
或許終有一日將會(huì )誕生全新的、為人工智能而專(zhuān)門(mén)設計的處理器架構,但在那之前的幾十年,人工智能仍然要向前走,便只能改進(jìn)現有處理器,使之成為能夠最大程度適應大吞吐量運算的計算架構。目前來(lái)看,圍繞現有處理器的主流改進(jìn)方式有兩個(gè):
·圖形處理器通用化:
將圖形處理器GPU用作矢量處理器。在這種架構中,GPU擅長(cháng)浮點(diǎn)運算的特點(diǎn)將得到充分利用,使其成為可以進(jìn)行并行處理的通用計算芯片GPGPU。英偉達公司從2006年下半年已經(jīng)開(kāi)始陸續推出相關(guān)的硬件產(chǎn)品以及軟件開(kāi)發(fā)工具,目前是人工智能硬件市場(chǎng)的主導。
·多核處理器異構化:
將GPU或FPGA等其他處理器內核集成到CPU上。在這種架構中,CPU內核所不擅長(cháng)的浮點(diǎn)運算以及信號處理等工作,將由集成在同一塊芯片上的其它可編程內核執行,而GPU與FPGA都以擅長(cháng)浮點(diǎn)運算著(zhù)稱(chēng)。AMD與Intel公司分別致力于基于GPU與FPGA的異構處理器,希望借此切入人工智能市場(chǎng)。
三、現有市場(chǎng)——通用芯片GPU
在深度學(xué)習的領(lǐng)域里,最重要的是數據和運算。誰(shuí)的數據更多,誰(shuí)的運算更快,誰(shuí)就會(huì )占據優(yōu)勢。因此,在處理器的選擇上,可以用于通用基礎計算且運算速率更快的GPU迅速成為人工智能計算的主流芯片??梢哉f(shuō),在過(guò)去的幾年,尤其是2015年以來(lái),人工智能大爆發(fā)就是由于英偉達公司的GPU得到廣泛應用,使得并行計算變得更快、更便宜、更有效。
1.GPU是什么?
圖形處理器GPU最初是用在個(gè)人電腦、工作站、游戲機和一些移動(dòng)設備上運行繪圖運算工作的微處理器,可以快速地處理圖像上的每一個(gè)像素點(diǎn)。后來(lái)科學(xué)家發(fā)現,其海量數據并行運算的能力與深度學(xué)習需求不謀而合,因此,被最先引入深度學(xué)習。2011年吳恩達教授率先將其應用于谷歌大腦中便取得驚人效果,結果表明,12顆英偉達的GPU可以提供相當于2000顆CPU的深度學(xué)習性能,之后紐約大學(xué)、多倫多大學(xué)以及瑞士人工智能實(shí)驗室的研究人員紛紛在GPU上加速其深度神經(jīng)網(wǎng)絡(luò )。
2.GPU和CPU的設計區別
那么GPU的快速運算能力是如何獲得的?這就要追溯到芯片最初的設計目標了。中央處理器CPU需要很強的處理不同類(lèi)型數據的計算能力以及處理分支與跳轉的邏輯判斷能力,這些都使得CPU的內部結構異常復雜;而圖形處理器GPU最初面對的是類(lèi)型高度統一的、相互無(wú)依賴(lài)的大規模數據和不需要被打斷的純凈的計算環(huán)境,所以GPU只需要進(jìn)行高速運算而不需要邏輯判斷。目標運算環(huán)境的區別決定了GPU與CPU不同的設計架構:
CPU基于低延時(shí)的設計
·大量緩存空間Cache,方便快速提取數據。CPU將大量訪(fǎng)問(wèn)過(guò)的數據存放在Cache中,當需要再次訪(fǎng)問(wèn)這些數據時(shí),就不用從數據量巨大的內存中提取了,而是直接從緩存中提取。
·強大的算術(shù)運算單元ALU,可以在很短的時(shí)鐘周期內完成算數計算。當今的CPU可以達到64bit雙精度,執行雙精度浮點(diǎn)源計算加法和乘法只需要1~3個(gè)時(shí)鐘周期,時(shí)鐘周期頻率達到1.532~3gigahertz。
·復雜的邏輯控制單元,當程序含有多個(gè)分支時(shí),它通過(guò)提供分支預測來(lái)降低延時(shí)。
·包括對比電路單元與轉發(fā)電路單元在內的諸多優(yōu)化電路,當一些指令依賴(lài)前面的指令結果時(shí),它決定這些指令在pipeline中的位置并且盡可能快的轉發(fā)一個(gè)指令的結果給后續指令。
GPU基于大吞吐量的設計
·壓縮緩存空間Cache,從而最大化激發(fā)內存吞吐量,可以處理超長(cháng)的流水線(xiàn)。緩存的目的不是保存之后需要訪(fǎng)問(wèn)的數據,而是擔任數據轉發(fā)的角色,為線(xiàn)程提高服務(wù)。如果有很多線(xiàn)程需要訪(fǎng)問(wèn)同一個(gè)數據,緩存會(huì )合并這些訪(fǎng)問(wèn),再去DRAM中訪(fǎng)問(wèn)數據,獲取的數據將通過(guò)緩存轉發(fā)給對應的線(xiàn)程。這種方法雖然減小了緩存,但由于需要訪(fǎng)問(wèn)內存,因而自然會(huì )帶來(lái)延時(shí)效應。
·高效的算數運算單元和簡(jiǎn)化的邏輯控制單元,把串行訪(fǎng)問(wèn)拆分成多個(gè)簡(jiǎn)單的并行訪(fǎng)問(wèn),并同時(shí)運算。例如,在CPU上約有20%的晶體管是用作計算的,而GPU上有80%的晶體管用作計算。

3.GPU和CPU的性能差異
CPU與GPU在各自領(lǐng)域都可以高效地完成任務(wù),但當同樣應用于通用基礎計算領(lǐng)域時(shí),設計架構的差異直接導致了兩種芯片性能的差異。
CPU擁有專(zhuān)為順序邏輯處理而優(yōu)化的幾個(gè)核心組成的串行架構,這決定了其更擅長(cháng)邏輯控制、串行運算與通用類(lèi)型數據運算;而GPU擁有一個(gè)由數以千計的更小、更高效的核心組成的大規模并行計算架構,大部分晶體管主要用于構建控制電路和Cache,而控制電路也相對簡(jiǎn)單,且對Cache的需求小,只有小部分晶體管來(lái)完成實(shí)際的運算工作。所以大部分晶體管可以組成各類(lèi)專(zhuān)用電路、多條流水線(xiàn),使得GPU的計算速度有了突破性的飛躍,擁有了更強大的處理浮點(diǎn)運算的能力。這決定了其更擅長(cháng)處理多重任務(wù),尤其是沒(méi)有技術(shù)含量的重復性工作。
當前最頂級的CPU只有4核或者6核,模擬出8個(gè)或者12個(gè)處理線(xiàn)程來(lái)進(jìn)行運算,但是普通級別的GPU就包含了成百上千個(gè)處理單元,高端的甚至更多,這對于多媒體計算中大量的重復處理過(guò)程有著(zhù)天生的優(yōu)勢。
舉個(gè)常見(jiàn)的例子,一個(gè)向量相加的程序,可以讓CPU跑一個(gè)循環(huán),每個(gè)循環(huán)對一個(gè)分量做加法,也可以讓GPU同時(shí)開(kāi)大量線(xiàn)程,每個(gè)并行的線(xiàn)程對應一個(gè)分量的相加。CPU跑循環(huán)的時(shí)候每條指令所需時(shí)間一般低于GPU,但GPU因為可以同時(shí)開(kāi)啟大量的線(xiàn)程并行地跑,具有SIMD的優(yōu)勢。
評論