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

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

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

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

FPGA開源工作室 ? 來源:OpenIC ? 作者:溫戈 ? 2021-06-30 10:57 ? 次閱讀

主頻只是影響計(jì)算速度的一個(gè)因素,并不是全部。在執(zhí)行一些計(jì)算密集型的任務(wù)場景中,FPGA的計(jì)算速度是更快的,目前FPGA作為CPU的協(xié)處理器已經(jīng)廣泛應(yīng)用在Intel、AMD公司產(chǎn)品中。

CPU、GPU、和FPGA的比較

桌面端的CPU為馮諾依曼結(jié)構(gòu),從上圖可以看出,其基本組成為控制器,Cache,和ALU。而計(jì)算單元ALU在CPU中的占比不大,所以它的并行計(jì)算能力有限。

中間的為GPU,綠色的計(jì)算單元占了絕大部分,所以并行計(jì)算能力很強(qiáng)。

弱點(diǎn)是控制能力很弱,Cache小,為了保證計(jì)算能力,就需要大量的高速DDR保證數(shù)據(jù)吞吐率。

右側(cè)為FPGA,包含可編程的I/O、DSP、memory、PCIE等,因?yàn)榇罅看鎯卧拇嬖?,F(xiàn)PGA在做計(jì)算的時(shí)候可以直接從內(nèi)部存儲單元讀取數(shù)據(jù)。

推薦一個(gè)國外的FPGA學(xué)習(xí)網(wǎng)站 -- fpga4fun,里邊有FPGA的介紹及26個(gè)實(shí)戰(zhàn)項(xiàng)目及實(shí)現(xiàn)代碼,非常適合入門學(xué)習(xí)!

https://www.fpga4fun.com/

正因?yàn)镃PU、GPU、和FPGA在結(jié)構(gòu)上的不同,也讓他們在實(shí)際應(yīng)用層面有所側(cè)重。

目前主流的方案是把CPU、GPU和FPGA都集成在一個(gè)SoC中,通過片內(nèi)總線互聯(lián)。在執(zhí)行并行計(jì)算的時(shí)候,比如進(jìn)行圖像處理,F(xiàn)PGA的優(yōu)勢就體現(xiàn)出來了,通過協(xié)作分工,使芯片的工作效率最大化。

目前的3D封裝以及chiplet等技術(shù)為這樣的組合提供了可實(shí)現(xiàn)性。

為什么FPGA計(jì)算速度會比CPU更快?

在執(zhí)行大量的運(yùn)算場景中,F(xiàn)PGA相比GPU的核心優(yōu)勢在于低延遲。FPGA比CPU延遲低,在本質(zhì)上是體系結(jié)構(gòu)的區(qū)別。FPGA同時(shí)擁有流水線并行和數(shù)據(jù)并行,而CPU幾乎只有數(shù)據(jù)并行,雖然也會才有流水線設(shè)計(jì),但深度受限。因此,F(xiàn)PGA 更適合做需要低延遲的流式處理,GPU 更適合做大批量同構(gòu)數(shù)據(jù)的處理。

舉個(gè)例子:

我們有四個(gè)全加器,每一個(gè)的進(jìn)為輸出連接到下一個(gè)的進(jìn)位輸入,這樣實(shí)現(xiàn)的加法器被稱作行波進(jìn)位加法器(Ripple-Carry Adder, RCA)。其特點(diǎn)為:

結(jié)構(gòu)特點(diǎn):低位全加器的Cout連接到高一位全加器Cin

優(yōu)點(diǎn):電路布局簡單,設(shè)計(jì)方便

缺點(diǎn):高位的運(yùn)算必須等待低位的運(yùn)算完成

我們來看一下其關(guān)鍵路徑的延遲:

總延遲時(shí)間:(T + T)*4 + T = 9T,推廣到n位,總時(shí)間為(2n + 1)*T。

每一個(gè)全加器計(jì)算的時(shí)候必須等待它的進(jìn)位輸入產(chǎn)生后才能計(jì)算,所以四個(gè)全加器并不是同時(shí)進(jìn)行計(jì)算的,而是一個(gè)一個(gè)的串行計(jì)算。這樣會造成較大的延遲。

我們把這個(gè)電路改進(jìn)一下:提前計(jì)算出“進(jìn)位信號”,對進(jìn)位信號進(jìn)行分析。

這樣我們就得到了一個(gè):超前進(jìn)位加法器(Carry-Lookahead Adder, CLA)

其中,C1、C2、C3、C4都由下面的電路計(jì)算好,需要3級門延遲,然后在全加器中關(guān)鍵路徑上還有1級延遲

所以,總共有4級門延遲。

如果采用這種完全的超前進(jìn)位,理論上的門延遲都是4級門延遲。

