簡單說說CPU與GPU是如何協同,她們的工作流程是怎樣的?
了解CPU和GPU設計的區別
——CPU和GPU之所以大不相同,是由于其設計目標的不同,它們分別針對了兩種不同的應用場景。
CPU需要很強的通用性來處理各種不同的數據類型,同時又要邏輯判斷又會引入大量的分支跳轉和中斷的處理,這些都使得CPU的內部結構異常復雜。而GPU面對的則是類型高度統一的、相互無依賴的大規模數據和不需要被打斷的純凈的計算環境。
——于是CPU和GPU就呈現出非常不同的架構。

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

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