GTC看完四個video的感想

http://www.nvidia.com/object/gpu_technology_conference.html#webcast

http://player.istreamplanet.com/nvidia/d/keynote_090930.html

Opening Keynote with Jen-Hsun Huang

http://player.istreamplanet.com/nvidia/d/3pmsession_090930.html

General Session: Important Trends in Visual Computing

http://player.istreamplanet.com/nvidia/d/4pmsession_090930.html

General Session: Breakthroughs in High Performance Computing

http://ispss.istreamplanet.com/nvidia/d/keynote_091001.html

Day 2 Keynote: Hanspeter Pfister, Professor, Harvard University

結論….GPU還不夠快(核爆)

那堆動不動就需要ExaFLOPS level、grand challange級的東西實在是太瘋狂啦….

不過Fermi對工業的確會有很大推動力的感覺,畢竟單晶片倍精度破1TFLOPS真的意義非凡。改成64bit的線性定址空間讓C++可以re-compile就直接在上面也很重要,可以切換的16KB shre memory+48KB L1/768KB L2也讓大部分的code可以不做很大的修改就得到初步的加速,引入的debug機制也讓在Fermi上的開發比過去GPGPU要進步很多,最後是高速context switching和multi-kernel執行能力(16的話好像和SM的數量有關),這樣看來Fermi 似乎是有和Larrabee叫陣的本錢了。

最後,09年第四季Tesla business似乎有10M的盈餘….

—-

不過基本上最受關心的還是繪圖性能….畢竟成本就是高了1.5倍。

反過來說,超過GTX295應該是基本期望,但如果GF100還能夠單晶片挑贏5870X2(贏5870平均約25%)的話,那就真的很神了。

但是個人覺得GT200的問題不在shader,更比較偏向TMU和ROP吞吐不足(尤其是ROP基礎性能比G92還糟)….這個改善應該和shader是可以並行不悖的。

雖然以硬體context switching應該可以收到DirectCompute並列執行效率不減的好處,這樣預期來說只要一跑PhsyX,GF100單卡很有可能可以打贏兩張GT200 SLI、或者是GT200兩張各自跑繪圖和物理;但是繪圖本身單獨就贏,才會給人有全面性的感覺。

