GPU能替代cpu嗎?
GPU誕生於上世紀90年代,1999年NVIDIA推出劃時代的Geforce 256以後,平均每6個月就會出現性能翻倍的新GPU,如果GPU能替代CPU的話,英特爾早就關門了。
CPU是「中央處理器」的英文縮寫,而GPU是「圖形處理器」的意思。其實兩者最大的區別在於:CPU啥都能幹,是個多面手;而GPU主要專註於圖像的處理。
舉個例子,GPU的工作量很大並且需要不停重複,但技術含量不高,就像富士康流水線上的工人,屬於勞動密集型的人海戰術;而CPU的工作量相對較小但是比較複雜,就像是一個數學家不僅要會小學數學中的加減乘數,也要懂高等數學中的微積分、線性代數。
由於兩者的定位不同,CPU一般只是4核、8核,而GPU動不動就有幾百個上線個核心來處理大量的並發任務。
我在NVIDIA的官網上找到了一段視頻,用畫畫的例子講了CPU和GPU的區別。從圖像處理的角度,GPU要比CPU快上不少,但GPU也無法替代CPU所能做的其它事情,所以兩者是不可互相替代的。
{!-- PGC_VIDEO:{"thumb_height": 360, "thumb_url": "9d3c001157306cf08008", "vname": "", "vid": "v02019e70000bdc3jdppjc2vij5p5c2g", "thumb_width": 638, "src_thumb_uri": "9d3c001157306cf08008", "sp": "toutiao", "update_thumb_type": 1, "vposter": "http://p0.pstatp.com/origin/9d3c001157306cf08008", "video_size": {"high": {"duration": 93.36, "h": 480, "subjective_score": 0, "w": 852, "file_size": 6519511}, "ultra": {"duration": 93.36, "h": 622, "subjective_score": 0, "w": 1104, "file_size": 11795753}, "normal": {"duration": 93.36, "h": 360, "subjective_score": 0, "w": 638, "file_size": 4363176}}, "duration": 93.36, "file_sign": "45d400421c8f688418824c3bae40220a", "md5": "45d400421c8f688418824c3bae40220a", "vu": "v02019e70000bdc3jdppjc2vij5p5c2g"} --}
GPU能否代替CPU
不能,兩者的設計目標和解決問題不一樣,就像一個廚師,一個會計。你能讓廚師替代會計的工作嗎?所以了解GPU和CPU,就能得出GPU能否代替CPU的答案。
CPU全稱是中央處理器,顧名思義,需要很強的通用性來處理各種不同的數據類型,同時需要邏輯判斷會引入大量的分支跳轉和中斷的處理。這些都使得CPU的內部結構異常複雜。而GPU面對的則是類型高度統一的、相互無依賴的大規模數據和不需要被打斷的純凈的計算環境。所以兩者的架構有很大的不同,如下圖。
從圖中可以看到,CPU和GPU均有自己的存儲(橙色部分,實際的存儲體系比圖示更為複雜),控制邏輯(黃色部分)和運算單元(綠色部分),但區別是CPU的控制邏輯更複雜,而GPU的運算單元雖然較小但是眾多,GPU也可以提供更多的寄存器和程序猿可控的多級存儲資源。
所以CPU更適合一些控制複雜的任務,比如分配進程任務,中斷之類。而GPU適合對大量數據進行相同操作的任務。兩者有不同的應用場景,所以GPU代替不了CPU,對於一些深度學習的任務,的確是GPU比CPU更佔優勢,因為深度學習大都是對大量數據進行矩陣操作。
GPU是替代不了CPU的,同樣,CPU也替代不了GPU。如果形象點理解,GPU就像一群螞蟻,這些螞蟻都做著同樣的事,而CPU就像一頭大象,這頭大象做著各種不同的事。
從根本上說CPU和GPU它們的目的不同,且有不同側重點,也有著不同的性能特性,在某些工作中CPU執行得更快,另一工作中或許GPU能更好。當你需要對大量數據做同樣的事情時,GPU更合適,當你需要對同一數據做很多事情時,CPU正好。
然而在實際應用中,後一種情形更多,也就是CPU更為靈活能勝任更多的任務。GPU能做什麼?關於圖形方面的以及大型矩陣運算,如機器學習演算法、挖礦、某些編碼等,GPU會有所幫助。
簡單地說,CPU擅長分支預測等複雜操作,GPU擅長對大量數據進行簡單操作。一個是複雜的勞動,一個是大量的工作。
其實GPU可以看作是一種專用的CPU,專為單指令在大塊數據上工作而設計,這些數據都是進行相同的操作,要知道處理一大塊數據比處理一個一個數據更有效,執行指令開銷也會大大降低,因為要處理大塊數據,意味著需要更多的晶體管來並行工作。
CPU呢,它的目的是儘可能快地在單個數據上執行單個指令。由於它只需要使用單個數據單條指令,因此所需的晶體管數量要少得多,但它需要更大的指令集,更複雜的ALU(算術邏輯單元),更好的分支預測,更好的虛擬化架構、更低的延遲等等。
另外,像我們的操作系統Windows,它是為x86處理器編寫的,它需要做的任務執行的進程,在CPU上肯定更為高效,你想每個線程的任務並不相同,基本上難以並行化,完全發揮不了GPU的長處。
那麼,可以預見在未來,隨著CPU進一步強化處理數據塊的能力,我們將看到CPU和GPU架構之間的融合,而且,隨著製造技術的進步和晶元的縮小,GPU也可以承擔更複雜的指令。CPU與GPU間的分工雖然還是大有不同,但彼此間的交集無疑會更多。
要弄清這個問題,首先你得明白 CPU 和 GPU 的特點。許多朋友只知道 CPU 是中央處理器,GPU 是圖形處理器,但它們的區別是什麼,各自的結構有什麼特點,針對的是什麼可能沒有搞清楚。
為了避免說教,便於其他沒有編程基礎的朋友理解,我在接下來的解答中將盡量減少專業名詞的使用,並且採用較多的比喻和對比來進行說明。
如果我們把 CPU 和 GPU 看成是兩個人,CPU 就是一個全能型人才,即「萬金油」。他什麼都會幹,隨便什麼任務交給他,他都能夠完成。所以,一個公司只要有一個 CPU,那麼,老總就可以高枕無憂了:
有問題?
CPU,你來處理一下。
但是,正因為 CPU 是一個全能型人才,他就免不了有全能型人才的缺點。俗話說得好,「全必不精,精必不全」。比如說,具體到某一個專業領域,CPU 同志雖然能夠解決,但效率可能就不那麼高了。為啥呢,他被設計為全能型,在「身體結構」上不能針對某一特殊問題搞一個最優架構——想想吧,如果針對圖形處理搞了一個專門架構,在其他問題的處理上又完全用不著,豈不是浪費?
下面再來說 GPU。GPU 就好像單位里的一個專業美工。他其他的活不會做,就只會畫圖。當然了,如果碰上畫圖這樣的活兒,交給 GPU 同志效率會高很多,CPU 要三天才完工的話,他只要一天。但是,如果除畫圖之外的活交給他,那他就傻眼了(注意,這只是一個簡化版的比喻,目前由於編程技術的進步,許多非圖形類的計算工作也能交給 GPU 完成。比如在 DirectX 遊戲開發中,可以利用計算著色器完成一些邏輯簡單但數量多、高並發的計算工作)。
在現在這個越來越圖形化的時代,在電腦的日常使用中,由於圖形處理佔據了主導地位(通常也是最為耗時的工作),為了電腦跑得更快,任務處理更為高效,即使是CPU廠商,也往往會單獨為優化圖形處理而在 CPU 中集成一個圖形處理器。注意,圖形處理通常是一種高並發的運算:想想吧,即便是在解析度為 1024 * 768 的屏幕上顯示一個靜態圖形,你也得渲染近百萬個像素點(如果是 4K 解析度,那就更多了)。要是動態的高解析度圖形呢?那每秒要處理的像素點得以億計!所以,一個單核或幾核的 CPU 這時就顯得力不從心了。為啥?它本領高,但「人」少啊!而 GPU 的出現恰恰解決了這個問題。GPU 針對高並發而設計,單個「核」的構造很簡單,但數量特別多。換句話說,就是人笨,只能做一些簡單的計算或渲染工作,但它兄弟多啊!畫幾百萬個像素點是吧,我成千上萬個兄弟一起上,那還不是小菜一碟!
所以,經過以上介紹,想必大家對於樓主的問題也基本能給出答案了。這就是,CPU 對於電腦是不可或缺的,而 GPU 則有點像是一個能效增益工具。按它們的產品定位來看,GPU 是無法取代 CPU 的。最後,順便指出一下,樓主提問中的個別用詞其實是不太準確的。比如,「gpu只需要很小的頻率就能完成很多 cpu 無法完成的事」。一般說來,CPU 的能力範圍要比 GPU 強,只是在個別專業領域做事的速度不如核多的 GPU 快。反過來,倒是 CPU 能做的事,很多 GPU 是做不了的。
不能,gpu的結構相對cpu比較簡單,說簡單點cpu要應對各種工作,需要對數據反覆計算,比較全面,而gpu的工作比較單一,只負責圖形處理,只需要按CPU的要求,計算出符合要求圖像數據給顯示器,
gpu的工作帶有專一性,cpu的工作帶有全面性
cpu要處理內存、硬碟、usb設備等等數據,再數據通過計算整理,再給回內存、硬碟、顯卡等等
gpu是從cpu得到數據,把他處理成圖形數據,再輸出給顯示設備
一個是中央處理器,一個是圖形處理器完全不是一回事,gpu是代替不了CPU的,就像硬碟代替不了CPU一樣,固態應該也是有控制晶元的!
gpu雖然也有內存控制器但是沒有前端匯流排控制顯器,也就是說CPU可以把系統內存分配給顯卡當顯存,但顯卡不能把多餘的顯存給系統當內存用!而且指令集完全不一樣,顯卡都跑不了國際象棋,你說它能當cpu用嗎?就相當於你讓一個繪畫大師去解哥德巴赫猜想一樣
在目前,不管是CPU還是GPU,誰也代替不了對方。但是在以後就不好說了。以後的方向是,晶元一體化,和多晶元融合技術。說白就是APU的高級發展版本。沒有CPU和GPU,南北橋,音效卡之分,就一個晶元。把所有工作完成。
摩爾定律已死,GPU最終會取代CPU,出之黃仁勛之口。
黃仁勛何許人也?英偉達CEO。
為何黃仁勛會說出這句話?其實黃仁勛的意思並不是GPU會取代CPU。在GPU取代CPU之前還加了一句,摩爾定律已死。
黃仁勛的真正意思是CPU的發展已經陷入瓶頸,摩爾定律已經失效,發展速度已經放緩。
反觀GPU,目前的發展大家有目共睹,1060戰970,一代更比一代強,相對於CPU性能的進步幅度更大。
黃仁勛所說GPU代替CPU,並不是說代替CPU的功能,而且代替CPU的發展。代替CPU公司的地位,扛起未來發展的大旗。而並不是GPU代替CPU的作用。
CPU和GPU,就像一群小學生和幾個教授。計算機程序運行計算涉及到很多的複雜運算,所以需要教授們來解決。而畫面渲染等,其實就是一些簡單的運算,但是這個量很大,所以只需要一群只會加減乘除的小學生就可以搞定。這只是一個比喻。CPU負責一些複雜的運算,GPU負責畫面渲染等簡單但是需求大的運算,所以CPU和GPU並不能說誰取代誰,只會協同工作
這個就像 你用8號固定扳手上螺絲更快,但是會代替活動扳手嗎?
不會。雖然某一些功能上比較常用,會有專有設備,比如圖像處理,用顯卡效率更高。
但是通用功能也不可缺少,畢竟起到協調安排作用,可能需求會弱,但是也是不可或缺。
推薦閱讀:
※如何看待紅米Note 5發布後,魅藍李楠放話E3全系標配6GB運存?
※通過抓包,實現Python模擬登陸各網站,原理分析!
※人工智慧為什麼這麼熱?