在電競玩家看來,顯卡GPU 是絕對不能完全取代 CPU 的最大原因

在電競玩家看來,顯卡GPU 是絕對不能完全取代 CPU 的最大原因

GPU的單核性能實在太爛了

GPU的優勢是大規模並行運算。打個比方,一道解析幾何的高考題,cpu單核要算1秒,GPU單核就要20秒。但是假設現在有1024道題,GPU假設是960,那麼同時做1024道題,20秒全部搞定,cpu假設是epyc32核,一次性只有32題,那麼就要分32批來做,也就是需要32秒才能做完。但是單獨拎一道題出來,cpu只要一秒。

牙膏廠曾經在宣傳7350k時說過單核性能重要,雖然那句話確實活該被噴,但是相比gpu來說,cpu確實單核性能更重要。畢竟大多數負載都是在做一兩道題而只有圖形需要一次性幾千道題。

當然,GPU也不是不能跑某些看上去的一道題,比如壓制視頻,看上去確實是一道題,但是GPU可以把畫面分割開處理,化一道題為上千上萬道題做。但是有時候一道題各個部分之間過程是要互相使用的,拆分後容易做錯,這也是為什麼目前GPU硬編碼視頻畫質爛的跟個友善度一樣的原因。

在電競玩家看來,顯卡GPU 是絕對不能完全取代 CPU 的最大原因

Intel CPU從8086發展到現在的i7,40多年來一直保持著軟件的向下兼容性,這才使所有的現存軟件都能免費享受到CPU升級帶來的性能提升,才能被市場所接受。你要出一個不向下兼容的CPU比如itanium,結局只能是被市場淘汰。

GPU單核單線程的性能遠遠低於CPU,要獲得GPU帶來的性能提升,就必須把程序優化成並行計算,這不但是指令集的不兼容了,連算法都不兼容了。這世界上99.99%的程序都是以單線程為主,都需要要用並行算法重寫才能發揮GPU的性能,然而90%的程序無法利用並行算法,剩餘10%的程序改寫成本也是極高。所以這世界上有多少軟件用上了opencl/cuda?大部分連CPU多核都沒完全利用上了。

在電競玩家看來,顯卡GPU 是絕對不能完全取代 CPU 的最大原因

設計架構不同導致CPU擅長串行計算,GPU擅長並行計算。(應知友建議,將“線性/非線性計算”改為“串行/並行計算”)

先對比一下GPU和CPU架構的區別:

在電競玩家看來,顯卡GPU 是絕對不能完全取代 CPU 的最大原因

這張圖太經典,很容易搜到。從圖上可以看到兩者的區別在於緩存(cache)、控制器(control)和邏輯處理單元(alu)的組合上。CPU的緩存很大,可以用來存儲大量數據,並且每個邏輯處理單元可以共享緩存數據,速度很快;控制器性能強大,邏輯運算單元性能也強。可以看出CPU很適合處理需要線性計算的任務,需要用到頻繁寫入讀取緩存數據的複雜計算,比如物理模擬。而GPU邏輯處理單元性能比CPU低,但數量多,而由於並行架構原因,每組邏輯處理單元的控制器和緩存都是獨立的,帶來的優勢是在大量不需要複雜邏輯運算時,運算效率非常高,比如三維遊戲畫面渲染。

雖然Nvidia一再的黑CPU,但兩者架構區別決定了不可能。

在電競玩家看來,顯卡GPU 是絕對不能完全取代 CPU 的最大原因

現在我們常用的軟件需要CPU做大量串行運算,沒辦法像GPU那樣做密集並行計算,比如寫word用不上並行計算的優勢,強行用GPU做那也只會變成“弱雞CPU版word”,不光Aord,手機APP,玩的遊戲中的物理運算,視頻編輯軟件,絕大多數光線追蹤渲染器等由於牽扯到大量串行計算及邏輯判斷,結果都推薦用CPU計算,GPU只能說自己在幫這些軟件“加速”,但沒辦法說“取代”。另外在開發環節,開發運行在CPU上的軟件要比開發運行在GPU上的簡單,也進一步導致使用GPU運行的軟件比較少。

有個比較恰當的比喻,GPU就像一個博士,GPU就像一堆小學生,你拿一百萬條乘法題給博士和給一條微積分考研題給小學生都是不合適的。

GPU肯定是不能取代CPU的。

CPU是一個通用處理器,需要解決日常各種應用,這些應用有的是計算密集型,有的是訪存密集型,分支密集型,甚至還可以劃分出任務密集型,IO密集型。CPU的日常執行受木桶效應的影響,需要滿足以上各種密集型應用,於是cpu就做了分支預測器/cache層級結構/亂序執行單元等。每種應用可以不做的特別突出,但是不能完全做不來。

GPU是一個專用處理器,早期叫做加速卡,只需要解決圖形應用就可以了,計算密集型。所以他就可以犧牲掉其他應用的特性,GPU沒有分支預測器,沒有CPU意義的cache層級結構,沒有亂序執行單元。他這些全都不要,可以節省很多面積。剩下來的面積就堆計算單元,就可以把計算能力做的特別的高;堆訪存單元,把訪存帶寬做的特別的高。

GPU什麼時候可以取代CPU呢?等到所有的應用全都是計算密集型的時候,CPU就不用存在了。但是應用需求是不可能變成這樣的。

但是GPU這種類型的東西可以慢慢的擠壓CPU市場。

我感覺計算機體系結構的發展由應用需求半導體工藝共同驅動的。

隨著半導體工藝的發展,芯片的造價成本越來越低。以前只有一個芯片,這個芯片需要處理十個任務;而現在芯片成本降低以後,我們可以將一個芯片拆成十個芯片,分別處理十個任務,有的芯片處理圖形應用,有的芯片處理網絡請求,有的芯片處理神經網絡計算,甚至有的芯片去挖礦。專用處理器就開始變得越來越多。

除了前面幾個提到的大的應用場景,還有很多小型應用場景,比如共享單車的網絡通信芯片,智能門鎖的指紋識別芯片,汽車內部的各種傳感器芯片。在物物相連的需求下,這種微控制器的需求更越來越高,這種細分領域的專用小芯片也會越來越多。現在很多是使用mcu->soc的解決方案,但是在應用場景越分越細以後,誰知道會不會都變成專用小芯片呢?

PC的發展成就了intel,移動互聯網的發展成就了arm,人工智能的發展成就了NVIDIA。處理器市場漸漸增加了嵌入式cpu、gpu、礦卡、神經網絡加速器等各種各樣的處理器。


分享到:


相關文章: