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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為什么FPGA主頻比CPU慢,但卻可以用來幫CPU做加速

電子工程師 ? 來源:FPGA技術江湖 ? 作者:EDN電子技術設計 ? 2020-11-20 09:56 ? 次閱讀

我們知道,FPGA的頻率一般只有幾百MHz,而CPU的頻率卻高達數GHz。那么,有不少網友心中就有一個疑問:“為什么FPGA主頻比CPU慢,但卻可以用來幫CPU做加速?”。

今天,EDN就和大家系統性地討論下這個問題。

將FPGA主頻與CPU相比不妥

在開始之前,首先要明確一點,將FPGA的主頻與CPU比較,實際是風馬牛不相及的問題。FPGA和CPU是兩種完全不同的器件,前者是專用,是硬件編程,而后者是通用,是軟件編程。

不同體系結構性能和靈活性的比較。(圖片來源:《如何評價微軟在數據中心使用 FPGA 代替傳統 CPU 的做法?》)

表面上看,FPGA的時鐘頻率要低;對于通用計算任務,FPGA設計貌似不如CPU設計。但是實際上,單個FPGA的并行度卻比CPU要高得多。FPGA的行為是確定性的,用作硬件加速器沒有時間片、線程或資源沖突的問題。它始終以完全相同的速度執行一件事。因此,如果需要低延遲,那么FPGA就可能是最佳選擇。

計算密集型任務,CPU、GPU、FPGA、ASIC 的數量級比較(以16位整數乘法為例,數字僅為數量級的估計)(圖片來源:《如何評價微軟在數據中心使用 FPGA 代替傳統 CPU 的做法?》)

FPGA并行計算機制

如知乎網友young cc所言,雖然CPU主頻很高,但其是通用處理器,做某個特定運算(如信號處理,圖像處理)可能需要很多個時鐘周期。而FPGA可以通過編程重組電路,直接生成專用電路。加上電路并行性,可能做這個特定運算只需要一個時鐘周期。

舉例來說,CPU主頻為3GHz,FPGA主頻為200MHz。若做某個特定運算,CPU需要30個時鐘周期,而FPGA只需一個,那么耗時情況是:

CPU:30/3GHz =10ns;

FPGA:1/200MHz =5ns。

可以看到,FPGA做這個特定運算速度比CPU快,能幫助加速。

另外,CPU的主頻是加過流水線之后的。比如是15級流水線,則第一條指令執行了15個時鐘周期后才能出結果。

但是,使用FPGA也不一定總能做加速。

例如,知乎網友Evan172就表示,使用FPGA做加速,只是在某些強計算和數據處理的方面,因為其硬件電路并行運行和有很多DSP硬核資源供調用的特點,可以工作得更出色。

FPGA本身也只是輔助角色,做控制的還是CPU本身,所以FPGA并不能代替CPU,只是在完成一件大任務的過程中將某部分任務分解給FPGA可以更好地一起完成任務。在這過程中也會有額外的開銷產生,在某些場合,可能用了FPGA而效果更差也是有的。

另外,通常說的使用FPGA加速比CPU和GPU省電,是指在完成同樣的任務下,FPGA耗費的電力比起CPU和GPU更少一些。這是相對而言的,并不是說FPGA本身就一定省電。

一個有趣的例子:數組加法計算

知乎用戶doing舉了一個很有趣的例子。他指出,假設用FPGA完整實現了CPU,然后再跑軟件的話,的確比CPU慢。問題是FPGA不會那么干,它會直指問題本質,解決問題。

例如,有兩個數組,其中有256個32位數。現在要把它們對應相加變成一個數組,用CPU寫最快大概是這個樣子:

r[0] = a[0] + b[0];

r[1] = a[1] + b[1];

...

r[255] = a[255] + b[255];

當然也可能會這么寫(在分支預測準確,指令緩存不大的情況下可能更快):

for (int i = 0; i < 255; i++)

r[i] = a[i] + b[i];

對FPGA來說,也可以用上面相同的寫法,不同在于:

CPU是一個一個加法計算,而FPGA排好邏輯電路,在一個時鐘周期內計算完畢。就算CPU主頻比FPGA快100倍也趕不上啊。話說后來CPU大量的增加SIMD指令,就有點這個意思,不過這相當于提供庫函數,沒那么靈活。

FPGA并行是真并行,CPU完全沒得比。CPU如果想并行最多也就是讓多個核并行,但是對于大部分算法實現來說,如上例,多個核之間的同步調度開銷遠遠大于計算開銷,就算多個核之間的調用開銷可以做的很小,一般CPU也就那幾個核,而FPGA只要門足夠,想并行幾路就可以并行幾路。