在〈GTC看完四個video的感想〉中有 6 則留言

  1. >>尤其是ROP基礎性能比G92還糟
    B3D測試看來NV的ROP並不差,GT200應該沒理由下降.
    http://www.beyond3d.com/content/reviews/52/15
    考慮測試時脈的差異,NA兩社在同ROP數時,
    ROP基本Pixel效能差異其實不大.
    GT200效率比不上G92的原因是Tex數和SP數的
    成長比例太低.只有ROP和頻寬是兩倍,
    其他都不是兩倍.而且SP時脈降低.
    導致shader運算達不到G92的兩倍.
    55nm G92b可以達到700Mflops.用了750M電晶體
    55nm GT200b只達到1000Mflops.用了1400M電晶體
    GT200的ROP和頻寬都加倍了,但是shader運算密度
    卻大幅下降.個人覺得GT200的問題是在shader運算上.

  2. 在Sampling和Filtering測試中
    NV的Tex unit也是稍勝過ATI.
    (而且NV時脈還比較低….)
    GT300電晶體成本是GT200的2倍,
    240SP變成512SP這比例應該是還ok.
    若SP時脈能往上推高.
    Shader運算密度應該會上升到合理範圍.

  3. GT200在ROP性能上的下降主要是在Render target AA上,這個在PIL的fillrate test數據上面可以看得到,因為他們的數據已經單一ROP單週期化所以很好比較:
    http://www.pcinlife.com/…3/1215942095d535_5.html
    你可以看得出來,Render target MSAA的部份效率是0.37pixel/cycle(GT200) vs 0.74 pixel/cycle(RV770),足足差了一倍以上,再加上B3D的測試可以看到G9x的color compression的部份和RV770差距,高倍率AA的時候壓縮比落差加大。
    另外一個問題是,高解析度會大幅提昇shader運作負擔,effect也會;但是AA並不會提昇shader運作負擔,而是ROP和記憶體頻寬的負擔。
    也就是說,如果要比shader負擔的話,其實反而應該降低開AA的比例才對,因為除了CFAA有用到shader之外,AA的主要動作大半都是ROP在消耗頻寬而已。
    低解析度的時候當然很有可能是CPU bound,但是高解析度底下不開AA的時候有些狀況CPU應該已經不是限制。
    所以,假設找個雙方記憶體頻寬和ROP負擔相對都不高的狀況下,比方說雙方都還是free AA的狀態下一比會發現,NVIDIA不開AA的時候其實沒有什麼特別的劣勢,反倒是開高AA之後掉得很明顯的部份,顯現出上面提到Render Target MSAA的弱勢。
    從這個觀點來說,其實看不出NVIDIA的shader真的有很大的瓶頸,反而會讓人感覺ATI的shader利用效率上可能有問題,所以我不覺得問題是在運算密度上。
    此外,G92的Z-only fillrate比GT200高一些,但是我搞錯一點是GT200的ROP相對仍G92有功能上的改進,比方說GT200有single cycle的8bit 4D int-blending,這點就比G8x/G9x的2cycle要來得好。
    RV770的ROP相對於RV670有極大的改進,RV870也在這個基礎上還做了強化之外,數量也有增加,所以以過去的經驗來說,老實說我覺得這個優勢比那個double的shader更大,因為shader和TMU都只是照加,ROP的部份除了數量之外還有質的提昇。
    —–
    補充的是,GT200的ROP修改主要是配合CUDA device 1.3(GT200)提供的一些非連續記憶體存取的功能,當然CUDA 1.3還有一個主要的功能是硬體DP,DP就沒有在中階產品出現。
    比方說,長期以來看不到的CUDA 1.2 device最後證實是GT215/216之類的GT200中階產品。

  4. >>NVIDIA不開AA的時候其實沒有什麼特別的劣勢,
    >>反倒是開高AA之後掉得很明顯的部份,
    >>顯現出上面提到Render Target MSAA的弱勢。
    那個render target應該是指畫到texture上(RTT).
    而不是所有render target(例如C+Z, Z only….).
    其實RTT是不太需要做MSAA的.
    而且0.37那其實不是ROP本身有MSAA的問題,
    而是RTT時NV不會去做color & Z compression.
    所以你看不管有無MSAA, GT200在RTT時都很弱.
    根本和AA沒有直接關聯阿.
    開發者應該先畫到frame buffer(with MSAA)
    再StretchRect….Resolve到texture(RTT).
    就不用再開MSAA畫到RTT了.
    所以其實那張測試看不出GT200的ROP有甚麼明顯弱點.
    其次,由於目前遊戲大都要支援DX9而它不支援RTT的MSAA.
    開發者通常會想辦法避免.而且RTT本來就不太需要MSAA.
    所以G92 & GT200的RTT MSAA效率差其實沒有太大影響.
    所以B3D沒有特地去測RTT的AA效能,其實無所謂.
    B3D的測試是NV和ATI一樣是2X AA有奇怪的效能衰退問題.
    但是都一直到4X AA都還維持等比成長.
    所以NV的ROP應該是到4X AA都還能和ATI抗衡.
    只有到8X MSAA時才明顯大幅落後HD4770.
    這是因為ATI的8x free AA設計.
    不過Z only就是NV大勝.
    整體來說NV的ROP並不差,TEX則是佔優勢.
    而且同級產品NV往往ROP & Tex甚至頻寬都比較多.
    如果這樣量的優勢還不能明顯擊敗同級ATI晶片,
    最大的可能就是ROP瓶頸和TEX瓶頸贏的優勢,
    都在Shader ALU瓶頸時輸掉了.
    >>如果要比shader負擔的話,其實反而應該降低開AA
    >>的比例才對,因為除了CFAA有用到shader之外,
    >>AA的主要動作大半都是ROP在消耗頻寬而已。
    比shader負擔的話, 不開AA也不會增加shader運算量阿,
    以遊戲來說似乎沒辦法這樣同時測數百個Shader性能.
    因為遊戲通常不完全是ALU或ROP limited.
    就算不開AA也可能卡在Tex或是卡在interpolator,
    數百個Shader可能的瓶頸太多種了.
    開高AA可以盡可能的把瓶頸移到頻寬上.
    但是不開AA也沒法確定最大頻頸會是shader ALU.
    恐怕是case by case.

  5. http://www.xbitlabs.com/…ory/mdolenc_pshader.gif
    這個圖是根據ALU運算量的不同來測Fill Rate.
    唯一的變數就是ALU運算量.
    可以很明顯看出,在PS1.x時, 由於是ROP limited
    都是ROP多一倍的GT200大獲全勝,
    直到ALU運算量增加到很高,GT200的Fill Rate迅速下降.
    因為此時已經是ALU limited.
    而RV770是幾乎不受指令數影響,因為一直卡在ROP不足.
    直到ALU運算量增加到很高,RV770開始超過GT200.
    ALU運算量要高到一定程度才能讓RV770的ROP無法滿載,
    數據開始下降
    這結果和遊戲實測的結論大致是一致的.
    不過Shader測試至少還能把問題單純化
    遊戲還多了Tex limited,屬性插補器limited,
    CPU limited, 暫存器limited,Input limited,Setup limited………
    更加複雜難以分析.

  6. RTT是render to texture啊….對喔。
    > 比shader負擔的話, 不開AA也不會增加shader運算量阿,
    > 以遊戲來說似乎沒辦法這樣同時測數百個Shader性能
    直接開高解析度嘍….只是這種測試很困難就是了,現在真的能開到超高解析度的環境還是只有ATI手上的eyefinity。
    > 整體來說NV的ROP並不差,TEX則是佔優勢.
    > 而且同級產品NV往往ROP & Tex甚至頻寬都比較多.
    > 如果這樣量的優勢還不能明顯擊敗同級ATI晶片,
    > 最大的可能就是ROP瓶頸和TEX瓶頸贏的優勢,
    > 都在Shader ALU瓶頸時輸掉了.
    一般應該會是這種觀點啦,不過總覺得ATI那個效率還是怪怪的….

發佈留言

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

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