FPGA為什么比CPU和GPU快,原因是什么?
在這篇文章中,小編將為大家?guī)?lái)FPGA的相關(guān)報(bào)道。如果你對(duì)本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。
一、FPGA
從本質(zhì)上講,F(xiàn)PGA(Field-Programmable Gate Array,可編程門陣列)是一種半導(dǎo)體設(shè)備,由可配置的邏輯塊和互連組成,可以編程實(shí)現(xiàn)各種數(shù)字電路。
FPGA常常與專用集成電路(ASIC)和微控制器進(jìn)行比較。ASIC專門為特定任務(wù)定制,提供了優(yōu)化的性能,但缺乏靈活性。另一方面,微控制器是通用設(shè)備,通常用于較簡(jiǎn)單的任務(wù),并通過(guò)軟件控制。
FPGA的優(yōu)勢(shì)在于其在保持高性能的同時(shí)適應(yīng)各種任務(wù)的能力。FPGA可以動(dòng)態(tài)重新配置,非常適合需要靈活性和快速開發(fā)周期的應(yīng)用。
FPGA主要由以下部分組成:
1、邏輯塊
邏輯塊是FPGA的基本構(gòu)建塊,包含可編程邏輯元素,可以配置為執(zhí)行各種數(shù)字功能,如與、或和異或門。這些邏輯塊可以通過(guò)編程來(lái)定義其功能和連接方式,從而實(shí)現(xiàn)所需的數(shù)字電路。
邏輯塊的可編程性是FPGA的特點(diǎn)之一,這使FPGA具備了高度的靈活性和可定制性。
2、互連
互連是將邏輯塊連接在一起的"線路"。它們構(gòu)成可編程的路由矩陣,允許不同的邏輯塊之間進(jìn)行靈活的連接,并最終定義FPGA的功能。
3、輸入/輸出塊
輸入/輸出(I/O)塊使FPGA能夠與外部設(shè)備(如傳感器、開關(guān)或其他集成電路)進(jìn)行通信。它們可配置以支持各種電壓級(jí)別、標(biāo)準(zhǔn)和協(xié)議。
4、配置存儲(chǔ)器
配置存儲(chǔ)器存儲(chǔ)定義FPGA的邏輯塊和互連如何配置的編程數(shù)據(jù)。當(dāng)FPGA上電時(shí),這些數(shù)據(jù)被加載到設(shè)備中,使其能夠執(zhí)行其預(yù)定功能。
CPU和GPU都屬于馮·諾依曼結(jié)構(gòu),指令譯碼執(zhí)行,共享內(nèi)存。FPGA之所以比CPU、GPU更快,本質(zhì)上是因?yàn)槠錈o(wú)指令,無(wú)共享內(nèi)存的體系結(jié)構(gòu)所決定的。
馮氏結(jié)構(gòu)中,由于執(zhí)行單元可能執(zhí)行任意指令,就需要有指令存儲(chǔ)器、譯碼器、各種指令的運(yùn)算器、分支跳轉(zhuǎn)處理邏輯。而FPGA的每個(gè)邏輯單元的功能在重編程時(shí)就已經(jīng)確定,不需要指令。
馮氏結(jié)構(gòu)中使用內(nèi)存有兩種作用:①保存狀態(tài)。②執(zhí)行單元間的通信。
1)保存狀態(tài):FPGA中的寄存器和片上內(nèi)存(BRAM)是屬于各自的控制邏輯的,無(wú)需不必要的仲裁和緩存。
2)通信需求:FPGA每個(gè)邏輯單元與周圍邏輯單元的連接在重編程時(shí)就已經(jīng)確定了,并不需要通過(guò)共享內(nèi)存來(lái)通信。
計(jì)算密集型任務(wù)中:
在數(shù)據(jù)中心,F(xiàn)PGA相比GPU的核心優(yōu)勢(shì)在于延遲。FPGA為什么比GPU的延遲低很多?本質(zhì)上是體系結(jié)構(gòu)的區(qū)別。FPGA同時(shí)擁有流水線并行和數(shù)據(jù)并行,而GPU幾乎只有數(shù)據(jù)并行(流水線深度受限)。
處理一個(gè)數(shù)據(jù)包有10個(gè)步驟,F(xiàn)PGA可以搭建一個(gè)10級(jí)流水線,流水線的不同級(jí)在處理不同的數(shù)據(jù)包,每個(gè)數(shù)據(jù)包流經(jīng)10級(jí)之后處理完成。每個(gè)處理完成的數(shù)據(jù)包可以馬上輸出。而GPU的數(shù)據(jù)并行方法是做10個(gè)計(jì)算單元,每個(gè)計(jì)算單元也在處理不同的數(shù)據(jù)包,但是所有的計(jì)算單元必須按照統(tǒng)一的步調(diào),做相同的事情(SIMD)。這就要求10個(gè)數(shù)據(jù)包必須同進(jìn)同出。當(dāng)任務(wù)是逐個(gè)而非成批到達(dá)的時(shí)候,流水線并行比數(shù)據(jù)并行可實(shí)現(xiàn)更低的延遲。因此對(duì)流水式計(jì)算的任務(wù),F(xiàn)PGA比GPU天生有延遲方面的優(yōu)勢(shì)。
ASIC在吞吐量、延遲、功耗單個(gè)方面都是最優(yōu)秀的。但是其研發(fā)成本高,周期長(zhǎng)。FPGA的靈活性可以保護(hù)資產(chǎn)。數(shù)據(jù)中心是租給不同租戶使用的。有的機(jī)器上有神經(jīng)網(wǎng)絡(luò)加速卡,有的有bing搜索加速卡,有的有網(wǎng)絡(luò)虛擬加速卡,任務(wù)的調(diào)度和運(yùn)維會(huì)很麻煩。使用FPGA可以保持?jǐn)?shù)據(jù)中心的同構(gòu)性。
通信密集型任務(wù)中,F(xiàn)PGA相比GPU、CPU的優(yōu)勢(shì)更大。
①吞吐量:FPGA可以直接接上40Gbps或者100Gbps的網(wǎng)線,以線速處理任意大小的數(shù)據(jù)包;而CPU則需要網(wǎng)卡把數(shù)據(jù)包接收過(guò)來(lái);GPU也可以高性能處理數(shù)據(jù)包,但GPU沒(méi)有網(wǎng)口,同樣需要網(wǎng)卡,這樣吞吐量受到網(wǎng)卡和(或)者CPU的限制。
②延遲:網(wǎng)卡把數(shù)據(jù)傳給CPU,CPU處理后傳給網(wǎng)卡,再加上系統(tǒng)中的時(shí)鐘中斷和任務(wù)調(diào)度增加了延遲的不穩(wěn)定性。
綜上所述,在數(shù)據(jù)中心里 FPGA 的主要優(yōu)勢(shì)是穩(wěn)定又極低的延遲,適用于流式的計(jì)算密集型任務(wù)和通信密集型任務(wù)。
上述所有信息便是小編這次為大家推薦的有關(guān)FPGA的內(nèi)容,希望大家能夠喜歡,想了解更多有關(guān)它的信息或者其它內(nèi)容,請(qǐng)關(guān)注我們網(wǎng)站哦。