未來 GPU 在計算機領域的地位會越來越重嗎?

樓主是個計算機小白,因為最近在看英偉達這家公司,所以對gpu有了好奇心,想請教下知乎上各位計算達人一些問題,希望能夠不吝賜教。

1.未來 gpgpu 在通用計算機領域會達到 cpu的地位嗎?

2.gpu 在人工智慧,3D圖形建模方面是不是會有絕對的優勢?自己也看過一些gpu方面的常識,了解gpu在處理海量數據方面優勢很大,剛好滿足人工智慧,無人車地形建模方面的需求。

3. 雲計算方面,是不是在雲端用 GPU 進行數據處理之後,再傳回到終端是大勢所趨?因為看見英偉達和微軟的azure合作,直接在雲端進行圖形渲染。


2016.01.07 修正了部分行文錯誤

------------------------------------------------------------------------

謝邀,尤其是謝匹黃老師邀,誠惶誠恐。

我並不是做機器學習領域的,只能從GPU的角度來簡單解釋一下:

1 -

首先經過Nvidia十多年的辛勤耕耘,General-Purposed GPU的市場領域已經大致成型了。GPU計算密度高,片上帶寬大,延遲高,異構節點(或者可以做到高成本的同構節點),控制能力薄弱,基本上就是70年代並行向量處理器的小型化。

CUDA到今天比較成功的局面,是很多因素共同作用的結果:

  • 圖形領域的計算通用化趨勢:沒有這個先決條件,GPU就不會往通用方向邁出第一步,不會走到今天,很可能我們今天使用的是類似於CELL這樣的 PPU / SPU 結構;
  • CPU發展速度的放慢:CPU是GPU在運算密集類應用領域的最大對手。如果CPU在任何有利於並行處理的方案上有所突破,例如超長向量、多路SIMD機、甚至VLIW,那可能也沒GPU什麼機會了;

  • 大面積晶元成本下降和良率穩定:今日GPU的晶元面積已經趕超CPU了,面積越大良品率也比較難以維持;

  • 可並行數值運算規模的指數增長:比如視頻分析,金融分析,圖像處理和識別,這些都是天然並行、並且運算量爆棚的內容。沒有這些內容,GPU運算能力再高也無用武之地,這可能也是多年前向量機暴死的因素之一;
  • 新演算法的發展:新演算法將一些傳統上可能不利於並行化的演算法,強行的弄成了可以並行的,比如Deep Learning。

這些都是GPU能夠在密集計算領域逐漸重要起來、並且達到現在這個地位的關鍵因素。

但是,如果脫離了這些因素之後,比如傳統的業務邏輯處理、資料庫查詢,以及大量無法並行化、數值化的領域,GPU與生俱來的劣勢就決定了它不能在這些地方更進一步。

因此,從這個角度來說,GP-GPU已經到達了他們在CS領域的頂峰 —— 所有可並行數值計算領域,它已經是第一方案了,而不再是替代性或實驗性方案。

2 -

對於AI領域,我從 @grapeot 那得到一句口傳:The only way to make a true AI is ML.

不過傳統的機器學習或者統計方案,比如分類樹啦,線性回歸啦,還有一些文本挖掘演算法,其實都不太適合GPU去做,要麼邏輯過多,要麼前後依賴性強無法並行,要麼數據-計算比太高IO背了鍋。

但是DL,一些語音識別演算法,一些圖像處理演算法,這些可並行,且要反覆迭代收斂的東西,通常都是GPU相對擅長的領域。

題主還提到了無人駕駛汽車的視覺識別。無人駕駛汽車的視覺識別是個安全關鍵的、硬實時的任務,現有的專門為大數據量處理而做的GPU還做不到這一點。也正因為這個原因,再加上車載晶元成本不是關鍵因素,因此以後這個領域是ASIC,還是FPGA,還是改進後的GPU,或者是它們某種程度的混合,目前還不好說,取決於各家廠商的角力。

3 -

考慮到網路延遲、帶寬和不穩定性問題,目前實時雲渲染還是一個異端,但是電影視效等離線渲染領域GPU已經進入了。這點 @叛逆者 也說了。當然現在很多雲都可以有GPU,但是他們往往不是為了圖形,而是為了運行在雲上的通用計算程序服務的。


你說的這些,並不是未來,而是過去已經達到。

&> 1.未來 gpgpu 在通用計算機領域會達到 cpu的地位嗎?

