逐漸了解FPGA:FPGA有哪些應(yīng)用?
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,F(xiàn)PGA 的基本結(jié)構(gòu)包括可編程輸入輸出單元,可配置邏輯塊,數(shù)字時(shí)鐘管理模塊等。為增進(jìn)大家對(duì)FPGA的認(rèn)識(shí),本文將對(duì)FPGA以及FPGA的應(yīng)用予以介紹。如果你對(duì)FPGA或是對(duì)本文內(nèi)容具有興趣,不妨繼續(xù)往下閱讀哦。
一、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ì)自己所用的算法修改電路。
同樣是擅長(zhǎng)并行計(jì)算的FPGA和GPU,誰(shuí)能夠占領(lǐng)人工智能的高地,并不在于誰(shuí)的應(yīng)用更廣泛,而是取決于誰(shuí)的性能更好。在服務(wù)器端,有三個(gè)指標(biāo)可供對(duì)比:峰值性能、平均性能與功耗能效比。當(dāng)然,這三個(gè)指標(biāo)是相互影響的,不過(guò)還是可以分開(kāi)說(shuō)。
GPU上面成千上萬(wàn)個(gè)核心同時(shí)跑在GHz的頻率上是非常壯觀的,最新的GPU峰值性能甚至可以達(dá)到10TFlops 以上。GPU的架構(gòu)經(jīng)過(guò)仔細(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ì)限制性能。
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)化可以帶來(lái)相比GPU架構(gòu)兩到三個(gè)數(shù)量級(jí)的優(yōu)勢(shì),那么FPGA在平均性能上會(huì)好于GPU。
二、FPGA應(yīng)用
FPGA的一個(gè)新應(yīng)用是芯片開(kāi)發(fā)時(shí)的邏輯功效驗(yàn)證。過(guò)去數(shù)字芯片在設(shè)計(jì)開(kāi)發(fā)時(shí),每開(kāi)發(fā)至一個(gè)階段就必須對(duì)已經(jīng)完成的電路進(jìn)行邏輯上、機(jī)制上的功效驗(yàn)證,以了解設(shè)計(jì)是否有誤,關(guān)于此多是用計(jì)算機(jī)軟件程序來(lái)進(jìn)行邏輯推演(Simulation),不過(guò)用計(jì)算機(jī)程序來(lái)進(jìn)行驗(yàn)證,其推演速度相當(dāng)慢,所以每一項(xiàng)驗(yàn)證都要經(jīng)過(guò)漫長(zhǎng)等待才能知道結(jié)果。
對(duì)此或許有人會(huì)說(shuō):可以使用更快速的計(jì)算機(jī)來(lái)加快驗(yàn)證,但這其實(shí)是雞與蛋的問(wèn)題,計(jì)算機(jī)效能提升其實(shí)是因?yàn)樾酒苡鷣?lái)愈高,芯片效能愈來(lái)愈高原因可用摩爾定律來(lái)解釋,在摩爾定律下,芯片開(kāi)發(fā)速度變快、同時(shí)也讓芯片更復(fù)雜,所以「計(jì)算機(jī)的更快速」與「芯片的更復(fù)雜」是連動(dòng)的,使用了更快速的計(jì)算機(jī),也意味著要推演、驗(yàn)證更復(fù)雜設(shè)計(jì)的芯片,最根本的問(wèn)題并還沒(méi)有真正解決。
不過(guò),由于FPGA的電路密度、運(yùn)作效能在近年來(lái)大幅提升,所以開(kāi)始有人提議用FPGA來(lái)取代純計(jì)算機(jī)執(zhí)行的驗(yàn)證軟件,如此推演速度就可以獲得大幅提升。舉例來(lái)說(shuō),IBM、Sony、Toshiba三家業(yè)者所共同合作開(kāi)發(fā)的Cell芯片,當(dāng)芯片還在開(kāi)發(fā)階段時(shí)就已經(jīng)使用FPGA來(lái)推演驗(yàn)證,以加速了解設(shè)計(jì)上的正確性。更具體來(lái)說(shuō),就是將新芯片的邏輯電路加載到FPGA,讓FPGA充當(dāng)新芯片來(lái)執(zhí)行。
改采FPGA方式來(lái)驗(yàn)證,其優(yōu)點(diǎn)不僅是加速驗(yàn)證程序,也可以節(jié)省驗(yàn)證成本,過(guò)去為了加速驗(yàn)證,必須動(dòng)用大量的計(jì)算機(jī),讓眾多的計(jì)算機(jī)同時(shí)都執(zhí)行驗(yàn)證程序,才能讓驗(yàn)證速度提升,有時(shí)其計(jì)算機(jī)的用量甚至要用及整個(gè)運(yùn)算機(jī)房?jī)?nèi)的計(jì)算機(jī),而今改成FPGA方式驗(yàn)證后,計(jì)算機(jī)用量就可大幅減少。
要注意的是,由于芯片的電路愈來(lái)愈復(fù)雜,即便使用高階、大容量(邏輯閘)的FPGA,都很難單獨(dú)用一顆FPGA就仿真出整個(gè)新芯片,所以通常是同時(shí)用上多顆FPGA芯片,每顆FPGA芯片仿真部份的新芯片電路,然后再將多個(gè)FPGA芯片進(jìn)行串連,用多個(gè)芯片來(lái)同時(shí)仿真一顆新芯片。
另外,F(xiàn)PGA雖可以進(jìn)行芯片設(shè)計(jì)的功效驗(yàn)證,但并不代表整個(gè)芯片的設(shè)計(jì)開(kāi)發(fā)流程都可以加速,芯片電路設(shè)計(jì)的部份依舊需要工程師人工設(shè)計(jì),只有功效驗(yàn)證上可以獲得加速。再者,功效驗(yàn)證完全正確后并不代表芯片就此設(shè)計(jì)完成(除非該芯片確定直接以FPGA方式出貨),后續(xù)在正式投產(chǎn)之前,還要經(jīng)過(guò)頻率收斂、電路化簡(jiǎn)等其它實(shí)體電路特性的調(diào)修,這方面FPGA也無(wú)從給予幫助。
以上就是小編這次想要和大家分享的有關(guān)的FPGA的內(nèi)容,希望大家對(duì)本次分享的內(nèi)容已經(jīng)具有一定的了解。如果您想要看不同類別的文章,可以在網(wǎng)頁(yè)頂部選擇相應(yīng)的頻道哦。