後藤老爹的GF100專題

http://www.nvidia.com/object/gf100.html

NVIDIA Home > Products > GeForce > GF 100

http://pc.watch.impress.co.jp/docs/column/kaigai/20100120_343352.html

NVIDIA初の”クアッドコア”GPU「GF100」のアーキテクチャ

http://pc.watch.impress.co.jp/docs/column/kaigai/20100119_343153.html

DirectX 11でも強力なNVIDIAの新GPU「GF100」

tessellator放在每個SM的用意是減少cache traffic,然後避免rasterizer變成瓶頸。

不過到這邊會感受到一個很重要的重點是,包含R600->RV670->RV770->RV870,其實除了shader數量之外,主要的成長是在ROP端,特別是單一ROP的色彩壓縮能力等等細節。

G80->G92->GT200的ROP基本上性能沒什麼提升,到GT2x0的低階產品的時候相同ROP數量性能立刻遭到滅頂。

Fermi在ROP上下的苦功也馬上反映出來…..

反過來說,我會想講Larrabee出不來的原因,是因為市場目前還是沒辦法接受一個沒有ROP、缺乏FSAA功能的GPU。

Larrabee的性能能夠填補ROP提供的hidden FLOPS嗎?那個數量很可能遠遠大過shader的總性能耶。

其次是Larrabee將ray tracing當成主要的訴求,而且確實比GPU要快;

但是如果從頭到尾用ray tracing來做遊戲繪圖顯然是太緩慢,要我說的話還是覺得拿ISPM之類的技巧來用會實際得多。

http://graphics.cs.williams.edu/papers/PhotonHPG09/

Hardware-Accelerated Global Illumination by Image Space Photon Mapping

然後只要讓GPU開始利用到rasterizer的優勢,那接下來速度就越差越多…._A_)a

拿個頗為空泛、但是卻不見得沒有意義的數字,就是當年PS3和XBOX360號稱的[1TFLOPS、2TFLOPS]之類的[性能當量],其實有大半都是GPU的hidden flops這點。TMU和ROP的性能如果要用CPU的SIMD unit去填補的話,還是需要相當大的性能。

ROP的行為的確帶來很大的限制沒錯,不過GPU到底要快到什麼地步才會讓人覺得「嘿我不需要ROP了」呢?

沒達到這個境界,只打算做TMU的Larrabee要出頭的機會就還沒到。

