衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA比CPU和GPU快的原理是什么

姚小熊27 ? 來源:網(wǎng)絡(luò)整理 ? 2018-05-31 09:00 ? 次閱讀

FPGA原理

FPGA(Field-Programmable Gate Array),即現(xiàn)場(chǎng)可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。

FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸入輸出模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。 現(xiàn)場(chǎng)可編程門陣列(FPGA)是可編程器件,與傳統(tǒng)邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu)。FPGA利用小型查找表(16×1RAM)來實(shí)現(xiàn)組合邏輯,每個(gè)查找表連接到一個(gè)D觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng)I/O,由此構(gòu)成了既可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。FPGA的邏輯是通過向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來實(shí)現(xiàn)的,存儲(chǔ)在存儲(chǔ)器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了FPGA所能實(shí)現(xiàn)的功能,F(xiàn)PGA允許無限次的編程。

FPGA比CPU和GPU快的原理是什么

FPGA比CPUGPU快的原理是什么

CPU和GPU都屬于馮·諾依曼結(jié)構(gòu),指令譯碼執(zhí)行,共享內(nèi)存。FPGA之所以比CPU、GPU更快,本質(zhì)上是因?yàn)槠錈o指令,無共享內(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)是屬于各自的控制邏輯的,無需不必要的仲裁和緩存。

2)通信需求:FPGA每個(gè)邏輯單元與周圍邏輯單元的連接在重編程時(shí)就已經(jīng)確定了,并不需要通過共享內(nè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ā)成本高,周期長。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ù)包接收過來;GPU也可以高性能處理數(shù)據(jù)包,但GPU沒有網(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ù)。

FPGA和GPU最大的區(qū)別在于體系結(jié)構(gòu),F(xiàn)PGA更適合做需要低延遲的流式處理,GPU更適合做大批量同構(gòu)數(shù)據(jù)的處理。

成也蕭何,敗也蕭何。缺少指令同時(shí)是FPGA的優(yōu)勢(shì)和軟肋。每做一點(diǎn)不同的事情,就要占用一定的FPGA邏輯資源。如果要做的事情復(fù)雜、重復(fù)性不強(qiáng),就會(huì)占用大量的邏輯資源,其中的大部分處于閑置狀態(tài)。這時(shí)就不如用馮·諾依曼結(jié)構(gòu)的處理器。

FPGA和CPU協(xié)同工作,局部性和重復(fù)性強(qiáng)的歸FPGA,復(fù)雜的歸CPU。

CPU與GPU的區(qū)別揭秘

PU和GPU之所以大不相同,是由于其設(shè)計(jì)目標(biāo)的不同,它們分別針對(duì)了兩種不同的應(yīng)用場(chǎng)景。CPU需要很強(qiáng)的通用性來處理各種不同的數(shù)據(jù)類型,同時(shí)又要邏輯判斷又會(huì)引入大量的分支跳轉(zhuǎn)和中斷的處理。這些都使得CPU的內(nèi)部結(jié)構(gòu)異常復(fù)雜。而GPU面對(duì)的則是類型高度統(tǒng)一的、相互無依賴的大規(guī)模數(shù)據(jù)和不需要被打斷的純凈的計(jì)算環(huán)境。

于是CPU和GPU就呈現(xiàn)出非常不同的架構(gòu)(示意圖):

FPGA比CPU和GPU快的原理是什么

圖片來自nVidiaCUDA文檔。其中綠色的是計(jì)算單元,橙紅色的是存儲(chǔ)單元,橙黃色的是控制單元。

GPU采用了數(shù)量眾多的計(jì)算單元和超長的流水線,但只有非常簡單的控制邏輯并省去了Cache。而CPU不僅被Cache占據(jù)了大量空間,而且還有有復(fù)雜的控制邏輯和諸多優(yōu)化電路,相比之下計(jì)算能力只是CPU很小的一部分。

所以與CPU擅長邏輯控制和通用類型數(shù)據(jù)運(yùn)算不同,GPU擅長的是大規(guī)模并發(fā)計(jì)算,這也正是密碼破解等所需要的。所以GPU除了圖像處理,也越來越多的參與到計(jì)算當(dāng)中來。

