後藤老爹的GPU架構比較

http://pc.watch.impress.co.jp/docs/2008/0702/kaigai451.htm
NVIDIAのGT200とAMDのRV770のどちらが優れているのか

上回出現這種titie記得是NV30 vs R300、NV40 vs R420的時候。

原文的結論是

 

一言で言えば、GT200は汎用コンピューティングにも適したアーキテクチャを目指して、その結果として高いグラフィックスパフォーマンスも実現した。
一方、RV770はグラフィックスに最適化した結果、汎用コンピューティングでも威力を発揮するコンピューティングパフォーマンスを得た。

GT200は汎用コンピューティングでの高効率のトレードオフとして、制御系のユニットが増えてダイ(半導体本体)が肥大化した。
RV770は制御系が極めてコンパクトな高効率のダイを得たトレードオフとして、汎用プログラムでのプロセッサの効率には弱点がある。

これは、CPUを持たないためGPUを汎用コンピューティングに広げなければ活路がないNVIDIAと、CPUを持つためCPUとGPUの連携を重視するAMDの立場の違いを反映している。

和GT100(or G8x/G9x)相比,GT200(or G100)目前專攻繪圖的修改並不多….都是對繪圖與通用運算"雙方"可以有幫助的更新。
相較之下,RV770的更新(ROP強化、內部bus強化)大多是對繪圖有幫助的。

當然這樣講就很籠統了,不論是CPU和GPU,本身變快不就是對什麼處理都有幫助?

關鍵在於控制單元的複雜度,由於繪圖本身的平行度高,但是單一pixel本身的處理相較之下單純,也不會有互相溝通的問題,所以過去其實用FIFO就可以掩蔽記憶體延遲;現在雖然多了一些動態分支的能力,但是thread的交換,其實作用和過去的FIFO是不變的。

GT200單一SM的register file從32KB變成64KB(8,192 to 16,384 register)是thread規模的提升,相當於FIFO擴大,可以掩蔽的延遲變大,實質上就是代表可以支援更快(延遲更大)的記憶體系統;但是可以控制的warp從24提升到32這部分,就是控制單元規模的提升….

現在對NVIDIA最大的問題是shader的規模現在比人家少,shader的效率沒有什麼改變,規模擴展1.5倍應該能得到相應提升;
但是GT200的單一TPC性能因為時脈下降的關係,實質上只有1.2~1.3倍左右。於是10組TPC對應到的shader性能只增加一點點、但是ROP之類的部分則整個double上去。

這狀況就很像當年的R600…. 現在我們回想起來,其實那就是G94 class的shader搭上512bit等級的ROP。

所以和R700的雙晶片相比,GT200的shader資源實質上大概只有對手的一半左右,所以對手真的要挑雙晶片vs單晶片的話,是很容易輸掉的。

現在NVIDIA唯一可以欣慰的一點,是看起來R700還是只有最大4chip的CrossFire-X平行結構,所以雙方最大大概都還是4chip vs 4chip,那麼單一晶片規模比較大的NVIDIA還是有一點優勢,只是成本可能不見得可以搭上贏到的面子。

和G80時代不同,G100目前只剩大約1/4多一些的規模是ROP和記憶體控制器,有60%左右是TPC(processor core + TMU)的關係,不過仍然可以看出來,如果ROP和記憶體控制器刪減一半(也就是256bit、shader不變或稍微減少)的話,其實與RV770的規模差距就不大了(猜測大約1000M多一些)。

當然扯到要tape新晶片的話,現在是都來不及了….XD
市場已經開始變化了,現在還是GT200的蜜月期,不可能馬上搞出新的東西來挽救。

well,NVIDIA當然不太可能在GT200製作期間完全只做這個晶片,那就太誇張了,同時應該也在做其他chip的設計;而且現在這些GPU的模組化都非常徹底,光是改變TPC、ROP、Memory controller的數量比例、再生出一個GPU的時間應該不會很長。

但是其實現在更大的問題是,要出個新東西的話,通常第一個先死的不是對手,是自己的旗下AIC….
因為強力的中階產品,馬上會讓一堆存貨滯銷。

