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