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要出頭的機會就還沒到。
以前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為單位做共用,應該更有電晶體運用效率.
現在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效率很差。
感覺這問題是一體兩面,沒那麼好解決。
//現在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繪圖,所以沒有銷售機會.
唔,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電爆了,做出有幫助的非繪圖應用領域的同時,這個領域的成果還是回頭去幫助繪圖。
GDC2010關於DX11 Tesselatio
Tesselation方面有不少應用上最佳化的課程.
未來遊戲應該會在HullShader即時計算TS的次數,
所以較平坦,遠距離,不是邊緣的面未必要多次Tesselate,
Edge長度短可以調降Tesselate次數.
畢竟只有幾個Pixel的小單位沒必要再做細分表面.
這些Adaptive Tesselation可以最佳化TS效能.
像Unigine Heavean那不管是否需要全面做Tesselate,
在應用上算WorstCase測試,未來應用上性能衝擊應該更小.
但TS性能最佳化,可能對ATI的架構相對較有利?
因為它是多單位共享TS單位,可以再分配有限的TS運算性能.
而且ATI本來就較充裕的ALU運算量,在HS增加的運算量,
性能上比較不容易成為瓶頸.