不會。兩者分工不同。GPU適合大量純計算,CPU適合流程式控制制。以後仍然會保持這樣的分工。

&> 2.gpu 在人工智慧,3D圖形建模方面是不是會有絕對的優勢?自己也看過一些gpu方面的常識,了解gpu在處理海量數據方面優勢很大,剛好滿足人工智慧,無人車地形建模方面的需求。

你說的無人車地形建模,並不屬於3D圖形建模。那個主要計算量在採集和識別數據,而不是建模。這些都是GPGPU的事情,很顯然都是絕對優勢。

&> 3. 雲計算方面,是不是在雲端用 GPU 進行數據處理之後,再傳回到終端是大勢所趨?因為看見英偉達和微軟的azure合作,直接在雲端進行圖形渲染。

圖形渲染方面,雲計算的話問題在於,輸入數據(模型和紋理)往往遠小於輸出數據(視頻流),並且存在很大的延遲。所以對於離線渲染來說,早就是這樣了。但實時渲染/遊戲應用,仍然不行。NV有一些方法能改進這個,比如direct lighting在客戶端做,indirect lighting在雲端做。因為人對indirect lighting的延遲不敏感,而且頻率較低可以很好地壓縮,適合雲端的條件。


有好多同學抱著學CUDA的心態買了高端顯卡,最終都成了資深遊戲玩家。


感覺目前ML界做模型用GPU的挺多,但是做軟體好像CPU的並行比如MPI明顯用的多,畢竟MPI的可移植性好太多。舉個例子,matlab加個cuda的mex程序,Matlab自身版本和cuda版本都有限制。比如2015b的matlab出了一個編譯的小東西mexcuda,假設一定要用這個在Matlab裡面編譯的話只支持cuda7.0。

另外,cuda的中間結果(kernel裡面那些)相對cpu層面並行不是很容易得到。加上cuda並行要考慮各種底層架構,memory分配,為了減少cache miss各種算index……以及debug的時候經常crash掉機器, 誰搞誰知道…… 最近還發現cuda非常神奇的,kernel裡面的loop如果對kernel輸出結果沒有影響的話,默默的就不會執行……這導致優化演算法的時候經常被一些假象所迷惑,比如,一個if語句會莫名其妙的變成瓶頸…

前幾天和一個美帝公司的技術大哥聊天,也被吐槽一波cuda……然後結論是mpi大法好。其實答主沒仔細搞過mpi,但是計划去學習一下了.

之前寫的gpu程序在一個gtx650 ti測試用了0.7秒,在tesla k20也只是快了0.2秒……g卡價格可是貴了五倍呢……:(

雖然cuda虐我千百遍,還是覺得gpu計算很有前景。畢竟許多model用gpu強行並行還是非常帥氣的:)


1.未來 gpgpu 在通用計算機領域會達到 cpu的地位嗎?

不會,GPU是暴力大流量並行計算,對於跳轉控制沒有優勢

2.gpu 在人工智慧,3D圖形建模方面是不是會有絕對的優勢?自己也看過一些gpu方面的常識,了解gpu在處理海量數據方面優勢很大,剛好滿足人工智慧,無人車地形建模方面的需求。

會,絕對的會,看看facebook開源的AI計算硬體,GPU是主力,還有NV正在發力的自動車駕駛,圖形識別全靠GPU

3. 雲計算方面,是不是在雲端用 GPU 進行數據處理之後,再傳回到終端是大勢所趨?因為看見英偉達和微軟的azure合作,直接在雲端進行圖形渲染

會,比如國內的百度,就在用GPU集群做圖形識別匹配


你看看歷年顯卡在一台電腦硬體總價值中的佔比就懂了


還得看FPGA asic他們吧,但GPU是越來越有地位了


Gpu和fpga有什麼不同


你去趟卡吧,3000預算進卡吧,四路泰坦帶回家


GPU什麼時候能強大到干CPU的活啊?


還會再上一到兩個台階,然後差不多就到那了,浮點流水線能玩的花樣基本也就這麼多了

這之後類似parelella之類的東西會火一把,然後一堆人扎堆去折騰FPGA和ASIC


推薦閱讀:

VR的迅速發展是因為背後的GPU等技術發生了怎樣的變化?
英偉達的 Tesla GPU 性能有多強勁,跟普通 GPU 的主要區別是什麼?

TAG:NVIDIA英偉達 | 圖形處理器GPU |