詳解人工智能芯片 CPU/GPU/FPGA有何差異?
1.FPGA是什么?
本文引用地址:http://www.ex-cimer.com/article/201704/346122.htm場(chǎng)效可編程邏輯閘陣列FPGA運(yùn)用硬件語(yǔ)言描述電路,根據(jù)所需要的邏輯功能對(duì)電路進(jìn)行快速燒錄。一個(gè)出廠后的成品FPGA的邏輯塊和連接可以按照設(shè)計(jì)者的需要而改變,這就好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里,所以FPGA可以完成所需要的邏輯功能。
FPGA和GPU內(nèi)都有大量的計(jì)算單元,因此它們的計(jì)算能力都很強(qiáng)。在進(jìn)行神經(jīng)網(wǎng)絡(luò)運(yùn)算的時(shí)候,兩者的速度會(huì)比CPU快很多。但是GPU由于架構(gòu)固定,硬件原生支持的指令也就固定了,而FPGA則是可編程的。其可編程性是關(guān)鍵,因?yàn)樗屲浖c終端應(yīng)用公司能夠提供與其競(jìng)爭(zhēng)對(duì)手不同的解決方案,并且能夠靈活地針對(duì)自己所用的算法修改電路。
2.FPGA和GPU的性能差異
同樣是擅長(zhǎng)并行計(jì)算的FPGA和GPU,誰能夠占領(lǐng)人工智能的高地,并不在于誰的應(yīng)用更廣泛,而是取決于誰的性能更好。在服務(wù)器端,有三個(gè)指標(biāo)可供對(duì)比:峰值性能、平均性能與功耗能效比。當(dāng)然,這三個(gè)指標(biāo)是相互影響的,不過還是可以分開說。
峰值性能:GPU遠(yuǎn)遠(yuǎn)高于FPGA
GPU上面成千上萬個(gè)核心同時(shí)跑在GHz的頻率上是非常壯觀的,最新的GPU峰值性能甚至可以達(dá)到10TFlops 以上。GPU的架構(gòu)經(jīng)過仔細(xì)設(shè)計(jì),在電路實(shí)現(xiàn)上是基于標(biāo)準(zhǔn)單元庫(kù)而在關(guān)鍵路徑上可以用手工定制電路,甚至在必要的情形下可以讓半導(dǎo)體fab依據(jù)設(shè)計(jì)需求微調(diào)工藝制程,因此可以讓許多core同時(shí)跑在非常高的頻率上。
相對(duì)而言,F(xiàn)PGA首先設(shè)計(jì)資源受到很大的限制,例如GPU如果想多加幾個(gè)核心只要增加芯片面積就行,但FPGA一旦型號(hào)選定了邏輯資源上限就確定了。而且,F(xiàn)PGA里面的邏輯單元是基于SRAM查找表,其性能會(huì)比GPU里面的標(biāo)準(zhǔn)邏輯單元差很多。最后,F(xiàn)PGA的布線資源也受限制,因?yàn)橛行┚€必須要繞很遠(yuǎn),不像GPU這樣走ASIC flow可以隨意布線,這也會(huì)限制性能。
平均性能:GPU遜于FPGA
FPGA可以根據(jù)特定的應(yīng)用去編程硬件,例如如果應(yīng)用里面的加法運(yùn)算非常多就可以把大量的邏輯資源去實(shí)現(xiàn)加法器,而GPU一旦設(shè)計(jì)完就不能改動(dòng)了,所以不能根據(jù)應(yīng)用去調(diào)整硬件資源。
目前機(jī)器學(xué)習(xí)大多使用SIMD架構(gòu),即只需一條指令可以平行處理大量數(shù)據(jù),因此用GPU很適合。但是有些應(yīng)用是MISD,即單一數(shù)據(jù)需要用許多條指令平行處理,這種情況下用FPGA做一個(gè)MISD的架構(gòu)就會(huì)比GPU有優(yōu)勢(shì)。
所以,對(duì)于平均性能,看的就是FPGA加速器架構(gòu)上的優(yōu)勢(shì)是否能彌補(bǔ)運(yùn)行速度上的劣勢(shì)。如果FPGA上的架構(gòu)優(yōu)化可以帶來相比GPU架構(gòu)兩到三個(gè)數(shù)量級(jí)的優(yōu)勢(shì),那么FPGA在平均性能上會(huì)好于GPU。
功耗能效比:
功耗方面,雖然GPU的功耗遠(yuǎn)大于FPGA的功耗,但是如果要比較功耗應(yīng)該比較在執(zhí)行效率相同時(shí)需要的功耗。如果FPGA的架構(gòu)優(yōu)化能做到很好以致于一塊FPGA的平均性能能夠接近一塊GPU,那么FPGA方案的總功耗遠(yuǎn)小于GPU,散熱問題可以大大減輕。反之,如果需要二十塊FPGA才能實(shí)現(xiàn)一塊GPU的平均性能,那么FPGA在功耗方面并沒有優(yōu)勢(shì)。
能效比的比較也是類似,能效指的是完成程序執(zhí)行消耗的能量,而能量消耗等于功耗乘以程序執(zhí)行的時(shí)間。雖然GPU的功耗遠(yuǎn)大于FPGA的功耗,但是如果FPGA執(zhí)行相同程序需要的時(shí)間比GPU長(zhǎng)幾十倍,那FPGA在能效比上就沒有優(yōu)勢(shì)了;反之如果FPGA上實(shí)現(xiàn)的硬件架構(gòu)優(yōu)化得很適合特定的機(jī)器學(xué)習(xí)應(yīng)用,執(zhí)行算法所需的時(shí)間僅僅是GPU的幾倍或甚至于接近GPU,那么FPGA的能效比就會(huì)比GPU強(qiáng)。
3.FPGA市場(chǎng)前景
隨著科技的進(jìn)展,制造業(yè)走向更高度的自動(dòng)化與智能化,對(duì)工業(yè)控制技術(shù)等領(lǐng)域不斷產(chǎn)生新的需求,在未來的工業(yè)制造領(lǐng)域,F(xiàn)PGA將有更大的發(fā)展空間。目前來看,有兩個(gè)領(lǐng)域的應(yīng)用前景十分巨大:
工業(yè)互聯(lián)網(wǎng)領(lǐng)域
作為未來制造業(yè)發(fā)展的方向,工業(yè)大數(shù)據(jù)、云計(jì)算平臺(tái)、MES系統(tǒng)等都是支持工業(yè)智能化的重要平臺(tái),它們需要完成大數(shù)據(jù)量的復(fù)雜處理,F(xiàn)PGA在其中可以發(fā)揮重要作用。
工業(yè)機(jī)器人設(shè)備領(lǐng)域
在多軸向運(yùn)作的精密控制、實(shí)時(shí)同步的連接以及設(shè)備多功能整合等方面,兼具彈性和整合性的FPGA,更能展現(xiàn)設(shè)計(jì)優(yōu)勢(shì)。如汽車ADAS需要對(duì)實(shí)時(shí)高清圖像進(jìn)行及時(shí)的分析識(shí)別與處理;在人工智能方面,深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)也需要進(jìn)行大量并行運(yùn)算。
4.FPGA現(xiàn)有市場(chǎng)
FPGA市場(chǎng)前景誘人,但是門檻之高在芯片行業(yè)里無出其右。全球有60多家公司先后斥資數(shù)十億美元,前赴后繼地嘗試登頂FPGA高地,其中不乏英特爾、IBM、德州儀器、摩托羅拉、飛利浦、東芝、三星這樣的行業(yè)巨鱷,但是最終登頂成功的只有位于美國(guó)硅谷的兩家公司:Xilinx與Altera。這兩家公司共占有近90%的市場(chǎng)份額,專利達(dá)到6000余項(xiàng)之多,如此之多的技術(shù)專利構(gòu)成的技術(shù)壁壘當(dāng)然高不可攀。
2015年6月,英特爾用史無前例的167億美元巨款收購(gòu)了Altera,當(dāng)時(shí)業(yè)內(nèi)對(duì)于英特爾此舉的解讀主要集中在服務(wù)器市場(chǎng)、物聯(lián)網(wǎng)市場(chǎng)的布局上,英特爾自己對(duì)收購(gòu)的解釋也沒有明確提到機(jī)器學(xué)習(xí)。但現(xiàn)在看來,或許這筆收購(gòu)在人工智能領(lǐng)域同樣具有相當(dāng)大的潛力。
5.FPGA行業(yè)的開拓者:
英特爾能不能通過FPGA切入AI硬件市場(chǎng)?要講清楚這個(gè)問題,我們必須要把視角從人工智能身上拉遠(yuǎn),看看英特爾的整體戰(zhàn)略布局。最近幾年,英特爾的核心盈利業(yè)務(wù)CPU同時(shí)遭到了三個(gè)因素的狙擊:PC市場(chǎng)增長(zhǎng)放緩、進(jìn)軍移動(dòng)市場(chǎng)的嘗試失敗以及摩爾定律逐漸逼近極限。單純的賣CPU固然也能賺到錢,但只有研發(fā)更高端的芯片,形成自己領(lǐng)導(dǎo)者的形象,才能賺更多的錢,支撐公司的發(fā)展。
上述三個(gè)因素的同時(shí)出現(xiàn),已經(jīng)讓英特爾發(fā)現(xiàn),如果自己仍然只是安心的守著自己的CPU業(yè)務(wù),很快就會(huì)面臨巨大的危機(jī),事實(shí)上在過去的一年里,利潤(rùn)下降、裁員的新聞也一直圍繞在英特爾的身邊,揮之不去。
因而英特爾十分渴望不要錯(cuò)過下一個(gè)深度學(xué)習(xí)的潮流,不過它缺乏自己最先進(jìn)的人工智能研究,所以在過去的兩年中瘋狂地收購(gòu)。2015年,英特爾用史無前例的167億美元拍下了FPGA制造商Altera,2016年又相繼兼并了人工智能芯片初創(chuàng)公司Nervana與Movidius。目前的英特爾正在試圖將他們整合在一起。
6.Intel的產(chǎn)品布局
英特爾斥巨資收購(gòu)Altera不是來為FPGA技術(shù)發(fā)展做貢獻(xiàn)的,相反,它要讓FPGA技術(shù)為英特爾的發(fā)展做貢獻(xiàn)。表現(xiàn)在技術(shù)路線圖上,那就是從現(xiàn)在分立的CPU芯片+分立的FPGA加速芯片,過渡到同一封裝內(nèi)的CPU晶片+FPGA晶片,到最終的集成CPU+FPGA芯片。預(yù)計(jì)這幾種產(chǎn)品形式將會(huì)長(zhǎng)期共存,因?yàn)榉至⑵骷m然性能稍差,但靈活性更高。
如果簡(jiǎn)單的將英特爾對(duì)于人工智能的產(chǎn)品布局,可以分以下幾層:
·Xeon Phi+ Nervana:用于云端最頂層的高性能計(jì)算。
·Xeon+FPGA:用于云端中間層/前端設(shè)備的低功耗性能計(jì)算。
英特爾下一代的FPGA和SoC FPGA將支持Intel架構(gòu)集成,大致如下:代號(hào)為Harrisville的產(chǎn)品采用Intel 22nm工藝技術(shù),用于工業(yè)IoT、汽車和小區(qū)射頻等領(lǐng)域;代號(hào)為Falcon Messa的中端產(chǎn)品采用Intel 10nm工藝技術(shù),用于4G/5G無線通信、UHD/8K廣播視頻、工業(yè)IoT和汽車等領(lǐng)域;代號(hào)為Falcon Mesa的高端產(chǎn)品采用Intel 10nm工藝技術(shù),用于云和加速、太比特系統(tǒng)和高速信號(hào)處理等領(lǐng)域。
·Core(GT):用于消費(fèi)級(jí)前端設(shè)備的性能計(jì)算、圖形加速。
·Euclid:提供給開發(fā)者/創(chuàng)客的開發(fā)板,集成Atom低功耗處理器、RealSense攝像頭模塊、接口,可用做無人機(jī)、小型機(jī)器人的核心開發(fā)部件。
·Curie:提供給開發(fā)者/創(chuàng)客的模塊,其內(nèi)置Quark SE系統(tǒng)芯片、藍(lán)牙低功耗無線電、以及加速計(jì)、陀螺儀等傳感器,可用做低功耗可穿戴設(shè)備的核心部件。
從產(chǎn)品線來看,包含了CPU與FPGA的異構(gòu)計(jì)算處理器將是Intel盈利的重點(diǎn)。預(yù)計(jì)到2020年Intel將有1/3的云數(shù)據(jù)中心節(jié)點(diǎn)采用FPGA技術(shù),CPU+FPGA擁有更高的單位功耗性能、更低時(shí)延和更快加速性能,在大數(shù)據(jù)和云計(jì)算領(lǐng)域有望沖擊CPU+GPU的主導(dǎo)地位,而Intel的至強(qiáng)處理器Xeon +FPGA也將在2017年下半年量產(chǎn)。
7.Intel的痛點(diǎn):生態(tài)不完善
FPGA對(duì)GPU的潛力在于其計(jì)算速度與GPU不相上下,卻在成本和功耗上對(duì)GPU有著顯著優(yōu)勢(shì)。當(dāng)然,劣勢(shì)也有,但是FPGA的潛力是非常明顯的。作為一個(gè)想要推向市場(chǎng)的商品來說,F(xiàn)PGA最需要克服,也是最容易克服的問題是普及程度。
大部分PC都配有或高端或低端的獨(dú)立GPU,對(duì)于個(gè)人進(jìn)行的中小規(guī)模神經(jīng)網(wǎng)絡(luò)開發(fā)和訓(xùn)練來說,其實(shí)它們的性能已經(jīng)基本足夠。而FPGA卻不是在電腦里能找得到的東西,而多見于各種冰箱、電視等電器設(shè)備及實(shí)驗(yàn)室中,因此想要搞到一塊能用來開發(fā)深度學(xué)習(xí)的FPGA其實(shí)還挺麻煩的。不僅如此,F(xiàn)PGA的不普及還體現(xiàn)在以下三個(gè)方面:
OpenCL編程平臺(tái)應(yīng)用不廣泛
即使GPU有著種種不足,它也不是能夠輕易被取代的。從深度學(xué)習(xí)應(yīng)用的開發(fā)工具角度,具備CUDA支持的GPU為用戶學(xué)習(xí)Caffe、Theano等研究工具提供了很好的入門平臺(tái)。自2006年推出CUDA以來,已有超過5億的筆記本電腦、工作站、計(jì)算集群和超級(jí)計(jì)算機(jī)安裝了支持CUDA的GPU。
如果FPGA想要攻占深度學(xué)習(xí)的市場(chǎng),那么產(chǎn)業(yè)鏈下游的編程平臺(tái)必不可少。目前較為流行的異構(gòu)硬件編程的替代性工具是OpenCL。不同于CUDA單一供應(yīng)商的做法,OpenCL對(duì)開發(fā)者開源、免費(fèi),這是一大重要競(jìng)爭(zhēng)力。但目前來看,其獲得的支持相較CUDA還略遜一籌。
實(shí)現(xiàn)硬件編程困難
除了軟件編程的不普及之外,吸引偏好上層編程語(yǔ)言的研究人員和應(yīng)用科學(xué)家來開發(fā)FPGA尤為艱難。雖然能流利使用一種軟件語(yǔ)言常常意味著可以輕松地學(xué)習(xí)另一種軟件語(yǔ)言,但對(duì)于硬件語(yǔ)言翻譯技能來說卻非如此。針對(duì)FPGA最常用的語(yǔ)言是Verilog和VHDL,兩者均為硬件描述語(yǔ)言(HDL)。這些語(yǔ)言和傳統(tǒng)的軟件語(yǔ)言之間的主要區(qū)別是,HDL只是單純描述硬件,而例如C語(yǔ)言等軟件語(yǔ)言則描述順序指令,并無需了解硬件層面的執(zhí)行細(xì)節(jié)。
有效地描述硬件需要對(duì)數(shù)字化設(shè)計(jì)和電路的專業(yè)知識(shí),盡管一些下層的實(shí)現(xiàn)決定可以留給自動(dòng)合成工具去實(shí)現(xiàn),但往往無法達(dá)到高效的設(shè)計(jì)。因此,研究人員和應(yīng)用科學(xué)家傾向于選擇軟件設(shè)計(jì),因其已經(jīng)非常成熟,擁有大量抽象和便利的分類來提高程序員的效率。
部署環(huán)節(jié)需要定制復(fù)雜套件
FPGA需要有一個(gè)完善的復(fù)雜生態(tài)系統(tǒng)才能保證其使用,不只體現(xiàn)在軟件與硬件編程平臺(tái)上,更體現(xiàn)在部署環(huán)節(jié)中。FPGA在安裝過程中需要針對(duì)不同的IP核定制一系列復(fù)雜的工具套件,相比之下,GPU通過PCI-e接口可以直接部署在服務(wù)器中,方便而快速。因此,嵌入式FPGA概念雖好,想要發(fā)展起來仍將面臨十分嚴(yán)峻的挑戰(zhàn)。
8.Intel的優(yōu)勢(shì)
目前在深度學(xué)習(xí)市場(chǎng)FPGA尚未成氣候,谷歌這樣的超級(jí)大廠又喜歡自己研發(fā)專用芯片,因此可以說對(duì)于深度學(xué)習(xí)芯片來說,個(gè)人開發(fā)者及中小型企業(yè)內(nèi)還有相當(dāng)大的市場(chǎng)。這個(gè)市場(chǎng)目前幾乎只有英偉達(dá)一家獨(dú)大,英特爾想要強(qiáng)勢(shì)進(jìn)入未必沒有機(jī)會(huì)。而相比于英偉達(dá)來說,英特爾有兩個(gè)明顯的優(yōu)勢(shì):
更熟悉CPU
盡管目前的人工智能市場(chǎng)幾乎只有英偉達(dá)一家獨(dú)大,但英偉達(dá)的芯片也不是能夠自己完成深度學(xué)習(xí)訓(xùn)練的?;蛘哒f,英偉達(dá)的GPU芯片還不足以取代那些英特爾的CPU,大多數(shù)環(huán)境下它們暫時(shí)只能加速這些處理器。所以,GPGPU暫時(shí)只是概念上的,GPU還不足以在大多數(shù)復(fù)雜運(yùn)算環(huán)境下代替CPU,而隨著人工智能技術(shù)的進(jìn)步,對(duì)硬件的邏輯運(yùn)算能力只會(huì)更高不會(huì)降低,所以搭載強(qiáng)大CPU核心的多核異構(gòu)處理器才是更長(zhǎng)期的發(fā)展方向。而論對(duì)CPU的熟悉,沒有一家芯片廠商能過勝過英特爾,英特爾是最有可能讓搭載了FPGA與CPU的異構(gòu)處理器真正實(shí)現(xiàn)多核心相輔相成的芯片公司。
曾涉足云計(jì)算
算法的訓(xùn)練應(yīng)該是貫穿整個(gè)應(yīng)用過程的,這樣可以隨時(shí)為消費(fèi)者提供最好體驗(yàn)的服務(wù)。但是如果要將所有算法都集中于本地訓(xùn)練,不僅會(huì)面臨計(jì)算瓶頸的問題,也容易面臨從單個(gè)用戶處收集到的數(shù)據(jù)量太少的尷尬。我們暫時(shí)不考慮很久以后可能出現(xiàn)的基于小樣本的無監(jiān)督學(xué)習(xí)的AI,畢竟那其實(shí)已經(jīng)跟人差不多了,在目前AI的發(fā)展?fàn)顩r下,將所有數(shù)據(jù)集中于云端進(jìn)行計(jì)算顯然是更理性且有效的做法。這就對(duì)通信提出了極高的要求,而英特爾恰巧在這個(gè)領(lǐng)域有著相當(dāng)多的積累。雖然英特爾的通信部門連年虧損,但在現(xiàn)在的形勢(shì)下,它卻意外地有了新的價(jià)值與潛力。
評(píng)論