GPU 二三事--Intel/SONY如何失敗的 - 3C

Kumar avatar
By Kumar
at 2013-01-22T01:55

Table of Contents


(題目寫太大了,事實上頂多只會提到為什麼Intel Larrabee
和SONY Cell不能當GPU用)

近年因為兩個因素,mobile GPU的需求提高到越來越接近
桌上型執行遊戲的GPU,高階GPU展現GPGPU(CUDA,OpenCL等)的運算能力
GPU的"可程式化"特性又成為一個熱門主題.

一方面,使用現成的GPU中的可程式化特性,希望能不依賴特定的硬體,
完成許多運算的工作.

另外一方面,GPU看起來越來越依賴"可程式化的部分"(=Programable Shader),
這對於不想要依賴傳統GPU廠商的人,是不是一個良好的切入點,可以攻擊到
傳統GPU廠商的弱項,帶來改朝換代的契機呢?

先討論後面這個問題好了.是不是可以做一個超強的可程式化核心(啊,
那不就跟一個超強的CPU類似嗎?),然後稍做調整,他就成為一個很有競
爭力的GPU?

答案當然是No......所以才會有這篇文章........

最早是預定於2006發表的PS3內的Cell晶片,由Cell的超高浮點數運算能力
讓他充當GPU的工作...但是,因為製程跟不上,Cell的運算能力直接縮水
變成原來的 1/4 因此這個也直接打消,重新再接上一個nVidia GPU.

不過就算Cell的計算能力沒縮水 他當GPU還是會變成悲劇....

悲劇不只是只有第一個,永遠會有第二個.第三個.......
再來一樣悲劇的就是組合數十個"修正過後,具有強大SIMD指令集的x86"
的Intel Larrabee,強大的可程式化性能,悲劇的GPU命運.

但不只這兩個會構成悲劇,相信以後還會有前仆後繼的同樣悲劇出現,
只是影響力小到我們不會發現,可能是一些學術單位,小型的IC design house
這樣搞.然後發現會失敗了......

==================宣傳時間======================

不要以為設計了CPU/DSP指令集 再來幫他擴充點浮點運算能力
他就可以充當GPU了 如果你的單位正在做這件事情 停下來
把錢省省 比較好.

================================================

但是講到這邊還是沒有講為什麼.基本上,GPU的Programmagle Shader
分為兩部分,Vertex Shader,處理物體模型的向量資料,Pixel Shader,
處理螢幕上每個pixel的計算.GPU可能設計成Unified Shader,那表示他
可以選擇當Vertex Shader 或者Pixel Shader用而已,仍然不出這兩種
執行方式.

那麼,最簡單的GPU運作會不會是......


Input Vertex Pixel Output
Data ===>Shader ====>Shader ====> Data


答案是否定的,GPU做的事情沒有這麼少

基本一顆Programmable Shader的運作就是....



Input Data

|| Vertex Pixel Frame
\/
(1) ===>Shader ==>(2)==>Shader ==>(3)==> Buffer

在Vertex Shader之前有一個工作(1)
在兩者之間有一個工作(2),在Pixel Shader之後有一個工作(3)

在現在的可程式化GPU裡面,這三個工作很多嗎?

答案:這三個工作一樣很吃重.和傳統GPU一樣

(1)通常有甚麼工作,舉例而言,計算甚麼樣的vertex超出畫面範圍外不用畫.
知道三角面是背向對著你提早捨棄掉不畫.還有....老GPU廠商AMD,nVidia,Sis
等還有"提早計算出Z值,把蓋掉別人的三角面提前畫"這樣的工作.

已經退出PC市場 但是成為mobile上最強GPU的PowerVR架構
他的特性稱為Tile-Based Defeffed Rendering,這種相對於其他GPU
廠商相當另類的做法 也可以歸類在(1)的範疇

(2)呢? vertex資料,轉成pixel資料....
這個也是傳統GPU一定會設計的硬體,但是Intel Larrabee把這都省去了

