一張圖看懂GPU計(jì)算能力超強(qiáng)的原因是什么
下圖對(duì)CPU與GPU中的邏輯架構(gòu)進(jìn)行了對(duì)比。其中Control是控制器、ALU算術(shù)邏輯單元、Cache是cpu內(nèi)部緩存、DRAM就是內(nèi)存??梢钥吹紾PU設(shè)計(jì)者將更多的晶體管用作執(zhí)行單元,而不是像CPU那樣用作復(fù)雜的控制單元和緩存。從實(shí)際來(lái)看,CPU芯片空間的5%是ALU,而GPU空間的40%是ALU。這也是導(dǎo)致GPU計(jì)算能力超強(qiáng)的原因。
那有人講了,為什么cpu不像gpu那樣設(shè)計(jì)呢,這樣計(jì)算能力也強(qiáng)悍了!
為什么?CPU要做得很通用。CPU需要同時(shí)很好的支持并行和串行操作,需要很強(qiáng)的通用性來(lái)處理各種不同的數(shù)據(jù)類(lèi)型,同時(shí)又要支持復(fù)雜通用的邏輯判斷,這樣會(huì)引入大量的分支跳轉(zhuǎn)和中斷的處理。這些都使得CPU的內(nèi)部結(jié)構(gòu)異常復(fù)雜,計(jì)算單元的比重被降低了。而GPU面對(duì)的則是類(lèi)型高度統(tǒng)一的、相互無(wú)依賴(lài)的大規(guī)模數(shù)據(jù)和不需要被打斷的純凈的計(jì)算環(huán)境。因此GPU的芯片比CPU芯片簡(jiǎn)單很多。
舉個(gè)例子,假設(shè)有一堆相同的加減乘除計(jì)算任務(wù)需要處理,那把這個(gè)任務(wù)交給一堆(幾十個(gè))小學(xué)生就可以了,這里小學(xué)生類(lèi)似于GPU的計(jì)算單元,而對(duì)一些復(fù)雜的邏輯推理等問(wèn)題,比如公式推導(dǎo)、科技文章寫(xiě)作等高度邏輯化的任務(wù),交給小學(xué)生顯然不合適,這時(shí)大學(xué)教授更適合,這里的大學(xué)教授就是CPU的計(jì)算單元了,大學(xué)教授當(dāng)然能處理加減乘除的問(wèn)題,單個(gè)教授計(jì)算加減乘除比單個(gè)小學(xué)生計(jì)算速度更快,但是成本顯然高很多。