2、很久以前,大概2000年那時(shí)候,顯卡還被叫做圖形加速卡。一般叫做加速卡的都不是什么核心組件,和現(xiàn)在蘋果使用的M7協(xié)處理器地位差不多。這種東西就是有了更好,沒有也不是不行,只要有個(gè)基本的圖形輸出就可以接顯示器了。在那之前,只有一些高端工作站和家用游戲機(jī)上才能見到這種單獨(dú)的圖形處理器。后來隨著PC的普及,游戲的發(fā)展和Windows這樣的市場(chǎng)霸主出現(xiàn),簡化了圖形硬件廠商的工作量,圖形處理器,或者說顯卡才逐漸普及起來。

想要理解GPU與CPU的區(qū)別,需要先明白GPU被設(shè)計(jì)用來做什么。現(xiàn)代的GPU功能涵蓋了圖形顯示的方方面面,我們只取一個(gè)最簡單的方向作為例子。

大家可能都見過上面這張圖,這是老版本DirectX帶的一項(xiàng)測(cè)試,就是一個(gè)旋轉(zhuǎn)的立方體。顯示出一個(gè)這樣的立方體要經(jīng)過好多步驟,我們先考慮簡單的,想象一下他是個(gè)線框,沒有側(cè)面的“X”圖像。再簡化一點(diǎn),連線都沒有,就是八個(gè)點(diǎn)(立方體有八個(gè)頂點(diǎn)的)。那么問題就簡化成如何讓這八個(gè)點(diǎn)轉(zhuǎn)起來。首先,你在創(chuàng)造這個(gè)立方體的時(shí)候,肯定有八個(gè)頂點(diǎn)的坐標(biāo),坐標(biāo)都是用向量表示的,因而至少也是個(gè)三維向量。然后“旋轉(zhuǎn)”這個(gè)變換,在線性代數(shù)里面是用一個(gè)矩陣來表示的。向量旋轉(zhuǎn),是用向量乘以這個(gè)矩陣。把這八個(gè)點(diǎn)轉(zhuǎn)一下,就是進(jìn)行八次向量與矩陣的乘法而已。這種計(jì)算并不復(fù)雜,拆開來看無非就是幾次乘積加一起,就是計(jì)算量比較大。八個(gè)點(diǎn)就要算八次,2000個(gè)點(diǎn)就要算2000次。這就是GPU工作的一部分,頂點(diǎn)變換,這也是最簡單的一部分。剩下還有一大堆比這更麻煩的就不說了。

GPU的工作大部分就是這樣,計(jì)算量大,但沒什么技術(shù)含量,而且要重復(fù)很多很多次。就像你有個(gè)工作需要算幾億次一百以內(nèi)加減乘除一樣,最好的辦法就是雇上幾十個(gè)小學(xué)生一起算,一人算一部分,反正這些計(jì)算也沒什么技術(shù)含量,純粹體力活而已。而CPU就像老教授,積分微分都會(huì)算,就是工資高,一個(gè)老教授資頂二十個(gè)小學(xué)生,你要是富士康你雇哪個(gè)?GPU就是這樣,用很多簡單的計(jì)算單元去完成大量的計(jì)算任務(wù),純粹的人海戰(zhàn)術(shù)。這種策略基于一個(gè)前提,就是小學(xué)生A和小學(xué)生B的工作沒有什么依賴性,是互相獨(dú)立的。很多涉及到大量計(jì)算的問題基本都有這種特性,比如你說的破解密碼,挖礦和很多圖形學(xué)的計(jì)算。這些計(jì)算可以分解為多個(gè)相同的簡單小任務(wù),每個(gè)任務(wù)就可以分給一個(gè)小學(xué)生去做。但還有一些任務(wù)涉及到“流”的問題。比如你去相親,雙方看著順眼才能繼續(xù)發(fā)展??偛荒苣氵@邊還沒見面呢,那邊找人把證都給領(lǐng)了。這種比較復(fù)雜的問題都是CPU來做的。

