深度學(xué)習(xí)首選GPU還是FPGA?
人工智能
本文引用地址:http://cafeforensic.com/article/201812/396194.htm人工智能(Artificial Intelligence),英文縮寫為AI。它是研究、開發(fā)用于模擬、延伸和擴(kuò)展人的智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門新的技術(shù)科學(xué)。
人工智能是計(jì)算機(jī)科學(xué)的一個(gè)分支,它企圖了解智能的實(shí)質(zhì),并生產(chǎn)出一種新的能以人類智能相似的方式做出反應(yīng)的智能機(jī)器,該領(lǐng)域的研究包括機(jī)器人、語言識(shí)別、圖像識(shí)別、自然語言處理和專家系統(tǒng)等。人工智能從誕生以來,理論和技術(shù)日益成熟,應(yīng)用領(lǐng)域也不斷擴(kuò)大,可以設(shè)想,未來人工智能帶來的科技產(chǎn)品,將會(huì)是人類智慧的“容器”。
人工智能可以對(duì)人的意識(shí)、思維的信息過程的模擬。人工智能不是人的智能,但能像人那樣思考、也可能超過人的智能。
人工智能是一門極富挑戰(zhàn)性的科學(xué),從事這項(xiàng)工作的人必須懂得計(jì)算機(jī)知識(shí),心理學(xué)和哲學(xué)。人工智能是包括十分廣泛的科學(xué),它由不同的領(lǐng)域組成,如機(jī)器學(xué)習(xí),計(jì)算機(jī)視覺等等,總的說來,人工智能研究的一個(gè)主要目標(biāo)是使機(jī)器能夠勝任一些通常需要人類智能才能完成的復(fù)雜工作。但不同的時(shí)代、不同的人對(duì)這種“復(fù)雜工作”的理解是不同的。
GPU優(yōu)勢(shì)
1.從峰值性能來說,GPU(10Tflops)遠(yuǎn)遠(yuǎn)高于FPGA(<1TFlops);
2.GPU相對(duì)于FPGA還有一個(gè)優(yōu)勢(shì)就是內(nèi)存接口, GPU的內(nèi)存接口(傳統(tǒng)的GDDR5,最近更是用上了HBM和HBM2)的帶寬遠(yuǎn)好于FPGA的傳統(tǒng)DDR接口(大約帶寬高4-5倍);
3.功耗方面,雖然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ì)。
4.FPGA缺點(diǎn)有三點(diǎn):
第一,基本單元的計(jì)算能力有限。為了實(shí)現(xiàn)可重構(gòu)特性,F(xiàn)PGA 內(nèi)部有大量極細(xì)粒度的基本單元,但是每個(gè)單元的計(jì)算能力(主要依靠LUT 查找表)都遠(yuǎn)遠(yuǎn)低于CPU 和GPU 中的ALU模塊。
第二,速度和功耗相對(duì)專用定制芯片(ASIC)仍然存在不小差距。
第三,F(xiàn)PGA 價(jià)格較為昂貴,在規(guī)模放量的情況下單塊FPGA 的成本要遠(yuǎn)高于專用定制芯片。最后誰能勝出, 完全取決于FPGA架構(gòu)優(yōu)化能否彌補(bǔ)峰值性能的劣勢(shì)。
5.個(gè)人更推薦: CPU+FPGA的組合模式; 其中FPGA用于整形計(jì)算,cpu進(jìn)行浮點(diǎn)計(jì)算和調(diào)度,此組合的擁有更高的單位功耗性能和更低的時(shí)延。最后更想GPU穩(wěn)定開放,發(fā)揮其長(zhǎng)處, 達(dá)到真正的物美價(jià)廉!
FPGA優(yōu)勢(shì)
人工智能目前仍處于早期階段,未來人工智能的主戰(zhàn)場(chǎng)是在推理環(huán)節(jié),遠(yuǎn)沒有爆發(fā)。未來勝負(fù)尚未可知,各家技術(shù)路線都有機(jī)會(huì)勝出。目前英偉達(dá)的GPU在訓(xùn)練場(chǎng)景中占據(jù)著絕對(duì)領(lǐng)導(dǎo)地位,但是在未來,專注于推理環(huán)節(jié)的FPGA必將會(huì)發(fā)揮巨大的價(jià)值。
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ì)自己所用的算法修改電路。
在平均性能方面,GPU遜于FPGA,F(xiàn)PGA可以根據(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。
在功耗能效比方面,同樣由于FPGA的靈活性,在架構(gòu)優(yōu)化到很好時(shí),一塊FPGA的平均性能能夠接近一塊GPU,那么FPGA方案的總功耗遠(yuǎn)小于GPU,散熱問題可以大大減輕。 能效比的比較也是類似,能效指的是完成程序執(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)。
在峰值性能比方面,雖然GPU的峰值性能(10Tflops)遠(yuǎn)大于FPGA的峰值性能(<1Tflops),但針對(duì)特定的場(chǎng)景來講吞吐量并不比GPU差。
評(píng)論