CPU是什么?GPU是什么?有图有真相。
1.CPU
CPU( Central Processing Unit, 中央處理器)就是機(jī)器的“大腦”,也是布局謀略、發(fā)號(hào)施令、控制行動(dòng)的“總司令官”。
CPU的結(jié)構(gòu)主要包括運(yùn)算器(ALU, Arithmetic and Logic Unit)、控制單元(CU, Control Unit)、寄存器(Register)、高速緩存器(Cache)和它們之間通訊的數(shù)據(jù)、控制及狀態(tài)的總線(xiàn)。
簡(jiǎn)單來(lái)說(shuō)就是:計(jì)算單元、控制單元和存儲(chǔ)單元,架構(gòu)如下圖所示:
中文翻譯:
從字面上我們也很好理解,計(jì)算單元主要執(zhí)行算術(shù)運(yùn)算、移位等操作以及地址運(yùn)算和轉(zhuǎn)換;存儲(chǔ)單元主要用于保存運(yùn)算中產(chǎn)生的數(shù)據(jù)以及指令等;控制單元?jiǎng)t對(duì)指令譯碼,并且發(fā)出為完成每條指令所要執(zhí)行的各個(gè)操作的控制信號(hào)。
所以一條指令在CPU中執(zhí)行的過(guò)程是這樣的:讀取到指令后,通過(guò)指令總線(xiàn)送到控制器(黃色區(qū)域)中進(jìn)行譯碼,并發(fā)出相應(yīng)的操作控制信號(hào);然后運(yùn)算器(綠色區(qū)域)按照操作指令對(duì)數(shù)據(jù)進(jìn)行計(jì)算,并通過(guò)數(shù)據(jù)總線(xiàn)將得到的數(shù)據(jù)存入數(shù)據(jù)緩存器(大塊橙色區(qū)域)
是不是有點(diǎn)兒復(fù)雜?沒(méi)關(guān)系,這張圖完全不用記住,我們只需要知道,CPU遵循的是馮諾依曼架構(gòu),其核心就是:存儲(chǔ)程序,順序執(zhí)行。
講到這里,有沒(méi)有看出問(wèn)題,沒(méi)錯(cuò)——在這個(gè)結(jié)構(gòu)圖中,負(fù)責(zé)計(jì)算的綠色區(qū)域占的面積似乎太小了,而橙色區(qū)域的緩存Cache和黃色區(qū)域的控制單元占據(jù)了大量空間。
高中化學(xué)有句老生常談的話(huà)叫:結(jié)構(gòu)決定性質(zhì),放在這里也非常適用。
因?yàn)镃PU的架構(gòu)中需要大量的空間去放置存儲(chǔ)單元(橙色部分)和控制單元(黃色部分),相比之下計(jì)算單元(綠色部分)只占據(jù)了很小的一部分,所以它在大規(guī)模并行計(jì)算能力上極受限制,而更擅長(zhǎng)于邏輯控制。
另外,因?yàn)樽裱T諾依曼架構(gòu)(存儲(chǔ)程序,順序執(zhí)行),CPU就像是個(gè)一板一眼的管家,人們吩咐的事情它總是一步一步來(lái)做。但是隨著人們對(duì)更大規(guī)模與更快處理速度的需求的增加,這位管家漸漸變得有些力不從心。
于是,大家就想,能不能把多個(gè)處理器放在同一塊芯片上,讓它們一起來(lái)做事,這樣效率不就提高了嗎?
沒(méi)錯(cuò),GPU便由此誕生了。
2.GPU
在正式講解GPU之前,我們先來(lái)講講上文中提到的一個(gè)概念——并行計(jì)算。
并行計(jì)算(Parallel Computing)是指同時(shí)使用多種計(jì)算資源解決計(jì)算問(wèn)題的過(guò)程,是提高計(jì)算機(jī)系統(tǒng)計(jì)算速度和處理能力的一種有效手段。它的基本思想是用多個(gè)處理器來(lái)共同求解同一問(wèn)題,即將被求解的問(wèn)題分解成若干個(gè)部分,各部分均由一個(gè)獨(dú)立的處理機(jī)來(lái)并行計(jì)算。
并行計(jì)算可分為時(shí)間上的并行和空間上的并行。
時(shí)間上的并行是指流水線(xiàn)技術(shù),比如說(shuō)工廠(chǎng)生產(chǎn)食品的時(shí)候分為四步:清洗-消毒-切割-包裝。
如果不采用流水線(xiàn),一個(gè)食品完成上述四個(gè)步驟后,下一個(gè)食品才進(jìn)行處理,耗時(shí)且影響效率。但是采用流水線(xiàn)技術(shù),就可以同時(shí)處理四個(gè)食品。這就是并行算法中的時(shí)間并行,在同一時(shí)間啟動(dòng)兩個(gè)或兩個(gè)以上的操作,大大提高計(jì)算性能。
空間上的并行是指多個(gè)處理機(jī)并發(fā)的執(zhí)行計(jì)算,即通過(guò)網(wǎng)絡(luò)將兩個(gè)以上的處理機(jī)連接起來(lái),達(dá)到同時(shí)計(jì)算同一個(gè)任務(wù)的不同部分,或者單個(gè)處理機(jī)無(wú)法解決的大型問(wèn)題。
比如小李準(zhǔn)備在植樹(shù)節(jié)種三棵樹(shù),如果小李1個(gè)人需要6個(gè)小時(shí)才能完成任務(wù),植樹(shù)節(jié)當(dāng)天他叫來(lái)了好朋友小紅、小王,三個(gè)人同時(shí)開(kāi)始挖坑植樹(shù),2個(gè)小時(shí)后每個(gè)人都完成了一顆植樹(shù)任務(wù),這就是并行算法中的空間并行,將一個(gè)大任務(wù)分割成多個(gè)相同的子任務(wù),來(lái)加快問(wèn)題解決速度。
所以說(shuō),如果讓CPU來(lái)執(zhí)行這個(gè)種樹(shù)任務(wù)的話(huà),它就會(huì)一棵一棵的種,花上6個(gè)小時(shí)的時(shí)間,但是讓GPU來(lái)種樹(shù),就相當(dāng)于好幾個(gè)人同時(shí)在種。
GPU全稱(chēng)為Graphics Processing Unit,中文為圖形處理器,就如它的名字一樣,GPU最初是用在個(gè)人電腦、工作站、游戲機(jī)和一些移動(dòng)設(shè)備(如平板電腦、智能手機(jī)等)上運(yùn)行繪圖運(yùn)算工作的微處理器。
為什么GPU特別擅長(zhǎng)處理圖像數(shù)據(jù)呢?這是因?yàn)閳D像上的每一個(gè)像素點(diǎn)都有被處理的需要,而且每個(gè)像素點(diǎn)處理的過(guò)程和方式都十分相似,也就成了GPU的天然溫床。
GPU簡(jiǎn)單架構(gòu)如下圖所示:
從架構(gòu)圖我們就能很明顯的看出,GPU的構(gòu)成相對(duì)簡(jiǎn)單,有數(shù)量眾多的計(jì)算單元和超長(zhǎng)的流水線(xiàn),特別適合處理大量的類(lèi)型統(tǒng)一的數(shù)據(jù)。
但GPU無(wú)法單獨(dú)工作,必須由CPU進(jìn)行控制調(diào)用才能工作。CPU可單獨(dú)作用,處理復(fù)雜的邏輯運(yùn)算和不同的數(shù)據(jù)類(lèi)型,但當(dāng)需要大量的處理類(lèi)型統(tǒng)一的數(shù)據(jù)時(shí),則可調(diào)用GPU進(jìn)行并行計(jì)算。
注:GPU中有很多的運(yùn)算器ALU和很少的緩存cache,緩存的目的不是保存后面需要訪(fǎng)問(wèn)的數(shù)據(jù)的,這點(diǎn)和CPU不同,而是為線(xiàn)程thread提高服務(wù)的。如果有很多線(xiàn)程需要訪(fǎng)問(wèn)同一個(gè)相同的數(shù)據(jù),緩存會(huì)合并這些訪(fǎng)問(wèn),然后再去訪(fǎng)問(wèn)dram。
GPU的工作大部分都計(jì)算量大,但沒(méi)什么技術(shù)含量,而且要重復(fù)很多很多次。
借用知乎上某大神的說(shuō)法,就像你有個(gè)工作需要計(jì)算幾億次一百以?xún)?nèi)加減乘除一樣,最好的辦法就是雇上幾十個(gè)小學(xué)生一起算,一人算一部分,反正這些計(jì)算也沒(méi)什么技術(shù)含量,純粹體力活而已;而CPU就像老教授,積分微分都會(huì)算,就是工資高,一個(gè)老教授資頂二十個(gè)小學(xué)生,你要是富士康你雇哪個(gè)?
GPU就是用很多簡(jiǎn)單的計(jì)算單元去完成大量的計(jì)算任務(wù),純粹的人海戰(zhàn)術(shù)。這種策略基于一個(gè)前提,就是小學(xué)生A和小學(xué)生B的工作沒(méi)有什么依賴(lài)性,是互相獨(dú)立的。
但有一點(diǎn)需要強(qiáng)調(diào),雖然GPU是為了圖像處理而生的,但是我們通過(guò)前面的介紹可以發(fā)現(xiàn),它在結(jié)構(gòu)上并沒(méi)有專(zhuān)門(mén)為圖像服務(wù)的部件,只是對(duì)CPU的結(jié)構(gòu)進(jìn)行了優(yōu)化與調(diào)整,所以現(xiàn)在GPU不僅可以在圖像處理領(lǐng)域大顯身手,它還被用來(lái)科學(xué)計(jì)算、密碼破解、數(shù)值分析,海量數(shù)據(jù)處理(排序,Map-Reduce等),金融分析等需要大規(guī)模并行計(jì)算的領(lǐng)域。
所以GPU也可以認(rèn)為是一種較通用的芯片。
另贈(zèng)送:
APU – Accelerated Processing Unit, 加速處理器,AMD公司推出加速圖像處理芯片產(chǎn)品。
BPU – Brain Processing Unit, 地平線(xiàn)公司主導(dǎo)的嵌入式處理器架構(gòu)。自動(dòng)駕駛
CPU – Central Processing Unit 中央處理器, 目前PC core的主流產(chǎn)品。
DPU – Deep learning Processing Unit, 深度學(xué)習(xí)處理器,最早由國(guó)內(nèi)深鑒科技提出;另說(shuō)有Dataflow Processing Unit 數(shù)據(jù)流處理器, Wave Computing 公司提出的AI架構(gòu);Data storage Processing Unit,深圳大普微的智能固態(tài)硬盤(pán)處理器。
FPU – Floating Processing Unit 浮點(diǎn)計(jì)算單元,通用處理器中的浮點(diǎn)運(yùn)算模塊。
GPU – Graphics Processing Unit, 圖形處理器,采用多線(xiàn)程SIMD架構(gòu),為圖形處理而生。
HPU – Holographics Processing Unit 全息圖像處理器, 微軟出品的全息計(jì)算芯片與設(shè)備。
IPU – Intelligence Processing Unit, Deep Mind投資的Graphcore公司出品的AI處理器產(chǎn)品。
MPU/MCU – Microprocessor/Micro controller Unit, 微處理器/微控制器,一般用于低計(jì)算應(yīng)用的RISC計(jì)算機(jī)體系架構(gòu)產(chǎn)品,如ARM-M系列處理器。
NPU – Neural Network Processing Unit,神經(jīng)網(wǎng)絡(luò)處理器,是基于神經(jīng)網(wǎng)絡(luò)算法與加速的新型處理器總稱(chēng),如中科院計(jì)算所/寒武紀(jì)公司出品的diannao系列。
RPU – Radio Processing Unit, 無(wú)線(xiàn)電處理器, Imagination Technologies 公司推出的集合集Wifi/藍(lán)牙/FM/處理器為單片的處理器。
TPU – Tensor Processing Unit 張量處理器, Google 公司推出的加速人工智能算法的專(zhuān)用處理器。目前一代TPU面向Inference,二代面向訓(xùn)練。另外,
VPU – Vector Processing Unit 矢量處理器,Intel收購(gòu)的Movidius公司推出的圖像處理與人工智能的專(zhuān)用芯片的加速計(jì)算核心。
WPU – Wearable Processing Unit, 可穿戴處理器,Ineda Systems公司推出的可穿戴片上系統(tǒng)產(chǎn)品,包含GPU/MIPS CPU等IP。
XPU – 百度與Xilinx公司在2017年Hotchips大會(huì)上發(fā)布的FPGA智能云加速,含256核。
ZPU – Zylin Processing Unit, 由挪威Zylin 公司推出的一款32位開(kāi)源處理器。
當(dāng)26個(gè)字母被用完后,即將出現(xiàn)XXPU,XXXPU,并以更快的速度占領(lǐng)起名界。
總結(jié)
以上是生活随笔為你收集整理的CPU是什么?GPU是什么?有图有真相。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: sqlserver导出带数据的脚本文件
- 下一篇: 2021东京奥运会数据接口