新聞中心

EEPW首頁 > 智能計算 > 設(shè)計應(yīng)用 > 詳解人工智能芯片 CPU/GPU/FPGA有何差異?

詳解人工智能芯片 CPU/GPU/FPGA有何差異?

作者: 時間:2017-04-01 來源:行業(yè)報告研究院 收藏
編者按:CPU與GPU在各自領(lǐng)域都可以高效地完成任務(wù),但當(dāng)同樣應(yīng)用于通用基礎(chǔ)計算領(lǐng)域時,設(shè)計架構(gòu)的差異直接導(dǎo)致了兩種芯片性能的差異。

  2.驟然爆發(fā)的數(shù)據(jù)洪流

本文引用地址:http://butianyuan.cn/article/201704/346122.htm

  深度學(xué)習(xí)模型需要通過大量的數(shù)據(jù)訓(xùn)練才能獲得理想的效果。以語音識別問題為例,僅在其聲學(xué)建模部分,算法就面臨著十億到千億級別的訓(xùn)練樣本數(shù)據(jù)。訓(xùn)練樣本的稀缺使得人工智能即使在經(jīng)歷了算法的突破后依然沒能成為人工智能應(yīng)用領(lǐng)域的主流算法。直到2012年,分布于世界各地的互相聯(lián)系的設(shè)備、機器和系統(tǒng)促進(jìn)了非結(jié)構(gòu)化數(shù)據(jù)數(shù)量的巨大增長,并終于在可靠性方面發(fā)生了質(zhì)的飛躍,大數(shù)據(jù)時代到來。

  大數(shù)據(jù)到底有多大?一天之中,互聯(lián)網(wǎng)產(chǎn)生的全部內(nèi)容可以刻滿1.68億張DVD;發(fā)出的郵件有2940億封之多,相當(dāng)于美國兩年的紙質(zhì)信件數(shù)量;發(fā)出的社區(qū)帖子達(dá)200萬個,相當(dāng)于《時代》雜志770年的文字量;賣出的手機為37.8萬臺,高于全球每天出生的嬰兒數(shù)量37.1萬倍。然而,即使是人們每天創(chuàng)造的全部信息,包括語音通話、電子郵件和信息在內(nèi)的各種通信,以及上傳的全部圖片、視頻與音樂,其信息量也無法匹及每一天所創(chuàng)造出的關(guān)于人們自身活動的數(shù)字信息量。

  我們現(xiàn)在還處于所謂“物聯(lián)網(wǎng)”的最初級階段,隨著技術(shù)的成熟,我們的通訊設(shè)備、交通工具和可穿戴科技將能互相連接與溝通,信息量的增加也將以幾何倍數(shù)持續(xù)下去。

  3.難以滿足的硬件需求

  驟然爆發(fā)的數(shù)據(jù)洪流滿足了深度學(xué)習(xí)算法對于訓(xùn)練數(shù)據(jù)量的要求,但是算法的實現(xiàn)還需要相應(yīng)處理器極高的運算速度作為支撐。當(dāng)前流行的包括X86和ARM在內(nèi)的傳統(tǒng)CPU處理器架構(gòu)往往需要數(shù)百甚至上千條指令才能完成一個神經(jīng)元的處理,但對于并不需要太多的程序指令,卻需要海量數(shù)據(jù)運算的深度學(xué)習(xí)的計算需求,這種結(jié)構(gòu)就顯得非常笨拙。尤其是在當(dāng)前功耗限制下無法通過提升CPU主頻來加快指令執(zhí)行速度,這種矛盾愈發(fā)不可調(diào)和,深度學(xué)習(xí)研究人員迫切需要一種替代硬件來滿足海量數(shù)據(jù)的運算需求。

  或許終有一日將會誕生全新的、為人工智能而專門設(shè)計的處理器架構(gòu),但在那之前的幾十年,人工智能仍然要向前走,便只能改進(jìn)現(xiàn)有處理器,使之成為能夠最大程度適應(yīng)大吞吐量運算的計算架構(gòu)。目前來看,圍繞現(xiàn)有處理器的主流改進(jìn)方式有兩個:

  ·圖形處理器通用化:

  將圖形處理器用作矢量處理器。在這種架構(gòu)中,擅長浮點運算的特點將得到充分利用,使其成為可以進(jìn)行并行處理的通用計算芯片GP。英偉達(dá)公司從2006年下半年已經(jīng)開始陸續(xù)推出相關(guān)的硬件產(chǎn)品以及軟件開發(fā)工具,目前是人工智能硬件市場的主導(dǎo)。

  ·多核處理器異構(gòu)化:

  將GPU或等其他處理器內(nèi)核集成到CPU上。在這種架構(gòu)中,CPU內(nèi)核所不擅長的浮點運算以及信號處理等工作,將由集成在同一塊芯片上的其它可編程內(nèi)核執(zhí)行,而GPU與都以擅長浮點運算著稱。AMD與Intel公司分別致力于基于GPU與的異構(gòu)處理器,希望借此切入人工智能市場。

  三、現(xiàn)有市場——通用芯片GPU

  在深度學(xué)習(xí)的領(lǐng)域里,最重要的是數(shù)據(jù)和運算。誰的數(shù)據(jù)更多,誰的運算更快,誰就會占據(jù)優(yōu)勢。因此,在處理器的選擇上,可以用于通用基礎(chǔ)計算且運算速率更快的GPU迅速成為人工智能計算的主流芯片。可以說,在過去的幾年,尤其是2015年以來,人工智能大爆發(fā)就是由于英偉達(dá)公司的GPU得到廣泛應(yīng)用,使得并行計算變得更快、更便宜、更有效。

  1.GPU是什么?

  圖形處理器GPU最初是用在個人電腦、工作站、游戲機和一些移動設(shè)備上運行繪圖運算工作的微處理器,可以快速地處理圖像上的每一個像素點。后來科學(xué)家發(fā)現(xiàn),其海量數(shù)據(jù)并行運算的能力與深度學(xué)習(xí)需求不謀而合,因此,被最先引入深度學(xué)習(xí)。2011年吳恩達(dá)教授率先將其應(yīng)用于谷歌大腦中便取得驚人效果,結(jié)果表明,12顆英偉達(dá)的GPU可以提供相當(dāng)于2000顆CPU的深度學(xué)習(xí)性能,之后紐約大學(xué)、多倫多大學(xué)以及瑞士人工智能實驗室的研究人員紛紛在GPU上加速其深度神經(jīng)網(wǎng)絡(luò)。

  2.GPU和CPU的設(shè)計區(qū)別

  那么GPU的快速運算能力是如何獲得的?這就要追溯到芯片最初的設(shè)計目標(biāo)了。中央處理器CPU需要很強的處理不同類型數(shù)據(jù)的計算能力以及處理分支與跳轉(zhuǎn)的邏輯判斷能力,這些都使得CPU的內(nèi)部結(jié)構(gòu)異常復(fù)雜;而圖形處理器GPU最初面對的是類型高度統(tǒng)一的、相互無依賴的大規(guī)模數(shù)據(jù)和不需要被打斷的純凈的計算環(huán)境,所以GPU只需要進(jìn)行高速運算而不需要邏輯判斷。目標(biāo)運算環(huán)境的區(qū)別決定了GPU與CPU不同的設(shè)計架構(gòu):

  CPU基于低延時的設(shè)計

  ·大量緩存空間Cache,方便快速提取數(shù)據(jù)。CPU將大量訪問過的數(shù)據(jù)存放在Cache中,當(dāng)需要再次訪問這些數(shù)據(jù)時,就不用從數(shù)據(jù)量巨大的內(nèi)存中提取了,而是直接從緩存中提取。

  ·強大的算術(shù)運算單元ALU,可以在很短的時鐘周期內(nèi)完成算數(shù)計算。當(dāng)今的CPU可以達(dá)到64bit雙精度,執(zhí)行雙精度浮點源計算加法和乘法只需要1~3個時鐘周期,時鐘周期頻率達(dá)到1.532~3gigahertz。

  ·復(fù)雜的邏輯控制單元,當(dāng)程序含有多個分支時,它通過提供分支預(yù)測來降低延時。

  ·包括對比電路單元與轉(zhuǎn)發(fā)電路單元在內(nèi)的諸多優(yōu)化電路,當(dāng)一些指令依賴前面的指令結(jié)果時,它決定這些指令在pipeline中的位置并且盡可能快的轉(zhuǎn)發(fā)一個指令的結(jié)果給后續(xù)指令。

  GPU基于大吞吐量的設(shè)計

  ·壓縮緩存空間Cache,從而最大化激發(fā)內(nèi)存吞吐量,可以處理超長的流水線。緩存的目的不是保存之后需要訪問的數(shù)據(jù),而是擔(dān)任數(shù)據(jù)轉(zhuǎn)發(fā)的角色,為線程提高服務(wù)。如果有很多線程需要訪問同一個數(shù)據(jù),緩存會合并這些訪問,再去DRAM中訪問數(shù)據(jù),獲取的數(shù)據(jù)將通過緩存轉(zhuǎn)發(fā)給對應(yīng)的線程。這種方法雖然減小了緩存,但由于需要訪問內(nèi)存,因而自然會帶來延時效應(yīng)。

  ·高效的算數(shù)運算單元和簡化的邏輯控制單元,把串行訪問拆分成多個簡單的并行訪問,并同時運算。例如,在CPU上約有20%的晶體管是用作計算的,而GPU上有80%的晶體管用作計算。



  3.GPU和CPU的性能差異

  CPU與GPU在各自領(lǐng)域都可以高效地完成任務(wù),但當(dāng)同樣應(yīng)用于通用基礎(chǔ)計算領(lǐng)域時,設(shè)計架構(gòu)的差異直接導(dǎo)致了兩種芯片性能的差異。

  CPU擁有專為順序邏輯處理而優(yōu)化的幾個核心組成的串行架構(gòu),這決定了其更擅長邏輯控制、串行運算與通用類型數(shù)據(jù)運算;而GPU擁有一個由數(shù)以千計的更小、更高效的核心組成的大規(guī)模并行計算架構(gòu),大部分晶體管主要用于構(gòu)建控制電路和Cache,而控制電路也相對簡單,且對Cache的需求小,只有小部分晶體管來完成實際的運算工作。所以大部分晶體管可以組成各類專用電路、多條流水線,使得GPU的計算速度有了突破性的飛躍,擁有了更強大的處理浮點運算的能力。這決定了其更擅長處理多重任務(wù),尤其是沒有技術(shù)含量的重復(fù)性工作。

  當(dāng)前最頂級的CPU只有4核或者6核,模擬出8個或者12個處理線程來進(jìn)行運算,但是普通級別的GPU就包含了成百上千個處理單元,高端的甚至更多,這對于多媒體計算中大量的重復(fù)處理過程有著天生的優(yōu)勢。

  舉個常見的例子,一個向量相加的程序,可以讓CPU跑一個循環(huán),每個循環(huán)對一個分量做加法,也可以讓GPU同時開大量線程,每個并行的線程對應(yīng)一個分量的相加。CPU跑循環(huán)的時候每條指令所需時間一般低于GPU,但GPU因為可以同時開啟大量的線程并行地跑,具有SIMD的優(yōu)勢。



關(guān)鍵詞: GPU FPGA

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