簡單說說CPU與GPU是如何協(xié)同,她們的工作流程是怎樣的?
了解CPU和GPU設(shè)計(jì)的區(qū)別
——CPU和GPU之所以大不相同,是由于其設(shè)計(jì)目標(biāo)的不同,它們分別針對了兩種不同的應(yīng)用場景。
CPU需要很強(qiáng)的通用性來處理各種不同的數(shù)據(jù)類型,同時(shí)又要邏輯判斷又會引入大量的分支跳轉(zhuǎn)和中斷的處理,這些都使得CPU的內(nèi)部結(jié)構(gòu)異常復(fù)雜。而GPU面對的則是類型高度統(tǒng)一的、相互無依賴的大規(guī)模數(shù)據(jù)和不需要被打斷的純凈的計(jì)算環(huán)境。
——于是CPU和GPU就呈現(xiàn)出非常不同的架構(gòu)。

下面用最簡單的方式,來聊一聊CPU和GPU是如何協(xié)同工作的。
——現(xiàn)在我們有兩個(gè)處理器、CPU和GPU,它們之間通過系統(tǒng)總線交換數(shù)據(jù)。
第一步
CPU先要從文件系統(tǒng)里讀出原始數(shù)據(jù),分離出圖形數(shù)據(jù),然后放在系統(tǒng)內(nèi)存中,這個(gè)時(shí)候GPU在發(fā)呆著,等著CPU把工作交給她。
第二步
CPU準(zhǔn)備把圖形數(shù)據(jù)交給GPU,這個(gè)時(shí)候系統(tǒng)總線上開始忙了,數(shù)據(jù)將從系統(tǒng)內(nèi)存拷貝到GPU的顯存里。
第三步
CPU要求GPU開始工作數(shù)據(jù)處理,現(xiàn)在換CPU在發(fā)呆了,而GPU開始忙碌工作,當(dāng)然CPU還是會定期詢問一下GPU忙得怎么樣了?
第四步
GPU開始用自己的工作間(GPU核心電路)處理數(shù)據(jù),處理后的數(shù)據(jù)還是放在顯存里面,CPU還在繼續(xù)發(fā)呆…。
第五步
圖形數(shù)據(jù)處理完成后,這時(shí)GPU就告訴CPU,我忙完了,準(zhǔn)備輸出或者已經(jīng)輸出。于是CPU就開始接手工作,讀出下一段數(shù)據(jù),并告訴GPU你可以歇會咯,然后返回到第一步。

GPU硬件加速可以讓你的系統(tǒng)變得更快噢
——既然GPU硬件加速是利用GPU的特長為系統(tǒng)服務(wù),那么好處到底是什么呢??
用非常流行的《騎游運(yùn)動》做個(gè)比方,正常的情況下你在騎行的時(shí)候只有腿部在進(jìn)行蹬踩運(yùn)動(CPU正常運(yùn)算),而當(dāng)你遇到諸如順風(fēng)、下坡、被人推行等情況時(shí),速度就會加快,并且腿部感覺非常省力(因?yàn)槭荊PU參與了運(yùn)算)。
——那么換到電腦上會是什么情況呢??
在以前的很多應(yīng)用中,CPU是負(fù)責(zé)所有運(yùn)算的,而GPU則只是負(fù)責(zé)最后的顯示工作,因此一旦出現(xiàn)處理復(fù)雜圖形數(shù)據(jù)的時(shí)候,很多使用性能較弱的CPU的電腦系統(tǒng)就開始緩慢無比,而使用性能較強(qiáng)的CPU的電腦系統(tǒng)也會看到CPU資源被大量的占用。
——而在GPU開始參與運(yùn)算之后,原本會消耗CPU大量寶貴資源的圖形數(shù)據(jù)處理部分就全部交給GPU這個(gè)專業(yè)人士進(jìn)行處理了,從而降低了CPU的負(fù)擔(dān),并且利用自身的特長,使得圖形數(shù)據(jù)處理的效率更快,從而提升系統(tǒng)性能。