畢竟NVIDIA先前一段時間市場操作也過於強勢,都是把風險推給旗下AIC,讓自己的利潤不當放大,結果變成現在局勢稍微改變,AIC就一堆醞釀叛逃到AMD陣營底下,來個左右逢源….這其實才是NVIDIA現在最大的問題。

很有趣的是,AMD這回RV770一出來,RV670和更早以前的產品也是會遇到很尷尬的滯銷問題;但是這是以前AMD盟友的狀況,反倒是過去沒有做AMD產品的廠商因為沒有存貨問題,反而落得輕鬆。XD

總之AMD和NVIDIA在AIC之間的角力關係回復平衡之後,大概會讓競爭更活性一點吧。
一如前述,架構上的落差其實並沒有想像中的大,甚至AMD這邊還是比較弱一些;但是現在市場上的輿論,已經快變成NVIDIA全面輸給AMD….當然這不是事實,只是這就是氣勢的問題了。

在〈後藤老爹的GPU架構比較〉中有 18 則留言

  1. 按AMD提供的對比對象來看
    4850對8800GT
    4870對9800GTX
    4850CF對GTX 260
    4870CF對GTX 280
    說每一級對應的性能,都勝出30%~40%。
    但是考慮晶體管的話,每級也差不多比對比對象高30~40%。
    應該說,每晶體管性能比這次,雙方其實是平手。
    但各級產品按面積算的話,卻反而是AMD一邊更小,所以說NV是差在55nm工藝上了。
    然后關于RV770我的看法是,RV770更像是一個混血——RV670跟G92的混血。
    TMU跟SPU采用整組綁定設計;
    ROP與MC采用crossbar連接;
    array中加入類似share memory的Local Data Share。
    GT200那邊除了提到了增加register file、thread外,還有一點就是加入倍精度浮點支援(register file加倍也很大程度跟支援倍精度浮點有關)。
    雖然兩者倍精度運算實現的方法有較大不同。
    此外RV770中降低延遲、改善緩存等也是提升通用性能的吧,而thread、wavefront數量的提升也是隨著SPU整體比例的提升一個不落的繼續保持與GT200相當,提升比例是完全一樣的呀。
    我覺得GT200并沒有比RV770更重視通用和圖形雙方面提升。而且GT200的ROP照樣改了不是么,單論改動結果,雙方可以說殊途同歸啊,除了倍頻1D與VLIW 5D這種基本設計外,兩者其他地方是愈發接近了。

  2. 按AMD提供的對比對象來看
    4850對8800GT
    4870對9800GTX
    4850CF對GTX 260
    4870CF對GTX 280
    說每一級對應的性能,都勝出30%~40%。
    但是考慮晶體管的話,每級也差不多比對比對象高30~40%。
    應該說,每晶體管性能比這次,雙方其實是平手。
    但各級產品按面積算的話,卻反而是AMD一邊更小,所以說NV是差在55nm工藝上了。
    然后關于RV770我的看法是,RV770更像是一個混血——RV670跟G92的混血。
    TMU跟SPU采用整組綁定設計;
    ROP與MC采用crossbar連接;
    array中加入類似share memory的Local Data Share。
    GT200那邊除了提到了增加register file、thread外,還有一點就是加入倍精度浮點支援(register file加倍也很大程度跟支援倍精度浮點有關)。
    雖然兩者倍精度運算實現的方法有較大不同。
    此外RV770中降低延遲、改善緩存等也是提升通用性能的吧,而thread、wavefront數量的提升也是隨著SPU整體比例的提升一個不落的繼續保持與GT200相當,提升比例是完全一樣的呀。
    我覺得GT200并沒有比RV770更重視通用和圖形雙方面提升。而且GT200的ROP照樣改了不是么,單論改動結果,雙方可以說殊途同歸啊,除了倍頻1D與VLIW 5D這種基本設計外,兩者其他地方是愈發接近了。

  3. afxif你這回講到我心坎裡了XD
    工藝的問題,我想NVIDIA差不多也該痛到了,會準備比較激進的改變才對。
    這回AMD的資源投注開始發揮作用,NVIDIA不能再只是審慎緩行,而沒有足夠的跨步。
    —-
    不過倍精度的部分我覺得其實他們現在是在省成本啦。
    因為他們實際上等於只加了”1個”DP,卻讓全部的register file都double了,然後thread管理數量又只加33%(768->1024),我是覺得並沒有直接關聯就是了。
    哪天NVIDIA要打超高階HPC應用的時候,也就是那種”沒有全速倍精度就不理會你”的市場的時候(ex:RoadRunner for LANL),自然會出現全速版產品的。
    —-
    > 此外RV770中降低延遲、改善緩存等也是提升通用性能的吧, 而thread、wavefront數量的提升也是隨著SPU整體比例的提升一個不落的繼續保持與GT200相當,提升比例是完全一樣的呀。
    後藤老爹的原文,是指出”為了提升繪圖,結果順便提升了通用性能”。
    “降低延遲、改善緩存”這部分底層頻寬通聯性能的改善,是會改善整體體質的,不論繪圖或是通用都會用到,所以被後藤老爹歸為”順便”;但是RV770在thread與wavefront的數量提升,是與ALU增加規模完全一樣的關係,也就是它做的是類似G94->G92這樣的提升,並沒有和GT200一樣,每個sp/ALU本身的資源比例得到提升。

  4. afxif你這回講到我心坎裡了XD
    工藝的問題,我想NVIDIA差不多也該痛到了,會準備比較激進的改變才對。
    這回AMD的資源投注開始發揮作用,NVIDIA不能再只是審慎緩行,而沒有足夠的跨步。
    —-
    不過倍精度的部分我覺得其實他們現在是在省成本啦。
    因為他們實際上等於只加了”1個”DP,卻讓全部的register file都double了,然後thread管理數量又只加33%(768->1024),我是覺得並沒有直接關聯就是了。
    哪天NVIDIA要打超高階HPC應用的時候,也就是那種”沒有全速倍精度就不理會你”的市場的時候(ex:RoadRunner for LANL),自然會出現全速版產品的。
    —-
    > 此外RV770中降低延遲、改善緩存等也是提升通用性能的吧, 而thread、wavefront數量的提升也是隨著SPU整體比例的提升一個不落的繼續保持與GT200相當,提升比例是完全一樣的呀。
    後藤老爹的原文,是指出”為了提升繪圖,結果順便提升了通用性能”。
    “降低延遲、改善緩存”這部分底層頻寬通聯性能的改善,是會改善整體體質的,不論繪圖或是通用都會用到,所以被後藤老爹歸為”順便”;但是RV770在thread與wavefront的數量提升,是與ALU增加規模完全一樣的關係,也就是它做的是類似G94->G92這樣的提升,並沒有和GT200一樣,每個sp/ALU本身的資源比例得到提升。

  5. 工藝這個東西,看過去8年來,GPU業界基本上誰用新工藝誰就產品延期,而出來的東西往往又沒有優勢。
    也就是TSMC 55nm出現了新工藝A11直接上市的,可以說奇跡吧。
    可8年來就這么一回奇跡,這用新工藝算是跟給XBOX提供顯卡一樣的詛咒了。
    NV到底會不會爭取45、40nm的領先還真說不好。
    ====================================
    此外關于thread
    R600架構跟G80架構的thread總數是相同的
    但是激活的線程數R600是256個,而G80有512個。
    一方面可以說R600的激活線程少,但一方面也可以看出R600備用的thread比例更高。
    到了RV770跟GT200
    它們的thread總數也是相等的。
    但是激活的,RV770正經提升150%到640個,而GT200則是960個。
    結果就是,兩者激活的跟總的比例又進一步接近了。
    雖說R600跟G80兩者走了個分歧,但結果還是殊途同歸。

  6. 工藝這個東西,看過去8年來,GPU業界基本上誰用新工藝誰就產品延期,而出來的東西往往又沒有優勢。
    也就是TSMC 55nm出現了新工藝A11直接上市的,可以說奇跡吧。
    可8年來就這么一回奇跡,這用新工藝算是跟給XBOX提供顯卡一樣的詛咒了。
    NV到底會不會爭取45、40nm的領先還真說不好。
    ====================================
    此外關于thread
    R600架構跟G80架構的thread總數是相同的
    但是激活的線程數R600是256個,而G80有512個。
    一方面可以說R600的激活線程少,但一方面也可以看出R600備用的thread比例更高。
    到了RV770跟GT200
    它們的thread總數也是相等的。
    但是激活的,RV770正經提升150%到640個,而GT200則是960個。
    結果就是,兩者激活的跟總的比例又進一步接近了。
    雖說R600跟G80兩者走了個分歧,但結果還是殊途同歸。

  7. > 呵呵,想转到PCI、ITOCP。可以么?
    可以是可以,但是那邊我記得有發過類似的文章啊….
    —-
    > 此外關于thread
    有個有趣的事情是,每個thread的register是差四倍的(4D vs 1D),但是雙方的總容量卻沒有差到四倍,G80 vs R600的時候是512KB vs 1MB,GT200 vs RV770是1.92MB vs 2.5MB。
    所以總容量的話,會被1D/5D、8sp/16shader的差異影響,事實上把那些數字全部刪掉的話,雙方每個sp都是1024個register,只是NVIDIA用較小的32thread為一個warp,R600用64thread為一個wavefront,雙方都是4cycle。
    備用thread比例如果你用warp(wavefront)為單位看就不是那麼一回事了:雙方的總運作/備份warp(wavefront)比就單純是30/320 vs 10/480,每個unit/SM的warp數各是32 vs 48….也就是從這點來看,GT200是成長150%(容量double),RV770則無成長(容量維持256KB),畢竟”每個核心”需要單獨面對延遲,單一核心的效率不提升的話,就是直接增加核心數量。
    但是的確你可以說是殊途同歸,因為這樣只看得到繪圖面。

  8. > 呵呵,想转到PCI、ITOCP。可以么?
    可以是可以,但是那邊我記得有發過類似的文章啊….
    —-
    > 此外關于thread
    有個有趣的事情是,每個thread的register是差四倍的(4D vs 1D),但是雙方的總容量卻沒有差到四倍,G80 vs R600的時候是512KB vs 1MB,GT200 vs RV770是1.92MB vs 2.5MB。
    所以總容量的話,會被1D/5D、8sp/16shader的差異影響,事實上把那些數字全部刪掉的話,雙方每個sp都是1024個register,只是NVIDIA用較小的32thread為一個warp,R600用64thread為一個wavefront,雙方都是4cycle。
    備用thread比例如果你用warp(wavefront)為單位看就不是那麼一回事了:雙方的總運作/備份warp(wavefront)比就單純是30/320 vs 10/480,每個unit/SM的warp數各是32 vs 48….也就是從這點來看,GT200是成長150%(容量double),RV770則無成長(容量維持256KB),畢竟”每個核心”需要單獨面對延遲,單一核心的效率不提升的話,就是直接增加核心數量。
    但是的確你可以說是殊途同歸,因為這樣只看得到繪圖面。

  9. > 所以總容量的話,會被1D/5D、8sp/16shader的差異影響,事實上把那些數字全部刪掉的話,雙方每個sp都是1024個 register,只是NVIDIA用較小的32thread為一個warp,R600用64thread為一個wavefront,雙方都是 4cycle。
    這邊我搞錯了,GT200的每個sp提高到2K register,由於thread只有成長33%,實質上每個thread可以控制的register數量從10個變成16個。
    以單位規模來說應該是降低,但是實際上TPC到底規模差多少很難估計。

  10. > 所以總容量的話,會被1D/5D、8sp/16shader的差異影響,事實上把那些數字全部刪掉的話,雙方每個sp都是1024個 register,只是NVIDIA用較小的32thread為一個warp,R600用64thread為一個wavefront,雙方都是 4cycle。
    這邊我搞錯了,GT200的每個sp提高到2K register,由於thread只有成長33%,實質上每個thread可以控制的register數量從10個變成16個。
    以單位規模來說應該是降低,但是實際上TPC到底規模差多少很難估計。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料