問:為什么 CPU 的浮點(diǎn)運(yùn)算能力比 GPU 差,為什么不提高 CPU 的浮點(diǎn)運(yùn)算能力?
「速度區(qū)別主要是來自于架構(gòu)上的區(qū)別」是一個表面化的解釋。對,架構(gòu)是不同。但是這種不同是目前各個廠家選擇的現(xiàn)狀,還是由于本質(zhì)的原因決定的?CPU 能不能增加核?GPU 那張圖為什么不需要 cache?
首先,CPU 能不能像 GPU 那樣去掉 cache?不行。GPU 能去掉 cache 關(guān)鍵在于兩個因素:數(shù)據(jù)的特殊性(高度對齊,pipeline 處理,不符合局部化假設(shè),很少回寫數(shù)據(jù))、高速度的總線。對于后一個問題,CPU 受制于落后的數(shù)據(jù)總線標(biāo)準(zhǔn),理論上這是可以改觀的。對于前一個問題,從理論上就很難解決。因?yàn)?CPU 要提供通用性,就不能限制處理數(shù)據(jù)的種類。這也是 GPGPU 永遠(yuǎn)無法取代 CPU 的原因。
其次,CPU 能不能增加很多核?不行。首先 cache 占掉了面積。其次,CPU 為了維護(hù) cache 的一致性,要增加每個核的復(fù)雜度。還有,為了更好的利用 cache 和處理非對齊以及需要大量回寫的數(shù)據(jù),CPU 需要復(fù)雜的優(yōu)化(分支預(yù)測、out-of-order 執(zhí)行、以及部分模擬 GPU 的 vectorization 指令和長流水線)。所以一個 CPU 核的復(fù)雜度要比 GPU 高的多,進(jìn)而成本就更高(并不是說蝕刻的成本高,而是復(fù)雜度降低了成片率,所以最終成本會高)。所以 CPU 不能像 GPU 那樣增加核。
至于控制能力,GPU 的現(xiàn)狀是差于 CPU,但是并不是本質(zhì)問題。而像遞歸這樣的控制,并不適合高度對齊和 pipeline 處理的數(shù)據(jù),本質(zhì)上還是數(shù)據(jù)問題。
-
cpu
+關(guān)注
關(guān)注
68文章
10996瀏覽量
214859 -
gpu
+關(guān)注
關(guān)注
28文章
4870瀏覽量
130249
原文標(biāo)題:為什么 CPU 的浮點(diǎn)運(yùn)算能力比 GPU 差,為什么不提高 CPU 的浮點(diǎn)運(yùn)算能力?
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
設(shè)計(jì)了一個基于浮點(diǎn)數(shù)運(yùn)算的協(xié)處理器,使用C語言編程時(shí)沒法輸入float型數(shù)據(jù),請問有哪些部分需要修改?
【RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用】RA4E2的DSP浮點(diǎn)性能的軟件浮點(diǎn)測試和硬件浮點(diǎn)測試對比
FPGA中的浮點(diǎn)四則運(yùn)算是什么

FPGA中浮點(diǎn)四則運(yùn)算的實(shí)現(xiàn)過程

【RA-Eco-RA2E1-48PIN-V1.0開發(fā)板試用】在M23內(nèi)核上使用qfplib浮點(diǎn)運(yùn)算庫進(jìn)行浮點(diǎn)運(yùn)算
【AG32開發(fā)板免費(fèi)試用】+數(shù)據(jù)采集存儲系統(tǒng)(2)-串口輸出+浮點(diǎn)運(yùn)算驗(yàn)證
《算力芯片 高性能 CPU/GPU/NPU 微架構(gòu)分析》第1-4章閱讀心得——算力之巔:從基準(zhǔn)測試到CPU微架構(gòu)的深度探索
雙核cpu和單核cpu的區(qū)別
請問AURIX TC3xx tricore架構(gòu)下浮點(diǎn)運(yùn)算和將浮點(diǎn)數(shù)小數(shù)點(diǎn)去掉變成整數(shù)來計(jì)算哪種方式更加節(jié)省算力?
cpu的運(yùn)算器和控制器的作用是什么
cpu控制器負(fù)責(zé)什么運(yùn)算
cpu控制器和運(yùn)算器組成的部件有哪些
請問esp32 wroom 32u默認(rèn)開啟硬件浮點(diǎn)運(yùn)算單元了嗎?
在定時(shí)器內(nèi)使用浮點(diǎn)運(yùn)算的PID控制算法,程序就會重啟,為什么?
優(yōu)秀的Verilog/FPGA開源項(xiàng)目-浮點(diǎn)運(yùn)算器(FPU)介紹

評論