搞懂GPU為什么比CPU“快”

搞懂GPU為什么比CPU“快”

近幾年深度學(xué)習(xí)在各領(lǐng)域大顯神威,而”GPU加速"也得到了越來(lái)越多的篇幅,似乎任何程序只要放到GPU上運(yùn)行那速度就是杠杠的。GPU代替CPU計(jì)算已成了大勢(shì)所趨?我先告訴你結(jié)論”那是不可能滴“,然后咱們?cè)賮?lái)說(shuō)說(shuō)”GPU為什么比CPU快“。

圖形處理,GPU的源起

  GPU是顯卡的計(jì)算單元,就好比CPU是電腦的計(jì)算核心,有時(shí)我們直接就把GPU稱(chēng)為顯卡。顯而易見(jiàn),GPU從誕生之初就是用來(lái)處理圖像的。下面我們講一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明下為什么圖像處理需要用到GPU,而CPU的缺點(diǎn)是什么。

  我們講一個(gè)畫(huà)面”立體“,其實(shí)講的是畫(huà)面中對(duì)于光影的運(yùn)用,下圖就是一個(gè)簡(jiǎn)單的”圓“。


  當(dāng)我們給這個(gè)圓加上”光影“之后,它就變成了一個(gè)球。我們說(shuō)球要比圓立體的多,這就是光影的作用。

  光影的原理很簡(jiǎn)單,你需要想象一個(gè)遠(yuǎn)處的”光“,然后在畫(huà)面上模擬出光照在物體上的明暗變化,計(jì)算機(jī)中這些明暗變化都是通過(guò)”計(jì)算“得到的。編程人員只需要輸入光源的距離、亮度、被照體的位置,然后通過(guò)逐步計(jì)算、光影疊加就能得到圖像中每一個(gè)像素應(yīng)該顯示什么顏色、什么亮度,一個(gè)立體畫(huà)面也就躍然紙上了。

那么現(xiàn)在問(wèn)題來(lái)了,假設(shè)屏幕分辨率為1920*1080,即2073600(207.36萬(wàn))個(gè)像素,游戲中每個(gè)像素都需要根據(jù)光影參數(shù)來(lái)計(jì)算顯示的顏色和明暗。假設(shè)一個(gè)常見(jiàn)的Intel I5 CPU主頻為3.2GHz,即最多每秒可做32億次運(yùn)算。但這里的一次運(yùn)算只是做了一次簡(jiǎn)單的二進(jìn)制加減法或數(shù)據(jù)讀取,一個(gè)像素的光影計(jì)算我們可以假設(shè)需要100次運(yùn)算(關(guān)于CPU的運(yùn)算原理可以看這篇文章https://www.mianbaoban.cn/blog/3887969-407226.html),即CPU一秒約處理3200萬(wàn)次像素運(yùn)算,大概15張圖片,用專(zhuān)業(yè)點(diǎn)的說(shuō)法,這個(gè)游戲流暢度大概是每秒15幀的樣子。

  可見(jiàn)使用CPU全力進(jìn)行圖形運(yùn)算是有點(diǎn)吃力的,更何況CPU還要處理很多鍵盤(pán)指令、游戲后臺(tái)計(jì)算等等。是CPU還不夠快嗎?假設(shè)現(xiàn)在速度翻倍,即每秒64億次運(yùn)算似乎也是不夠的。其實(shí)CPU面臨的主要問(wèn)題是,雖然每一次光影計(jì)算都非常簡(jiǎn)單,但經(jīng)不住像素太多啦,還都得排隊(duì)一個(gè)一個(gè)做。然后工程師們想到“其實(shí)任何一個(gè)像素的計(jì)算與其他像素的計(jì)算結(jié)果關(guān)系不大”,那為啥不多整幾個(gè)計(jì)算核心“并行”計(jì)算呢,于是GPU就出現(xiàn)了。

  一個(gè)典型的顯卡GTX1060,主頻是1.5GHz大概是Intel I5一半左右,但是它具備1280個(gè)計(jì)算核心。每個(gè)計(jì)算核心每秒可做15億次運(yùn)算,1280個(gè)核心每秒就是19200億次運(yùn)算,那一秒可以處理192億次像素計(jì)算,大概925張圖片,是CPU計(jì)算能力的61倍!但GPU的特性只能應(yīng)用于圖形計(jì)算這種可以并行的任務(wù),若是做普通的串行任務(wù)其速度遠(yuǎn)遠(yuǎn)不如CPU。

核心越多越好?

  通過(guò)前面的敘述我們都知道了GPU速度“快于”CPU的奧秘在于它有很多的“核”,那能不能這樣,我們給CPU也裝上1000多個(gè)核,那速度豈不是快到飛起?答案是“不得行”。由于制造工藝的原因,CPU內(nèi)核越多其頻率也就越低。其實(shí)很容易想到,同步10個(gè)人的動(dòng)作和同步1000個(gè)人的動(dòng)作其難度肯定是不一樣的。其次,電腦中大部分的運(yùn)算都是串行的,即下一個(gè)運(yùn)算要等到上一個(gè)運(yùn)算完畢才能繼續(xù),這時(shí)候單次運(yùn)算的速度才是最重要的。

  所以相當(dāng)長(zhǎng)時(shí)間以內(nèi),CPU+GPU的搭配才是最佳方案。

?GPU與并行計(jì)算

  深度學(xué)習(xí)與圖形處理有一些相通的地方,它需要大量的數(shù)據(jù)來(lái)“訓(xùn)練”模型。比如一個(gè)貓圖識(shí)別AI,你需要提供數(shù)以萬(wàn)計(jì)的貓圖供其“學(xué)習(xí)”。而每一張貓圖的學(xué)習(xí)又與其他貓圖沒(méi)有先后關(guān)系,即你可以同時(shí)并行100、1000張貓圖的學(xué)習(xí),所以GPU在深度學(xué)習(xí)領(lǐng)域大放異彩。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、HTTP協(xié)議簡(jiǎn)介 1. 什么是URL URL的全稱(chēng)是統(tǒng)一資源定位符 通過(guò)一個(gè)URL可以找到互聯(lián)網(wǎng)上唯一的一個(gè)資...
    Lis_reak閱讀 167評(píng)論 0 0
  • 行內(nèi)與獨(dú)行 行內(nèi)公式:將公式插入到本行內(nèi),符號(hào):,如:獨(dú)行公式:將公式插入到新的一行內(nèi),并且居中,符號(hào):雙$,如:...
    統(tǒng)計(jì)學(xué)家閱讀 178評(píng)論 0 0
  • 手機(jī)已經(jīng)成為很多人生活中必不可少的一種東西,即使懷孕后的準(zhǔn)媽媽也不例外。雖然手機(jī)的出現(xiàn)給我們的生活帶來(lái)了很多有趣的...
    北夢(mèng)木兮_84de閱讀 477評(píng)論 0 0
  • 期中考試來(lái)啦,在復(fù)習(xí)中大家有沒(méi)有這樣的困惑呢?函數(shù)圖像好難想象啊,物理模型畫(huà)不出來(lái),微積分、矩陣簡(jiǎn)單還要反復(fù)計(jì)算?...
    零度咖啡_a3ae閱讀 495評(píng)論 0 0
  • 讀書(shū)人,這個(gè)在古代非常受歡迎和受人尊重的上等社會(huì)階層,他們所從事的主要活動(dòng)就是讀書(shū)。那他們都讀些什么書(shū)呢?自南宋...
    陸小塵閱讀 164評(píng)論 0 0

友情鏈接更多精彩內(nèi)容