GPU與CPU孰強(qiáng)孰弱?GPU如何實(shí)現(xiàn)加速?
GPU在現(xiàn)在的應(yīng)用中越來(lái)越重要,對(duì)于GPU,我們都具備些許了解,因?yàn)椴徽撌鞘謾C(jī)中、還是電腦里面,都有GPU的身影。為增進(jìn)大家對(duì)GPU的認(rèn)識(shí)程度,本文將探討一下GPU和CPU,看看誰(shuí)的優(yōu)勢(shì)更大。此外,小編還將對(duì)GPU加速原理予以介紹。如果你對(duì)GPU具有興趣,不妨繼續(xù)往下閱讀哦。
一、GPU與CPU孰強(qiáng)孰弱?
GPU是替代不了CPU的,同樣,CPU也替代不了GPU。如果形象點(diǎn)理解,GPU就像一群螞蟻,這些螞蟻都做著同樣的事,而CPU就像一只猴子,這只猴子做著各種不同的事。從根本上說(shuō)CPU和GPU它們的目的不同,且有不同側(cè)重點(diǎn),也有著不同的性能特性,在某些工作中CPU執(zhí)行得更快,另一工作中或許GPU能更好。
當(dāng)你需要對(duì)大量數(shù)據(jù)做同樣的事情時(shí),GPU更合適,當(dāng)你需要對(duì)同一數(shù)據(jù)做很多事情時(shí),CPU正好。
然而在實(shí)際應(yīng)用中,后一種情形更多,也就是CPU更為靈活能勝任更多的任務(wù)。GPU能做什么?關(guān)于圖形方面的以及大型矩陣運(yùn)算,如機(jī)器學(xué)習(xí)算法、挖礦、暴力破解密碼等,GPU會(huì)有所幫助。
簡(jiǎn)單地說(shuō),CPU擅長(zhǎng)分支預(yù)測(cè)等復(fù)雜操作,GPU擅長(zhǎng)對(duì)大量數(shù)據(jù)進(jìn)行簡(jiǎn)單操作。一個(gè)是復(fù)雜的勞動(dòng),一個(gè)是大量并行的工作。
其實(shí)GPU可以看作是一種專(zhuān)用的CPU,專(zhuān)為單指令在大塊數(shù)據(jù)上工作而設(shè)計(jì),這些數(shù)據(jù)都是進(jìn)行相同的操作。
要知道處理一大塊數(shù)據(jù)比處理一個(gè)一個(gè)數(shù)據(jù)更有效,執(zhí)行指令開(kāi)銷(xiāo)也會(huì)大大降低,因?yàn)橐幚泶髩K數(shù)據(jù),意味著需要更多的晶體管來(lái)并行工作,現(xiàn)在旗艦級(jí)顯卡都是百億以上的晶體管。
CPU呢,它的目的是盡可能快地在單個(gè)數(shù)據(jù)上執(zhí)行單個(gè)指令。由于它只需要使用單個(gè)數(shù)據(jù)單條指令,因此所需的晶體管數(shù)量要少得多。
目前主流桌面CPU晶體管都是十億以下,和頂級(jí)GPU相差十倍以上,但它需要更大的指令集,更復(fù)雜的ALU(算術(shù)邏輯單元),更好的分支預(yù)測(cè),更好的虛擬化架構(gòu)、更低的延遲等等。
另外,像我們的操作系統(tǒng)Windows,它是為x86處理器編寫(xiě)的,它需要做的任務(wù)執(zhí)行的進(jìn)程,在CPU上肯定更為高效,你想每個(gè)線程的任務(wù)并不相同,基本上難以并行化,完全發(fā)揮不了GPU的長(zhǎng)處。
那么,可以預(yù)見(jiàn)在未來(lái),隨著CPU進(jìn)一步強(qiáng)化處理數(shù)據(jù)塊的能力,我們將看到CPU和GPU架構(gòu)之間的融合,而且隨著制造技術(shù)的進(jìn)步和芯片的縮小,GPU也可以承擔(dān)更復(fù)雜的指令。
二、GPU加速原理
GPU一推出就包含了比CPU更多的處理單元,更大的帶寬,使得其在多媒體處理過(guò)程中能夠發(fā)揮更大的效能。例如:當(dāng)前最頂級(jí)的CPU只有4核或者6核,模擬出8個(gè)或者12個(gè)處理線程來(lái)進(jìn)行運(yùn)算,但是普通級(jí)別的GPU就包含了成百上千個(gè)處理單元,高端的甚至更多,這對(duì)于多媒體計(jì)算中大量的重復(fù)處理過(guò)程有著天生的優(yōu)勢(shì)。下圖展示了CPU和GPU架構(gòu)的對(duì)比。
從硬件設(shè)計(jì)上來(lái)講,CPU由專(zhuān)為順序串行處理而優(yōu)化的幾個(gè)核心組成。另一方面,GPU則由數(shù)以千計(jì)的更小、更高效的核心組成,這些核心專(zhuān)為同時(shí)處理多任務(wù)而設(shè)計(jì)。
通過(guò)上圖我們可以較為容易地理解串行運(yùn)算和并行運(yùn)算之間的區(qū)別。傳統(tǒng)的串行編寫(xiě)軟件具備以下幾個(gè)特點(diǎn):要運(yùn)行在一個(gè)單一的具有單一中央處理器(CPU)的計(jì)算機(jī)上;一個(gè)問(wèn)題分解成一系列離散的指令;指令必須一個(gè)接著一個(gè)執(zhí)行;只有一條指令可以在任何時(shí)刻執(zhí)行。而并行計(jì)算則改進(jìn)了很多重要細(xì)節(jié):要使用多個(gè)處理器運(yùn)行;一個(gè)問(wèn)題可以分解成可同時(shí)解決的離散指令;每個(gè)部分進(jìn)一步細(xì)分為一系列指示;每個(gè)部分的問(wèn)題可以同時(shí)在不同處理器上執(zhí)行。
舉個(gè)生活中的例子來(lái)說(shuō),你要點(diǎn)一份餐館的外賣(mài),CPU型餐館用一輛大貨車(chē)送貨,每次可以拉很多外賣(mài),但是送完一家才能到下一家送貨,每個(gè)人收到外賣(mài)的時(shí)間必然很長(zhǎng);而GPU型餐館用十輛小摩托車(chē)送貨,每輛車(chē)送出去的不多,但是并行處理的效率高,點(diǎn)餐之后收貨就會(huì)比大貨車(chē)快很多。
以上便是此次小編帶來(lái)的“GPU”相關(guān)內(nèi)容,通過(guò)本文,希望大家對(duì)如何實(shí)現(xiàn)GPU加速等知識(shí)具備一定的了解。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來(lái)更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!