總而言之,CPU和GPU因?yàn)樽畛跤脕硖幚淼娜蝿?wù)就不同,所以設(shè)計(jì)上有不小的區(qū)別。而某些任務(wù)和GPU最初用來解決的問題比較相似,所以用GPU來算了。GPU的運(yùn)算速度取決于雇了多少小學(xué)生,CPU的運(yùn)算速度取決于請(qǐng)了多么厲害的教授。教授處理復(fù)雜任務(wù)的能力是碾壓小學(xué)生的,但是對(duì)于沒那么復(fù)雜的任務(wù),還是頂不住人多。當(dāng)然現(xiàn)在的GPU也能做一些稍微復(fù)雜的工作了,相當(dāng)于升級(jí)成初中生高中生的水平。但還需要CPU來把數(shù)據(jù)喂到嘴邊才能開始干活,究竟還是靠CPU來管的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21796

    瀏覽量

    605989
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10902

    瀏覽量

    213000
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4774

    瀏覽量

    129351
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA真的能取代CPUGPU嗎?

    最近我們看到一篇文章,說FPGA可能會(huì)取代CPUGPU成為將來機(jī)器人研發(fā)領(lǐng)域的主要芯片。文章列舉了很多表格和實(shí)驗(yàn)數(shù)據(jù),證明了在很多領(lǐng)域FPGA的性能會(huì)極大優(yōu)于
    發(fā)表于 05-16 10:39 ?1.7w次閱讀

    相比CPU、GPU、ASIC,FPGA有什么優(yōu)勢(shì)

    CPUGPU 都屬于馮·諾依曼結(jié)構(gòu),指令譯碼執(zhí)行、共享內(nèi)存。FPGA 之所以 CPU 甚至 GPU
    發(fā)表于 11-22 16:00 ?1638次閱讀

    FPGA為什么

    CPUGPU都屬于馮·諾依曼結(jié)構(gòu),指令譯碼執(zhí)行,共享內(nèi)存。FPGA之所以CPU、GPU更快,
    發(fā)表于 08-16 09:54

    從賽靈思FPGA設(shè)計(jì)流程看懂FPGA設(shè)計(jì)

    FPGA仿真篇-使用腳本命令來加速仿真二 基于FPGA的HDMI高清顯示借口驅(qū)動(dòng) 基于FPGA灰度圖像高斯濾波算法的實(shí)現(xiàn) FPGA為什么
    發(fā)表于 02-20 20:32 ?1.6w次閱讀
    從賽靈思<b class='flag-5'>FPGA</b>設(shè)計(jì)流程看懂<b class='flag-5'>FPGA</b>設(shè)計(jì)

    不僅服務(wù)硬件工程師_2018年賽靈思如何布局AI

    FPGA仿真篇-使用腳本命令來加速仿真二 基于FPGA的HDMI高清顯示借口驅(qū)動(dòng) 基于FPGA灰度圖像高斯濾波算法的實(shí)現(xiàn) FPGA為什么
    發(fā)表于 02-20 20:35 ?1307次閱讀

    2017人工智能熱詞TOP10_第一竟然不是AI

    FPGA仿真篇-使用腳本命令來加速仿真二 基于FPGA的HDMI高清顯示借口驅(qū)動(dòng) 基于FPGA灰度圖像高斯濾波算法的實(shí)現(xiàn) FPGA為什么
    發(fā)表于 02-20 20:39 ?1131次閱讀

    基于Xilinx FPGA的視頻圖像采集系統(tǒng)

    FPGA仿真篇-使用腳本命令來加速仿真二 基于FPGA的HDMI高清顯示借口驅(qū)動(dòng) 基于FPGA灰度圖像高斯濾波算法的實(shí)現(xiàn) FPGA為什么
    發(fā)表于 02-20 20:44 ?1500次閱讀
    基于Xilinx <b class='flag-5'>FPGA</b>的視頻圖像采集系統(tǒng)

    FPGA為什么CPUGPU

    FPGA仿真篇-使用腳本命令來加速仿真二 基于FPGA的HDMI高清顯示借口驅(qū)動(dòng) 基于FPGA灰度圖像高斯濾波算法的實(shí)現(xiàn) FPGA為什么
    發(fā)表于 02-20 20:49 ?1718次閱讀

    基于FPGA灰度圖像高斯濾波算法的實(shí)現(xiàn)

    FPGA仿真篇-使用腳本命令來加速仿真二 基于FPGA的HDMI高清顯示借口驅(qū)動(dòng) 基于FPGA灰度圖像高斯濾波算法的實(shí)現(xiàn) FPGA為什么
    發(fā)表于 02-20 20:49 ?7667次閱讀
    基于<b class='flag-5'>FPGA</b>灰度圖像高斯濾波算法的實(shí)現(xiàn)

    FPGA仿真篇_使用腳本命令來加速仿真

    FPGA仿真篇-使用腳本命令來加速仿真二 基于FPGA的HDMI高清顯示借口驅(qū)動(dòng) 基于FPGA灰度圖像高斯濾波算法的實(shí)現(xiàn) FPGA為什么
    發(fā)表于 02-20 20:54 ?8962次閱讀
    <b class='flag-5'>FPGA</b>仿真篇_使用腳本命令來加速仿真

    基于FPGA的HDMI高清顯示接口驅(qū)動(dòng)

    FPGA仿真篇-使用腳本命令來加速仿真二 基于FPGA的HDMI高清顯示借口驅(qū)動(dòng) 基于FPGA灰度圖像高斯濾波算法的實(shí)現(xiàn) FPGA為什么
    發(fā)表于 02-20 20:54 ?1.2w次閱讀

    FPGACPUGPU的原因

    CPUGPU都屬于馮·諾依曼結(jié)構(gòu),指令譯碼執(zhí)行,共享內(nèi)存。FPGA之所以CPUGPU更快,
    的頭像 發(fā)表于 04-02 17:52 ?9.6w次閱讀

    GPU運(yùn)算速度CPU的原因 GPUCPU的區(qū)別

    GPU采用了數(shù)量眾多的計(jì)算單元和超長的流水線,但只有非常簡單的控制邏輯并省去了Cache。而CPU不僅被Cache占據(jù)了大量空間,而且還有有復(fù)雜的控制邏輯和諸多優(yōu)化電路,相比之下計(jì)算能力只是CPU很小的一部分
    發(fā)表于 04-28 10:26 ?3w次閱讀

    為何CPU主頻FPGA還要說可以幫助CPU加速?

    、GPU、和FPGA的比較 桌面端的CPU為馮諾依曼結(jié)構(gòu),從上圖可以看出,其基本組成為控制器,Cache,和ALU。而計(jì)算單元ALU在CPU中的占
    的頭像 發(fā)表于 06-30 10:57 ?2351次閱讀

    為什么GPUCPU更快?

    GPUCPU更快的原因并行處理能力:GPU可以同時(shí)處理多個(gè)任務(wù)和數(shù)據(jù),而CPU通常只能一次處理一項(xiàng)任務(wù)。這是因?yàn)?/div>
    的頭像 發(fā)表于 01-26 08:30 ?2566次閱讀
    為什么<b class='flag-5'>GPU</b><b class='flag-5'>比</b><b class='flag-5'>CPU</b>更快?
    百家乐分析软件骗人| 百家乐官网大路小路| 澳门百家乐赌技术| 赌百家乐官网2号破解| 尊龙百家乐官网赌场娱乐网规则| 视频百家乐官网游戏| 百家乐官网视频游戏中心| 大发888网页ban| 威尼斯人娱乐平台官网| 百家乐分析仪博彩正网| 金宝博百家乐娱乐城| 百家乐玩法及技巧| 八卦24方位| 连环百家乐官网的玩法技巧和规则 | 明珠网上娱乐| 皇家娱乐城| 六合彩脑筋急转弯| 必博备用| 三易博娱乐城| 百家乐平台哪个有在线支付呢| 百家乐官网视频美女| 金彩百家乐的玩法技巧和规则| 巴林右旗| 博九百家乐的玩法技巧和规则| 百家乐官网投注之对冲投注| 百家乐那里信誉好| 合江县| 菠菜百家乐官网娱乐城| 金沙百家乐官网娱乐城场| 百家乐官网庄闲| 百家乐官网庄闲对冲| 百家乐官网大转轮真人视讯| 金海岸百家乐官网的玩法技巧和规则| 888百家乐官网的玩法技巧和规则 大发百家乐官网的玩法技巧和规则 | 缅甸百家乐官网论坛| 河北省| 百家乐官网代理在线游戏可信吗网上哪家平台信誉好安全 | 澳门百家乐官网游戏说明| 百家乐官网讯特| 星河百家乐官网的玩法技巧和规则| 百家乐有没有稳赢|