所以在做可并行的計算密集型任務時,比如信號處理,網絡傳輸等等FPGA可以幫上忙;但是如果做常見的以串行為主的任務,FPGA的確遠遠比不上CPU。如果要類比的話,有點像似GPU和CPU之間的關系。

“當年寫Verilog的時候,我就想如果CPU里面自帶一塊FPGA,應用程序程序可以在初始化期間直接燒一段代碼下去,那豈不是很爽。后來,有了能寫shader的3D顯卡...”

為什么FPGA成為數據中心尖端技術?

最后再討論一個話題,就是為什么FPGA一直是數據中心領域最尖端的技術?

有人可能認為,再大的問題(算力)都可以通過堆CPU核心來解決。那么,假設有一臺強大的48核服務器,即使使用非常高端的FPGA,也很難達到相同的吞吐量。而且,FPGA硬件設計還需要由強大的團隊來完成,非常燒錢。

這時,如果把機會成本和能源效率兩者考慮進去,好處就開始顯現出來了。

首先來看能源效率。假設這臺48核服務器的功耗為400W并且發熱嚴重,那么就會對數據中心運營不利——能耗和散熱是數據中心運營的兩項最大支出。而將FPGA連接起來只執行一項任務,就可以實現很高的能效而開銷極低。通過正確的設計,可以在實現低功耗的同時獲得高吞吐量。

其次,機會成本(這個問題不太明顯)。系統中的CPU內核數量就那么多。購買新的內核并且安裝需要花很長時間,而且最好是將通用CPU內核保留用于通用任務(例如虛擬機訂閱)。每個CPU核賣不出去就會燒錢。

當有任務大量占用CPU時間(例如AI推理)時,FPGA就成為了不錯的選擇。

一個有關微軟Project Catapult項目當中FPGA的趣事

當年,微軟必應團隊在其Project Catapult項目中發現,在啟用FPGA時,CPU的總體利用率實際上略有上升。所有的人都感到困惑,因為從直覺來看FPGA應該要減少CPU負載。但是后來他們發現,數據中心的業務流量達到了原來的2倍!由于效率提高,流量實現了兩倍的負載均衡。由此可見FPGA的強大之處。

結語

維基百科的相關詞條提到兩點:FPGA的優勢在于其并行特性,有時對于某些應用而言可以使速度明顯變快;可以使用FPGA來對算法中的某些部分加速,也可以在FPGA和通用處理器之間共享部分計算。

綜上,FPGA有兩個優點:FPGA并行度遠超CPU;CPU是通用電路,FPGA是定制電路。但是也有兩個缺點:開發周期長;并不是所有東西都適合FPGA。

責任編輯:xj

原文標題:為什么FPGA主頻比CPU慢,卻可以幫其加速?

文章出處:【微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21797

    瀏覽量

    606013
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10904

    瀏覽量

    213020
  • 主頻
    +關注

    關注

    1

    文章

    19

    瀏覽量

    9094

