今天主要介紹一下GPU、CPU和兩者之間的區别。
CPU( Central Processing Unit, 中央處理器)就是機器的“大腦”,也是布局謀略、發号施令、控制行動的“總司令官”。
CPU的結構主要包括運算器(ALU, Arithmetic and Logic Unit)、控制單元(CU, Control Unit)、寄存器(Register)、高速緩存器(Cache)和它們之間通訊的數據、控制及狀态的總線。
簡單來說就是:計算單元、控制單元和存儲單元
2、GPU即圖形處理器。GPU全稱為Graphics Processing Unit,中文為圖形處理器,就如它的名字一樣,GPU最初是用在個人電腦、工作站、遊戲機和一些移動設備(如平闆電腦、智能手機等)上運行繪圖運算工作的微處理器。
為什麼GPU特别擅長處理圖像數據呢?這是因為圖像上的每一個像素點都有被處理的需要,而且每個像素點處理的過程和方式都十分相似,也就成了GPU的天然溫床。
GPU的構成相對簡單,有數量衆多的計算單元和超長的流水線,特别适合處理大量的類型統一的數據。但GPU無法單獨工作,必須由CPU進行控制調用才能工作。CPU可單獨作用,處理複雜的邏輯運算和不同的數據類型,但當需要大量的處理類型統一的數據時,則可調用GPU進行并行計算。
從根本上說CPU和GPU它們的目的不同,且有不同側重點,也有着不同的性能特性,在某些工作中CPU執行得更快,另一工作中或許GPU能更好。當你需要對大量數據做同樣的事情時,GPU更合适,當你需要對同一數據做很多事情時,CPU正好。
然而在實際應用中,後一種情形更多,也就是CPU更為靈活能勝任更多的任務。GPU能做什麼?關于圖形方面的以及大型矩陣運算,如機器學習算法、挖礦、暴力破解密碼等,GPU會大幅提高計算效率。
簡單地說,CPU擅長分支預測等複雜操作,GPU擅長對大量數據進行簡單操作。一個是複雜的勞動,一個是大量并行的工作。
其實GPU可以看作是一種專用的CPU,專為單指令在大塊數據上工作而設計,這些數據都是進行相同的操作,要知道處理一大塊數據比處理一個一個數據更有效,執行指令開銷也會大大降低,因為要處理大塊數據,意味着需要更多的晶體管來并行工作,現在旗艦級顯卡都是百億以上的晶體管。
CPU呢,它的目的是盡可能快地在單個數據上執行單個指令。由于它隻需要使用單個數據單條指令,因此所需的晶體管數量要少得多,目前主流桌面CPU晶體管都是十億以下,和頂級GPU相差十倍以上,但它需要更大的指令集,更複雜的ALU(算術邏輯單元),更好的分支預測,更好的虛拟化架構、更低的延遲等等。
另外,像我們的操作系統Windows,它是為x86處理器編寫的,它需要做的任務執行的進程,在CPU上肯定更為高效,你想每個線程的任務并不相同,基本上難以并行化,完全發揮不了GPU的長處。
總而言之,CPU和GPU因為最初用來處理的任務就不同,所以設計上有不小的區别。CPU的運算速度取決于請了多麼厲害的教授。教授處理複雜任務的能力是碾壓小學生的,但是對于沒那麼複雜的任務,還是頂不住人多。當然現在的GPU也能做一些稍微複雜的工作了,相當于升級成初中生高中生的水平。但還需要CPU來把數據喂到嘴邊才能開始幹活,最終還是靠CPU來管的。
覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的内容,感興趣的朋友可以關注下~
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!