在〈後藤老爹的GF100專題〉中有 5 則留言

  1. 以前G92/GT200測試中NV的Tex單位效率明顯勝過ATI.
    GF100把TexFilter單位比例縮減,時脈拉高?
    不知道會有什麼影響,以前Address:Filter=1:2
    現在是1:1了…..
    把Vertex Fetch,Setup,Tesselation,Raster
    等運算分散到每個SM,好處是低中高階的不同設計,
    不必再另花時間安排這些固定硬體,
    反正有多少SM單位,效能自然就會線性Scale
    畢竟現在的GPU即使入門等級也比G70還龐大.
    即使SM/ROP/Tex都積木化,不同規模的GPU還是要重新
    再配置到各單位的傳輸線路.
    盡量模組化才有利於Time To Market.
    不過Tesselatior以SM為單位來放會不會太過底層了.
    等於放棄了GPC內的Tesselatior運算共用性.
    一個GPC有4個Tesselatior,但不見得所有SM都需要
    跑Tesselation,例如正在跑PhysX的SM就不需要,
    卻不能把閒置的Tesselatior給同GPC的SM使用?
    若以GPC為單位做共用,應該更有電晶體運用效率.

  2. 現在Fermi的TA:TF是1:4吧?
    G80是1:2(32TA64TF),但是G84/G86又改回1:1、
    G92/GT200也是1:1(64TA64TF、80TA80TF)。

    以GPC為單位共用tessellator的話,
    就和ATI的作法一樣了吧。
    如果說NVIDIA是G92大小(128sp)為基準當作一個GPC、
    那ATI就是以RV770的shader大小(800sp),
    triangle setup engine也是以此為基準去分配。
    而且每個SM都有總數64KB的cache/scratchpad memory,
    GF100的steam out速度剛好是GT200的四倍,
    其中一個原因就是steam-out buffer是Per-GPC的。
    利用L1、steam-out buffer應該可以做出比較有效率的vertex共用機制。
    而且基本上tessellator為什麼會作成per-SM的原因,
    就是和過去NV50/G80的記憶體系統階層回朔相容性有相當的關係。
    這個和CUDA培養起來的軟體資源有很大的關係;
    反之Fermi還是沒把scratchpad memory給虛擬化,
    而是先做了cache機制。

    兩邊的架構基礎設計不同,效率上的取捨點也不同。
    ATI的人一定會覺得NVIDIA的SIMD數量不夠、
    而NVIDIA的人一定會覺得ATI的SIMD效率很差。
    感覺這問題是一體兩面,沒那麼好解決。

  3. //現在Fermi的TA:TF是1:4吧?
    http://pc.watch.impress.co.jp/…aigai-06.jpg.html
    難道這圖是畫錯了? 它只畫了 4TA/4TF Per SM.
    http://pc.watch.impress.co.jp/…aigai-13.jpg.html
    GF200則是畫了 4TA/8TF Per SM
    //以GPC為單位共用tessellator的話,
    //就和ATI的作法一樣了吧。
    不完全一樣,比較類似Fermi的Raster Engine的位置.
    放在GPC共享,而非整個晶片共享一個.
    ATI目前Tesselator似乎是以Chip為單位.
    這是從好幾代以前就延續下來的配置.
    所以雖然RV870左右幾乎對稱模組,但是上面那部份
    Setup Engine卻是共用, 不同晶片規模,
    就要重新配置這一部分的性能.
    (NV則是直接把這Setup Engine從最上層的Chip Level
    直接拉到最底層的SM Level)
    以GPC為單位來放,就相當於ATI每400~800SP模組,
    各自有獨立Tesselator/SETUP的假設情形,
    是界於SM Level/CHIP Level的折衷,
    GPC/模組裡面的SM或SIMD core能共享Tesselator性能,
    但是2~4個模組卻又各自有獨立運作的2~4個Tesselator,
    這樣比較兼顧電晶體效率和成本.
    性能也可以隨GPC數量而Scale up,但又不會擔心閒置.
    …..不過低階的產品,可能連1個完整GPC/模組都沒法放.
    那時還是需要Redesign.
    NV的設計應該更容易設計與全產品線汰換,
    fermi延誤太久,也許產品汰換速度是目前的重要考量.
    SM功能越完整, 因為SM數量差異必須調整性能時,
    要Redesign的部分就越少.
    至少Setup Engine性能是隨SM數量”自動線性Scale”.
    就算入門GPU砍到只剩1GPC,1~2個SM.
    也不用花時間配置Setup Engine的規模與位置.
    未來ATI數百個SIMD/數千SP的Interconnect更複雜.
    ATI應該也會把Setup Engine開始往下拉/分散化,
    但是未必直接做到最底層SIMD core,
    比較可能是以數百VLIW SP的GPC為單位.
    從GF100這”GF”命名也暗示了NV再度重視繪圖需求,
    否則以當年GT200/Larrabee時代的觀念,GPU不應該再
    增加固定管線的比例,而是靠製程進步擴大可程式運算規模,
    以大量泛用化SP硬幹,連名稱都改成暗示Telsa時代的”GT”
    現在顯然是回到以繪圖需求為前提,不能只顧GPGPU發展.
    想要拿下GPGPU/HPC市場,要先搞定傳統繪圖卡需求.
    這應該是Inte/Nvidia/ATI的共識.
    只要能拿下繪圖市場,自然有商業優勢能順便吃下GPGPU市場.
    反過來卻沒辦法.
    Larrabee就是搞不定傳統3D繪圖,所以沒有銷售機會.

  4. 唔,GT200我很確定不是1:2,因為TPC的SM群共享8TA8TF是從G84/G86以來的設計,後來到G92/G94/GT200也沒有變。
    所以最後TA:TF=1:2的只有G80初代而已….
    1:4的數字是從Anandtech來的,
    http://www.anandtech.com/…howdoc.aspx?i=3721&p=2
    現在回去翻白皮書
    http://www.nvidia.com/object/IO_86775.html
    倒是的確沒有特別提到filtering 4x的部分,
    只有提到每個SM有自己的TMU unit(x4),不過其實GF100的SM算是把TPC壓平整合之後的東西。
    這樣看來Anandtech把Gather4當成4x來算? 這就不對啦_A_|||||
    —-
    低階其實也沒有redesign的問題啦。就是1GPC(raster)裡面只有1個SM而已。規模變成1/4、性能自然也跟著崩跌罷了。
    GF100是不是真的繪圖性能重視我覺得還真的是[蠻難說]的….
    一來上頭有繪圖不是那麼有用的ECC、滿滿的倍精度單元,這些繪圖是的確不容易用到。
    二來繪圖專用的ROP花了很大的精神強化,cache的分配也對強化的geometry有幫助。
    只能說先前CUDA真的分走相當的人力導致這邊無從動彈。
    我是覺得他們的思考點其實很像當年久多良木健那個「繪圖性能夠了該做物理強化」的想法,只是他想的是在CPU做大規模的物理模擬,比較高調;
    NVIDIA認為既然目的是要提高繪圖的說服力,就應該服雋於繪圖的需求,才變成所謂的hybrid graphics,PhsyX也一直僅只於eye candy:當然你可以破壞場景沒錯,但是感覺不到和場景的複雜互動。
    只是沒有人去做這段的話,大家其實也都只是放著而已。
    當然最後他們把CELL電爆了,做出有幫助的非繪圖應用領域的同時,這個領域的成果還是回頭去幫助繪圖。

  5. GDC2010關於DX11 Tesselatio
    Tesselation方面有不少應用上最佳化的課程.
    未來遊戲應該會在HullShader即時計算TS的次數,
    所以較平坦,遠距離,不是邊緣的面未必要多次Tesselate,
    Edge長度短可以調降Tesselate次數.
    畢竟只有幾個Pixel的小單位沒必要再做細分表面.
    這些Adaptive Tesselation可以最佳化TS效能.
    像Unigine Heavean那不管是否需要全面做Tesselate,
    在應用上算WorstCase測試,未來應用上性能衝擊應該更小.
    但TS性能最佳化,可能對ATI的架構相對較有利?
    因為它是多單位共享TS單位,可以再分配有限的TS運算性能.
    而且ATI本來就較充裕的ALU運算量,在HS增加的運算量,
    性能上比較不容易成為瓶頸.

發佈留言

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

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