程序丨CPU和GPU:它們如何處理任務?
在游戲優化中,實際上主要都是在圍繞著CPU和GPU這兩大塊進行的。要理解GPU和CPU的區別,一種簡單的方式就是比較它們如何處理任務。
什么CPU?
(Central Processing Unit) 中央處理器,計算機的大腦,用于處理各種指令。位于主板上。
比如一些常規操作的處理,打開一個文檔,打開某個程序,播放一段聲音等,適合做有序的工作。
只有少數幾個內核,并且是串行的。內核雖少,但是性能非常的強大(強于GPU),有強大的計算能力。
什么是GPU?
圖像處理單元(Graphics Processing Unit),位于顯卡上。
來一張NVDIA官網上最更直觀的對比圖:
上圖是一個8核的CPU,旁邊是擁有上千個內核的GPU,一個是串行的,進行有序的工作,一個是并行的,同時進行工作。大規模的數據運算。
CPU的ALU(算術邏輯單元)要明顯少于GPU,所以在大規模數據運算上,GPU更擅長。
簡單總結下:
CPU內核比較少,而且是串行的,主要做一些常規的操作,如打開文檔,打開程序,播放聲音等一些有序的工作,擅長一些邏輯運算,有高速緩存,可以提高數據訪問的速度。
GPU則接受來自CPU的指令,有大量的內核,而且是并行計算的,所以能夠完成大規模的數據運算,比如游戲中我要將3D模模型數據,即幾何數據進行大量的運算并最終呈現,在金融,密碼破解方面等等,這都需要大量的并行運算。這也是為何比特幣挖礦要用顯卡的原因。
更簡單的總結是CPU是串行的,適合做一些有序的工作。而GPU是并行的,適合處理大規模數據的運算。
雖然CPU的內核少,但他的性能要遠強于GPU的內核。后者是人海戰術。
CPU和GPU有著不同的分工,所以無法相互替代。CPU更擅長分支預測,而GPU負責處理大量數據的運算。
在上面提到的NVDIA的官網中,有個很形象的視頻來對比CPU和GPU的區別,非常有趣,但是很經典,我想很多人都看過。