cpu和gpu哪個技術含量高(趣味講解CPU與GPU有什麼區別)
2023-11-11 01:27:42 3
今天,我們簡單聊一聊CPU與GPU的區別。
CPU的故事我們聊得比較多,之前也發過很多關於CPU的文章,因此這裡重點說一下GPU。
教授 vs 小學生大家可以簡單的將CPU理解為學識淵博的教授,什麼都精通;而GPU則是一堆小學生,只會簡單的算數運算。
可即使教授再神通廣大,也不能一秒鐘內計算出500次加減法。因此,對簡單重複的計算來說,單單一個教授敵不過數量眾多的小學生。在進行簡單的算數運算這件事上,500個小學生(並發)可以輕而易舉打敗教授。
我們可以看到,CPU和GPU的最大不同在於架構。CPU適用於廣泛的應用場景(學識淵博),可以執行任意程序;而GPU則專為多任務而生,並發能力強。
具體來講,就是多核,一般的CPU有2核、4核、8核等;而GPU則可能會有成百上千核。
可以看到,CPU內部cache以及控制部分佔據了很大一部分片上面積,因此計算單元佔比很少。
點擊獲取1V1嵌入式學習規劃,現在還送100G精選學習資料。嵌入式物聯網開發學習諮詢
下面,我們再來看看GPU。GPU只有很簡單的控制單元,剩下的大部分都被計算單元佔據,因此CPU的核數有限,而GPU則輕鬆堆出上千核。
只不過CPU中每個核的能力好比教授,而GPU的每個核的能力好比一個小學生。
你可能會想,為什麼GPU需要這麼奇怪的架構呢?
為什麼GPU需要這麼多核心?想一想計算機上的一張圖是怎麼表示的?無非就是屏幕上的一個個像素:
我們需要為每個像素進行計算,而且是相同的運算,就好比剛才例子中的小學生計算計加法一樣。
注意,對於屏幕來說一般會有上百萬個像素,如果我們要串行的為每一個像素進行運算效率就太低了。因此,我們可以讓GPU中的每一個核心去為相應的像素進行計算。由於GPU中有很多核心,因此並行計算可以大幅提高速度。
現在你應該明白為什麼GPU要這樣工作了吧!
除了GPU的核心數比較多之外,GPU的工作方式也比較奇怪。
奇怪的工作方式對於CPU來說,不同的核心可以執行不同的機器指令,coreA在運行word線程的同時coreB上可以運行瀏覽器線程,這就是所謂的多指令多數據,MIMD(Multiple Instruction, Multiple Data)。
而GPU則不同,GPU上的這些核心必須整齊劃一的運行相同的機器指令,只是可以操作不同的數據,這就好比這些小學生在某個時刻必須都進行加法計算,不同的地方在於有的小學生可能需要計算1 1,有的要計算2 6等等,變化的地方僅在於操作數,這就是所謂的單指令多數據,SIMD(Single Instruction, Multiple Data)。
因此,我們可以看到GPU的工作方式和CPU是截然不同的。
除了這種工作方式之外,GPU的指令集還非常簡單,不像CPU這種複雜的處理器。如果你去看CPU的編程手冊就會發現,CPU負責的事情非常多:中斷處理、內存管理、IO等。
這些對於GPU來說都是不存在的,可以看到GPU的定位非常簡單,就是純計算,GPU絕不是用來取代CPU的,CPU只是把一些GPU非常擅長的事情交給它,GPU僅僅是用來分擔CPU工作的配角。
CPU和GPU是這樣配合工作的:
比較適合GPU的計算場景是這樣的:1)計算簡單;2)重複計算,因此如果你的計算場景和這裡的圖像渲染相似那麼使用GPU就很合理了。
因此對於圖形圖像計算、天氣預報以及神經網絡等都適用於GPU,哦對了,GPU還適合用來挖礦。
好啦,這個話題今天就到這裡,希望這篇對大家理解GPU有所幫助。
END
文章連結:https://mp.weixin.qq.com/s/t38ax6e0ZY8KAnCC2qPUYQ
轉載自:嵌入式微處理器
文章來源:碼農的荒島求生 ,作者陸小風
文章連結:趣味講解:CPU與GPU有什麼區別?
版權申明:本文來源於網絡,免費傳達知識,版權歸原作者所有。如涉及作品版權問題,請聯繫我進行刪除。
,