原文標題:為什么FPGA主頻比CPU慢,卻可以幫其加速?

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    CPU怎么降頻 bios中如何把cpu調低頻率

    CPU頻率 以Windows系統為例,可以通過電源管理選項來調節CPU的頻率。具體步驟如下: 打開控制面板 : 在Windows系統中,點擊“開始”菜單,選擇“控制面板”。 選擇電源選項 : 在控制面板中,找到并點擊“電源選項”
    的頭像 發表于 02-01 15:02 ?204次閱讀

    fpgacpu的區別 芯片是gpu還是CPU

    一、FPGACPU的區別 FPGA(Field-Programmable Gate Array,現場可編程門陣列)和CPU(Central Processing Unit,中央處理器
    的頭像 發表于 02-01 14:57 ?78次閱讀

    FPGA+GPU+CPU國產化人工智能平臺

    平臺采用國產化FPGA+GPU+CPU構建嵌入式多核異構智算終端,可形成FPGA+GPU、FPGA+CPUCPU+FPGA等組合模式,形成低功耗、高可擴展性的硬件系統,結合使用場景靈
    的頭像 發表于 01-07 16:42 ?360次閱讀
    <b class='flag-5'>FPGA+GPU+CPU</b>國產化人工智能平臺

    音頻子系統主要是用來做什么的,可以用來PCM編碼器嗎?

    請問,音頻子系統主要是用來做什么的,可以用來PCM編碼器嗎?支持PCM編碼輸出嗎?
    發表于 11-07 07:38

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

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

    服務器cpu和臺式機cpu區別

    服務器CPU和臺式機CPU的區別是一個復雜的話題,涉及到多個方面,包括設計、性能、功耗、可靠性、成本等。 服務器CPU和臺式機CPU的區別 1. 設計目標 服務器
    的頭像 發表于 10-10 15:12 ?1559次閱讀

    CPU主頻是什么意思

    CPU主頻,作為計算機處理器性能的一個重要指標,承載著豐富的技術內涵與實際應用價值。以下是對CPU主頻的詳細解析,包括其定義、用途、技術原理、影響因素以及在多個領域的實際應用。
    的頭像 發表于 09-26 15:50 ?2489次閱讀

    CPU時鐘周期與主頻的關系和區別

    CPU時鐘周期與主頻是計算機體系結構中兩個緊密相連且至關重要的概念,它們之間既存在關系又有所區別。以下將詳細闡述CPU時鐘周期與主頻的關系和區別。
    的頭像 發表于 09-26 15:46 ?2062次閱讀

    導熱硅脂對CPU散熱性能影響大嗎?

    不高的情況下,雖然可以在無導熱膠的情況下運行CPU,并且仍然可以使用計算機,但是CPU會經常自動報警和降頻,使用體驗很差。不過,千萬不要認為硅脂涂得越多越好,硅脂的熱傳導系數和銅的熱傳
    的頭像 發表于 09-24 15:40 ?1163次閱讀

    什么是CPU緩存?它有哪些作用?

    CPU緩存(Cache Memory)是計算機系統中一個至關重要的組成部分,它位于CPU與內存之間,作為兩者之間的臨時存儲器。CPU緩存的主要作用是減少CPU訪問內存所需的時間,從而提
    的頭像 發表于 08-22 14:54 ?3740次閱讀

    多核CPU的優勢是什么

    多核CPU(Central Processing Unit,中央處理器)作為現代計算機技術的重要里程碑,其優勢在于顯著提升了計算性能、多任務處理能力、系統穩定性以及能效等多個方面。以下將詳細闡述多核CPU的幾大優勢,并結合相關
    的頭像 發表于 08-22 14:30 ?3312次閱讀

    CPU生產工藝圖解

    共讀好書 CPU是現代計算機的核心部件,又稱為“微處理器”。對于PC而言,CPU的規格與頻率常常被用來作為衡量一臺電腦性能強弱重要指標。Intelx86架構已經經歷了二十多個年頭,而x86架構
    的頭像 發表于 07-26 18:07 ?663次閱讀
    <b class='flag-5'>CPU</b>生產工藝圖解

    由于接口不夠,SDIO接口可以用CPUFPGA之間進行通信嗎

    由于接口不夠,SDIO接口可以用CPUFPGA之間進行通信嗎
    發表于 04-23 10:56

    EVENTOUT這個功能可以用來IO,PWM輸出嗎?

    如題,EVENTOUT這個功能可以用來IO,PWM輸出嗎?
    發表于 04-15 07:10

    請問DMA控制器可以減輕CPU負擔嗎?

    直接存儲器訪問 ( DMA )控制器,可以在內存和/或外設之間傳輸數據,而不需要 CPU 參與每次傳輸。合理利用 DMA 控制器,可以減輕CPU的負擔。
    的頭像 發表于 03-28 09:41 ?796次閱讀
    請問DMA控制器<b class='flag-5'>可以</b>減輕<b class='flag-5'>CPU</b>負擔嗎?
    钱隆百家乐官网破解版| 威斯汀百家乐官网的玩法技巧和规则| 利来百家乐的玩法技巧和规则| 百家乐官网园游戏77sonci...| 大发888开户博彩吧| 免费百家乐官网过滤工具| 射阳县| 百家乐现金网最好的系统哪里有可靠吗| 广州百家乐官网赌场娱乐网规则| 爱赢娱乐| 百家乐赌场高手| 涂山百家乐官网的玩法技巧和规则 | 百家乐QQ群娱乐| 百家乐开户最快的平台是哪家| 百家乐官网记牌器| 阳西县| 大发888老虎机网页版| 澳门百家乐新濠天地| 新锦江百家乐官网的玩法技巧和规则 | 百家乐龙虎斗| 百家乐官网视频画面| 九龙城区| 马牌线上娱乐| 大发888扑克合营商| 棋牌赌博| 香港六合彩图| 大发888手机客户端| 尊龙百家乐娱乐场开户注册| 百家乐道具扫描| 澳门百家乐登陆网址| 做生意开店铺风水大全| 博之道百家乐官网技巧| 百家乐官网游戏机高手| 百家乐官网赢家公式| 修文县| 剑河县| 百家乐官网庄闲下载| 百家乐官网3宜3忌| 真人百家乐官网技巧| 赤城县| 百家乐官网网络游戏平台|