不過說轉換不太正確 不如說計算一個三角面覆蓋了螢幕上哪些Pixel
也就是.......

A A
====> ***
*****
B C B********C

這個vertex資料,等等就會被分解成19個pixel資料以及各自的座標/參數,
繼續下去到pixel shader計算....這樣的過程有很多種命名.
OpenGL稱為Rasterizer(不過容易跟3.的ROP混淆),或者也會稱為
Projection.Triangle Setup Engine等等.....

有時候GPU硬體在(2)的階段就會提前做一些(3)的判斷.這樣可以
省去多跑一個Pixel Shader的運算.這個能不能做要看運算特性.
比如說沒有透明色的時候就可以提早計算有沒有覆蓋掉Pixel.

(3)的話就是連Pixel Shader都算完了.這個部份通常稱為ROP,
就是計算透明色的累加,FSAA,HDR,Z和stencil的數值的檢查
等等....

===============小總結時間==================

那到底1/2/3三個硬體,如果沒做或者是做不好會怎樣??
用最簡單的比喻,就是設計一台汽車,具有超大馬力超大油耗的
引擎,但是沒有設計良好的車胎,輪軸,齒輪箱.....這樣的話只能
用超浪費的方式硬推.Sony Cell或者是Intel Larrabee這樣的設計
並非完全不能當GPU,頂多只是搞成500mm^2的晶片弄不出人家200mm^2
的GPU的效果而已.

===========================================

結論就是GPU走到Programmable時代,那些Prograamable Shader
以外的硬體(且GPU軟體看不到)重要性仍然超過一半 !!
麻煩在於這些東西如何設計的好,只有曾經設計過的人知道.
這也是近年在GPU市場上推出產品能存活的.幾乎都是傳統GPU時代
就活著的廠商(AMD,nVidia,PowerVR).不容易看到新廠商切入.

那...我們是不是挖角傳統GPU廠商的離職員工,把這些基本的硬體設計好,
然後我設計一個很好的Programmable Shader,他跑GPU功能很快,跑一般運算
也很快......讓我通吃GPU/GPGPU領域??

聽起來好像很好,可是目前來說是很難做的.這個答案為甚麼是No.
我在考慮要不要深入解釋下去......基本上前一個問題能看完的
應該有相關領域的學生或者是企業的新人的程度了,以下可以繼續
挑戰...........我也不確定我在說甚麼的東西............

我們考慮Mobile GPU領域的話,基本上類似幾年前的desktop GPU.
處在Fixed Function(ie. DX7/DX8/OpenGL ES 1.x相應水準)和
Programmable Shader的交接期.PC Game大概從2001~2004花了四年
讓市面上90%的遊戲使用Programmable Shader.

在這個兩者的交接時期,老牌GPU廠商推出的GPU雖然是基於
Programmable Shader,但是指令集的設計會對繪圖的Fixed Function做特化.
儘可能用更少的Shader指令做出傳統特效.比如說更多更有彈性的swizzle.
(繪圖資料想從哪個軸搬到另外一個軸都可以,一個化成3~4份也可以),
計算的operand 也可以直接指定成許多種常數(不是那種保留16bit,
做0~65535的常數運算),浮點數的 +-1 0, Pi ,e, 或者Operand直接根號,log等等.

這樣的GPU指令集拿去做GPGPU,取代DSP運算會有兩個問題.
第一個是編譯器很難做最佳化.比不上手寫的.這問題比較小,
因為編譯器技術一定會慢慢跟上來
第二個問題是Instruction Encoding變大了.....傳統CPU/DSP指令,
平均一個指令大概是2~4byte間.但是一個GPU指令,可能因此變成8~16byte
的instruction encoding.

這個巨大的code-size,對GPU程式通常問題沒有很大,因為很多計算畫面特效
的Shader不超過200個指令.只是畫面上有幾十種shader在跑而已.....
但是弄成DSP,跑個影像核心,或者GPU充當超級電腦,弄個粒子模擬之類的.
可能單一個Basic Block就超過1000個指令,整個核心超過50000道指令.
這樣的話因為Code-size的關係,instruction cache的需求也變得非常大.....