實(shí)際電路過于復(fù)雜,難以實(shí)現(xiàn)(C31需要32位的與門和或門?。?/p>

通常的方法:采用多個(gè)小規(guī)模的超前進(jìn)位加法器拼接而成,例如,用4個(gè)8-bit的超前進(jìn)位加法器連接成32-bit加法器。

所以我們需要更多的計(jì)算位寬或者更大的數(shù)組,或者矩陣的運(yùn)算的時(shí)候,我們使用FPGA的優(yōu)勢就體現(xiàn)出來。再多的計(jì)算,也就是放置更多的硬件邏輯資源。

FPGA對CPU加速場景

在一些特定的應(yīng)用場景下,單獨(dú)使用CPU和CPU+FPGA兩種方案所需處理時(shí)間的對比,可見FPGA對CPU的加速效果非常明顯,甚至比單獨(dú)使用CPU高出1~2個(gè)數(shù)量級!

FPGA的缺點(diǎn)

FPGA也是有缺點(diǎn)的,其中之一便是開發(fā)周期長。其需要對特定的應(yīng)用編寫特定的FPGA。只要干的事情稍有不同,一般來說FPGA代碼就要重新寫一遍或者是至少要修改很多東西。如果要做的事情復(fù)雜、重復(fù)性不強(qiáng),就會占用大量的邏輯資源,其中的大部分處于閑置狀態(tài)。

不過,Chiplet的應(yīng)用對對FPGA的開發(fā)周期有一定的優(yōu)化,以下是傳統(tǒng)FPGA開發(fā)的周期和應(yīng)用chiplet的開發(fā)周期對比:

未來的方向

在現(xiàn)在的SoC設(shè)計(jì)中,要充分考慮不同模塊的特點(diǎn),F(xiàn)PGA 和 CPU 協(xié)同工作,充分發(fā)揮各自的長處,局部性和重復(fù)性強(qiáng)的歸 FPGA,復(fù)雜的歸 CPU。從而達(dá)到整個(gè)系統(tǒng)算力的最優(yōu)化。

在未來,F(xiàn)PGA會作為協(xié)處理器和CPU、GPU共存一段時(shí)間,其主要提供以下三方面的能力:

能夠提供專門的硬件加速,實(shí)現(xiàn)各種應(yīng)用中需要的關(guān)鍵處理功能。

FPGA設(shè)計(jì)在性能上非常靈活,使用流水線和并行結(jié)構(gòu),適應(yīng)對性能的需求變化。

協(xié)處理器能為主處理器和系統(tǒng)存儲器提供寬帶,低延遲接口。

目前,英特爾,AMD,賽靈思等公司都把FPGA作為協(xié)處理器集成在SoC中作為實(shí)際應(yīng)用的硬件加速解決方案,這樣的設(shè)計(jì)也使得CPU和FPGA在未來的一段時(shí)間內(nèi)會共存,互相配合,賦能各種計(jì)算場景。

編輯:jq

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

    關(guān)注

    1624

    文章

    21573

    瀏覽量

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

    關(guān)注

    68

    文章

    10781

    瀏覽量

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

    關(guān)注

    27

    文章

    4640

    瀏覽量

    128487

原文標(biāo)題:為什么CPU主頻一般都比FPGA快,但是卻說FPGA可以幫助CPU加速?

文章出處:【微信號:leezym0317,微信公眾號:FPGA開源工作室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何限制容器可以使用的CPU資源

    默認(rèn)情況下容器可以使用的主機(jī) CPU 資源是不受限制的。和內(nèi)存資源的使用一樣,如果不對容器可以使用的 CPU 資源進(jìn)行限制,一旦發(fā)生容器內(nèi)程序異常使用
    的頭像 發(fā)表于 10-24 17:04 ?79次閱讀
    如何限制容器<b class='flag-5'>可以</b>使用的<b class='flag-5'>CPU</b>資源

    CPU主頻是什么意思

    CPU主頻,作為計(jì)算機(jī)處理器性能的一個(gè)重要指標(biāo),承載著豐富的技術(shù)內(nèi)涵與實(shí)際應(yīng)用價(jià)值。以下是對CPU主頻的詳細(xì)解析,包括其定義、用途、技術(shù)原理、影響因素以及在多個(gè)領(lǐng)域的實(shí)際應(yīng)用。
    的頭像 發(fā)表于 09-26 15:50 ?369次閱讀

    CPU時(shí)鐘周期與主頻的關(guān)系和區(qū)別

    CPU時(shí)鐘周期與主頻是計(jì)算機(jī)體系結(jié)構(gòu)中兩個(gè)緊密相連且至關(guān)重要的概念,它們之間既存在關(guān)系又有所區(qū)別。以下將詳細(xì)闡述CPU時(shí)鐘周期與主頻的關(guān)系和區(qū)別。
    的頭像 發(fā)表于 09-26 15:46 ?728次閱讀

    多核CPU的優(yōu)勢是什么

    多核CPU(Central Processing Unit,中央處理器)作為現(xiàn)代計(jì)算機(jī)技術(shù)的重要里程碑,其優(yōu)勢在于顯著提升了計(jì)算性能、多任務(wù)處理能力、系統(tǒng)穩(wěn)定性以及能效等多個(gè)方面。以下將詳細(xì)闡述多核CPU的幾大優(yōu)勢,并結(jié)合相關(guān)
    的頭像 發(fā)表于 08-22 14:30 ?1378次閱讀

    JAVA應(yīng)用CPU跳點(diǎn)自動DUMP工具

    背景 在做系統(tǒng)監(jiān)控時(shí),CPU的使用率是一個(gè)關(guān)鍵的指標(biāo),它反映了系統(tǒng)的性能穩(wěn)定性以及是否存在異常情況,能幫助我們了解系統(tǒng)的負(fù)載情況。通過監(jiān)控CPU使用率,可以判斷系統(tǒng)是否正常運(yùn)行或者是否
    的頭像 發(fā)表于 08-05 17:48 ?436次閱讀

    請問DMA控制器可以減輕CPU負(fù)擔(dān)嗎?

    直接存儲器訪問 ( DMA )控制器,可以在內(nèi)存和/或外設(shè)之間傳輸數(shù)據(jù),而不需要 CPU 參與每次傳輸。合理利用 DMA 控制器,可以減輕CPU的負(fù)擔(dān)。
    的頭像 發(fā)表于 03-28 09:41 ?591次閱讀
    請問DMA控制器<b class='flag-5'>可以</b>減輕<b class='flag-5'>CPU</b>負(fù)擔(dān)嗎?

    什么是cpu主頻和外頻,它們之間關(guān)系如何

    CPU主頻和外頻是計(jì)算機(jī)中兩個(gè)重要的頻率指標(biāo),它們分別代表了CPU內(nèi)部和與外部組件之間的數(shù)據(jù)傳輸速率。這兩個(gè)頻率指標(biāo)之間有著密切的關(guān)系,對計(jì)算機(jī)的性能和穩(wěn)定性有著重要的影響。 首先,我們來具體了解
    的頭像 發(fā)表于 02-03 16:50 ?3306次閱讀

    為什么GPUCPU更快?

    GPUCPU更快的原因并行處理能力:GPU可以同時(shí)處理多個(gè)任務(wù)和數(shù)據(jù),而CPU通常只能一次處理一項(xiàng)任務(wù)。這是因?yàn)镚PU的架構(gòu)使得它可以同時(shí)
    的頭像 發(fā)表于 01-26 08:30 ?2055次閱讀
    為什么GPU<b class='flag-5'>比</b><b class='flag-5'>CPU</b>更快?

    如何能夠?qū)崿F(xiàn)通用FPGA問題?

    FPGA 是一種偽通用計(jì)算加速器,與 GPGPU(通用 GPU)類似,FPGA 可以很好地卸載特定類型的計(jì)算。從編程角度上講,FPGA
    發(fā)表于 12-29 10:29 ?388次閱讀

    CPU和GPU之間的主要區(qū)別

    的任務(wù)。GPU的指令有限,只能執(zhí)行與圖形相關(guān)的任務(wù)。它通常可以執(zhí)行任何類型的任務(wù),包括圖形,但不是以非常優(yōu)化的方式。雖然GPU的唯一目的是CPU更快地處理圖像和3
    的頭像 發(fā)表于 12-14 08:28 ?711次閱讀
    <b class='flag-5'>CPU</b>和GPU之間的主要區(qū)別

    cpu溫度太高怎么解決?cpu溫度高的原因?

    cpu溫度太高怎么解決?cpu溫度高的原因? CPU (中央處理器) 溫度過高可能會導(dǎo)致系統(tǒng)崩潰、性能下降甚至損壞硬件,因此是一個(gè)需要嚴(yán)肅對待的問題。在本文中,我們將探討CPU溫度過高
    的頭像 發(fā)表于 12-09 16:15 ?2767次閱讀

    影響CPU性能的高低的因素是什么

    根據(jù)以上公式,可以反向推算出 CPU 的外頻。如 CPU 主頻為 3.2GHz,倍頻為 24 時(shí),外頻為 3200MHz÷24=133MHz。
    發(fā)表于 12-08 12:19 ?1816次閱讀

    cpu滿載是什么原因 cpu容易滿載怎么辦 cpu過高怎么處理

    cpu滿載是什么原因 cpu容易滿載怎么辦 cpu過高怎么處理? CPU滿載是指CPU的使用率非常高,接近或達(dá)到100%的狀態(tài)。
    的頭像 發(fā)表于 11-28 17:29 ?9863次閱讀

    FPGA可以CPU嗎?怎么實(shí)現(xiàn)?

    FPGA可以做什么類型的CPU,原理是什么?
    發(fā)表于 11-10 07:26

    FPGACPU、GPU有什么區(qū)別?為什么越來越重要?

    訓(xùn)練時(shí)長的三分之一。 圖10:FPGA僅用200MHz,就可以實(shí)現(xiàn)CPU43倍、G
    發(fā)表于 11-09 14:09