================又要總結==================

第二段比較亂...不過我想個同樣簡單的比喻,
如果想要讓GPU充當其他運算 就好像在一台賓士汽車上
安裝多大馬力的引擎他可以當成飛機使用一樣.

如果只有200馬力,不管如何都很難成為良好的飛機,
即使過去曾經有200馬力就飛上天的飛機的例子

如果有20000馬力,那麼賓士汽車是有機會飛上天的.

==========================================

--
Tags: 3C

All Comments

Margaret avatar
By Margaret
at 2013-01-25T05:31
JK大先推再看
Megan avatar
By Megan
at 2013-01-28T18:50
只能推了
Daph Bay avatar
By Daph Bay
at 2013-02-02T03:49
頸拜
William avatar
By William
at 2013-02-04T01:38
目前台灣只有1.5個部門在搞GPU....XD
Daniel avatar
By Daniel
at 2013-02-06T21:24
推JK神
Caroline avatar
By Caroline
at 2013-02-11T09:31
有推有保佑
Xanthe avatar
By Xanthe
at 2013-02-16T07:34
推,但不一定要相關領域的學生才看得懂啦..XD 有接
觸異質計算或GPU相關課程的人大概就可以了...
Brianna avatar
By Brianna
at 2013-02-17T04:00
推專業~
Caitlin avatar
By Caitlin
at 2013-02-21T15:01
看不懂快推
Zanna avatar
By Zanna
at 2013-02-26T12:59
看不懂推
Hedda avatar
By Hedda
at 2013-02-28T13:37
先推了再看看不看得懂
Una avatar
By Una
at 2013-03-04T21:43
推!
Wallis avatar
By Wallis
at 2013-03-08T14:46
可以借轉貼嗎?
Michael avatar
By Michael
at 2013-03-12T11:15
呃 重量不討論的話 單人飛機大概30hp就足夠起飛了...
Elvira avatar
By Elvira
at 2013-03-13T08:31
快推 不然人家以為我們看不懂
Genevieve avatar
By Genevieve
at 2013-03-16T06:06
Jacky avatar
By Jacky
at 2013-03-19T02:42
David avatar
By David
at 2013-03-20T12:17
神出沒 快推!
Oliver avatar
By Oliver
at 2013-03-22T15:13
蓮花廟不是有大開職缺找Mobile GPU?從前到後段都找了
Gilbert avatar
By Gilbert
at 2013-03-26T17:51
我看到CD的精髓了 ABC三角形中間的*被CD了(誤
Necoo avatar
By Necoo
at 2013-03-27T08:21
雖然看不太懂,但要推一下,囧
Skylar DavisLinda avatar
By Skylar DavisLinda
at 2013-03-31T18:36
推~
Erin avatar
By Erin
at 2013-04-02T22:05
推jk大神
Ina avatar
By Ina
at 2013-04-06T19:01
Jack avatar
By Jack
at 2013-04-08T09:05
推了!
Delia avatar
By Delia
at 2013-04-11T10:24
Queena avatar
By Queena
at 2013-04-13T18:27
推!
Megan avatar
By Megan
at 2013-04-16T20:11
推~~
Doris avatar
By Doris
at 2013-04-17T11:31
寫軟體GPU的人 其實也看不太懂+1
Hedy avatar
By Hedy
at 2013-04-17T21:01
M開頭的不論國內的還是國外來的我都上了 XD 要去哪
Caitlin avatar
By Caitlin
at 2013-04-19T18:00
推,淺顯易懂!
Sandy avatar
By Sandy
at 2013-04-23T04:33
看不懂只好推了
Doris avatar
By Doris
at 2013-04-23T22:36
DX8 已經有 shader 了吧,虛弱的第一代 XD
Jack avatar
By Jack
at 2013-04-24T09:05
跪求高手翻譯成羊語
Una avatar
By Una
at 2013-04-26T08:22
快推~雖然我看不懂
Iris avatar
By Iris
at 2013-04-29T20:20
快推,不然別人以為我看不懂
Rae avatar
By Rae
at 2013-05-02T13:26
Hedy avatar
By Hedy
at 2013-05-02T20:04
快推,不然別人以為我看不懂
Edwina avatar
By Edwina
at 2013-05-04T02:59
===================別以為我看不懂!===============
Ethan avatar
By Ethan
at 2013-05-08T21:20
推淺顯但我看不懂
Frederic avatar
By Frederic
at 2013-05-13T15:04
淺顯易懂但看不太懂給推
Madame avatar
By Madame
at 2013-05-18T12:02
只能跪了
Vanessa avatar
By Vanessa
at 2013-05-21T23:19
cuda很強大呀 拿來做平行運算最適合了
Daph Bay avatar
By Daph Bay
at 2013-05-23T11:41
喔是喔真的假的
Jake avatar
By Jake
at 2013-05-26T22:42
能算double了喔?
Madame avatar
By Madame
at 2013-05-28T11:37
原來如此 XD
Hedy avatar
By Hedy
at 2013-05-30T07:03
Joseph avatar
By Joseph
at 2013-06-02T16:35
囧 完全聽不懂
Mia avatar
By Mia
at 2013-06-03T04:15
越看不懂越是要推
Kelly avatar
By Kelly
at 2013-06-07T09:18
是jk神 先拜
Aaliyah avatar
By Aaliyah
at 2013-06-08T16:18
Quanna avatar
By Quanna
at 2013-06-13T02:28
雖然大部分是中文 但總感覺在看原文書.. T_T
Jessica avatar
By Jessica
at 2013-06-14T11:49
太專業了 只好給推

安靜的機殼

Susan avatar
By Susan
at 2013-01-22T00:46
vga:撼訊PowerColor AX6670 cpu:i7 3770 mb:asus h77mpro 原機殼:酷媽 330u 最近組了一台電腦 規格如上 但很吵 請問有什麼解決的方式 目前想到是換機殼 也可以換風扇? 謝謝大家 - ...

20K 3D繪圖影音機

Ula avatar
By Ula
at 2013-01-22T00:19
預定購買處: 台中NOVA或原價屋 已買/未買/已付訂金(元):未買 預算/用途:20K~22K CPU (中央處理器):Intel i5-3470 MB (主機板):華擎 B75 Pro3-M RAM (記憶體):金士頓 8G*1 VGA (顯示卡):微星 GTX 650 ...

拜託幫我解答

Leila avatar
By Leila
at 2013-01-22T00:08
手寫板跟繪圖板的差別 電腦的字體實在是太膩了! 想要自己手寫的字體可以輸入到電腦 像蘇打綠的mv歌詞都是青峰親寫的 我也想要我親寫的字可以放在影片或照片上 那我該買什麼呢? - ...

10-12K 輕遊戲 P2P 文書處理商務機

Selena avatar
By Selena
at 2013-01-22T00:01
預定購買處:原價屋 已買/未買/已付訂金(元):未買 預算/用途:文書處理 輕遊戲 P2P CPU (中央處理器):X4-750K 四核心 3.4G(Turbo 4.0G)/100W/32奈米(超頻)/無內建顯示 MB (主機板):華擎 FM2A75 Pro4-M/M-ATX/1A1D1 ...

Nvidia將推出基於GK110核心的消費級顯卡

Susan avatar
By Susan
at 2013-01-21T22:43
[link] http://www.xfastest.com/thread-96316-1-1.html 根據消息指出,Nvidia 將會推出基於 GK110 核心的消費級顯卡 不過既然是變異種,那核心數量上自然也有些許調整 至多 14 個 SMX 單元加上 2,688 個 CUDA 核心 記憶體通 ...