PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   顯示卡討論區 (https://www.pcdvd.com.tw/forumdisplay.php?f=8)
-   -   Nvidia 玩古墓奇兵6 效率比 ATi差那麼多! (https://www.pcdvd.com.tw/showthread.php?t=240728)

mobil 2003-08-27 07:42 PM

推推推`~~~:D

真是太精闢了~~~

kkcity59 2003-08-27 09:34 PM

回覆: 回覆: 回覆: 回覆: 回覆: Nvidia 玩古墓奇兵6 效率比 ATi差那麼多!
 
引用:
Originally posted by GPF
老實講,您講的那些小弟才疏學淺,看不太懂。

1.NV3x PS 2.0效率不佳不是我推導出來的,我只是引用Beyond3D評論中的這段話。

with the ATI boards showing quite a higher performance than the NVIDIA boards, which is almost certainly due to the PS2.0 shader use within the game.

2.您說NV3x系列在TR中被R300/R350電的原因是AF implement的方式不同,
這句話有很大的問題。

最佳反証,就是下面link的最上面那張圖。
http://www.beyond3d.com/misc/traod_...f/index.php?p=3
為和AF關掉了效能還是一樣差?

3.如果真是如你所說trilinear implement方式也有影響,
為何NV3X在其他的game(不使用PS 2.0)開了trilinear後效能沒有像開了AF一樣狂降?

4.NV3X shader效能不彰已是眾所皆知的事情,之前其他hardware review網站用ShaderMark,3DMark03 GT4(patch330)測試也是得到同樣的結果 -> 被R300/R350狂電。
當然....
有部分的原因是FX是採用FP32/FP16,跟R300/R350的FP24比較基準不同。


嗯,也許beyond 3d這篇文章可以解釋一些這樣的現象,這是NV30,不是NV35
我不知道NV35是否有作一些改變,但是我由電晶體數猜想是不太可能的
另外小弟對GPU認識很粗淺,這篇文章我看得很吃力,能相互討論仍值得高興
http://www.beyond3d.com/articles/nv30r300/
它有FP16Unit X 8、和八個貼圖單元,FP32Unit事實上是由兩個FP16構成
所以它等於只有四個 FP32Unit,這樣他等於只能提供Radeon 9500的規模
雖然Radeon 9800是採用FP24而已,但是他確實就有兩倍的效率了
另外我查過NV30的PS 2.0的速度,他的fillrate真的是很慢
目前ps 2.0的遊戲還很少,假如在PS 2.0下NV35效率跟R300有很大差異
購買他就是沒有太多意義了,不過根據您提供這些連結跟我查的結果
NV35的PS 2.0可能一樣是很慢的,Nvidia傳統上會公布這一些資料
但這在NV30之後這,Nvidia反而逐漸保留這些資料,讓大家不太好預測

Artx1 2003-08-27 10:17 PM

引用:
Originally posted by kkcity59
我提供我的看法,基本上我認為,AF跟Trilinear發生的瓶頸是一樣的
我只指出AF的問題,因為我把Trilinear看成一種AF處理,假如不是這樣
就請您說明一下,例如以1:2 AF,每個貼圖需八個texels,這與trilinear情形相同
假如GPU可以fetch 8 texel/cycle,他可以得到幾乎免費的AF或Trilinear
但是假如是1:8的AF_Mipmaps,texels需要64個,這時的fillrate就可能是瓶頸
(通常這時候的memory bus都還可以撐得住,這是與AA有一些不同的)
以Geforce來看,他長期的AF效率都是不好,一個原因是他很多晶片
打開AF時,fillrate會減半,NV30若沒有改進,則AF效率會大不如R300
事實上目前所有的測試,也都指出來NV3X仍然有這樣的問題
就算這一篇測試報告,也反映出同樣的問題


基本上我的意見和kkcity59兄的看法相同, 不過有些地方要跟著列近來討論一下就是了.

話說nVIDIA系的GPU(不含GF256)的產品TMU的讀取能力似乎一直維持在4texels/cycle,
於是在NV3x之前(不含NV10), AF的速度就幾乎是與AF階數相關.
比如說, 1:2 AF + bilinear MIP map, 在single mapping下總共需要16texels,
於是每個pixel就需要2個cycle才能完成. 話說NV30的TMU也維持與過去同樣的水準,
只是加入了新的AF演算法, 讓它不需要每個pixel都處理這麼多的texel.
不過這個演算法品質下降得有點明顯, 算是一個不好的折衷.

相比之下, R300的TMU效率其實應該也差不多, 只是它的AF演算法比較好一點.
讓它不需要讀取那麼多的texel, 進而達到了比較好的AF速度.

AF有兩個重點, 一個是sampling points, 一個是MIPMAP LOD的選擇.
比起R200來說, R300的 MIPMAP LOD的選擇改善很多, R200有在水平與垂直時效果最好,
在45度的時候則完全沒有效果; R300則讓AF的有效角度改為45度的倍數,
而使得最佳角度變成八個角度; 當然失效角度也跟著改變了.

說起來, R300的AF效率和R200比起來稍微有點下降....
當然這是同時脈下相對性的比較, 因為晶片的時脈也提高了, 於是R300比起R200絕對效率是有提高的.

比較之下, nVIDIA的AF實作上, NV2x的AF演算法的演算法品質非常好, MIPMAP LOD非常接近最好的選擇,
只是patten的選擇則就很糟糕, 進而讓效率變得很慘....於是很多人認為NV2x的"高品質AF"是不實用的, 即使效果很好.
NV3x的狀況則如同前述, 有一個新的AF模式但是效果不好. 跑舊有模式的時候則和過去NV2x一樣慢.
ATi 的patten選擇則好得多, 於是就反映在效能上.

理想上, 應該是要追求處理最少的texels而達到最好的效果, 只是目前的硬體實作還做不出一些比較複雜的演算法就是了.
總結上而言, 普遍上認為目前R300的AF是一個比較好的折衷, 不過ATi應該可以企圖去提供品質更好的AF就是了; 而nVIDIA需要引進一個更好的patten, 才能改善AF的效能表現.

Artx1 2003-08-27 10:23 PM

引用:
Originally posted by kkcity59
再來說Pixel Shader,以R300來說,他有8gFLOPs/cycle,以300mhz的R300
可以得到19.2gFLOPs,問題在於NV3X宣稱52gFLOPs
(我不確定這是同時加上的Vertex Shader的總和?)


如果1cycle有8gFLOPs的話,那就不得了了.... ^^a
考慮1個mad = 8FLOPs的話, R300應該可以得到
8FLOPs x 8pips x 325MHz = 20.8GFLOPs
的浮點效能.

話說回來, 其實我後來一直找不到nVIDIA所謂宣稱NV30有52GFLOPs的出處,
反倒是在paper上頭找到了nVIDIA宣稱500MHz的NV30有16GFLOPs

http://developer.nvidia.com/docs/IO...ysSimOnGPUs.pdf
page3

"Free parallelism, GFlops of math, vector processors
500 Mhz * 8 pix/clk * 4-floats/pixel = 16 GFlops"

引用:
Originally posted by kkcity59
事實上PS的運作是更複雜,所以需要更多實驗來驗證他的效率
好比pixel shader越來越長,得藉助Local buffer來存放,這樣要如何保持效率?
只是廠商的宣稱值自然可能灌水.沒有實驗下,我會先不質疑這樣的說法
但因為AF是長久以來Nvidia的問題,我會把這篇測試仍舊導向這樣的結論
而不直接做出PS 2.0效率不彰的結論。


關於Pixel Shader的效能方面, 有時會直覺地讓人想到FP24 vs FP16/32;
但是情況並不那麼單純. 雖然nVIDIA官方宣稱"使用FP16是FP32的兩倍快",
但是根據NFI那邊的數據分享, NV3x使用FP32時的速度延遲並不是真的那麼大.

http://www.notforidiots.com/forum/v...php?t=8&start=8

在極端的case(使用32個register)下, 程式碼完全使用FP16運作有可能比使用FP32快了2.4倍.

但是如果減少register的使用(意指交換減少, 共用增加, 程式碼總長度增加), FP32其實並不會很慢;
增減調配register的使用, 亦即需要compiler來做optimize, 現在的Shader不論是game或者benchmark,
普遍地都是採用固定的assembly code, 如果寫作上普遍使用HLSL的話, 透過comipler技術,
可以產生比較適合於NV3x目前架構的Shader Code.

至於R300的部分, R300的架構設計配合了現有的Shader Code, 在某些順序下的指令可以平行處理,
而因此可以增加速度, 目前的小型Shader的指令並不複雜, 於是加速幾個常用指令的平行度是個好選擇;
但是在shader規模不斷增大的狀況下, 這樣的optimize法其實很快地會遇上瓶頸, 還是應該要連HLSL的運用也一起考慮進去才是長遠之道.

至於NV3x將Shader Code儲存在DRAM的實作問題, 其實當然會在GPU內部有規模比較小的cache, 只是可能在數十個指令的程度, 未來要擴充指令數應該也不是什麼問題.
其實這樣想起來, R350的F-Buffer基本上也是一種類似nVIDIA做法的手段, 因為一遇到條件分支, 不論剩下幾個指令空間, 還是得要做content switch, dump到DRAM讀入新的指令, 那與NV3x差異也不會太大的.

其實以類似RISC CPU的觀念來看, 本來就應該透過高階語言去讓compiler去做針對不同處理器的最佳化.
DX9規定了低階的格式, 基本上不是一件多好的事情.... 當然已知DX10應該已經捨棄這種做法了.

引用:
Originally posted by kkcity59
嗯,也許beyond 3d這篇文章可以解釋一些這樣的現象,這是NV30,不是NV35
我不知道NV35是否有作一些改變,但是我由電晶體數猜想是不太可能的
另外小弟對GPU認識很粗淺,這篇文章我看得很吃力,能相互討論仍值得高興
http://www.beyond3d.com/articles/nv30r300/
它有FP16Unit X 8、和八個貼圖單元,FP32Unit事實上是由兩個FP16構成
所以它等於只有四個 FP32Unit,這樣他等於只能提供Radeon 9500的規模
雖然Radeon 9800是採用FP24而已,但是他確實就有兩倍的效率了
另外我查過NV30的PS 2.0的速度,他的fillrate真的是很慢
目前ps 2.0的遊戲還很少,假如在PS 2.0下NV35效率跟R300有很大差異
購買他就是沒有太多意義了,不過根據您提供這些連結跟我查的結果
NV35的PS 2.0可能一樣是很慢的,Nvidia傳統上會公布這一些資料
但這在NV30之後這,Nvidia反而逐漸保留這些資料,讓大家不太好預測


oldman大在這篇文章作出NV30的管線內建FP16unit x 8的推論,
不過其實一如前述的理由, 看來NV3x的FP32 unit並不完全是兩個FP16 unit所構成的.

giligula 2003-08-28 12:56 AM

說是 trilinear 的關係並不合理
在網路上看到的所有測試程式都是用 trilinear
有這種問題
那 NV 早被狂電了
但事實上不是如此

而且說開 trilinear 效能不佳
等於是說晶片設計問題很大
實際上 GeForce 的設計一直很優秀
trilinear 是古早的東西了
和 AF 有很大的不同
連效能普普的 GameCube Flipper 都能做到 trilinear 不會有任何 fillrate loss 了

如果把問題說得複雜
牽扯到 memory access 不是 linear
因此影響到記憶體 access 的 latency
再加上晶片內的 internal cache
這可絕不是簡單的 fillrate 算術可以算的
別算啦
晶片內的黑箱太多了
這麼做並沒有離猜測多遠

看完前後文
我覺得 beyond3d 說明是由於 pixel shader 效能不彰並沒有錯

裡面的 shader 2.0
因為 shader 本身並不複雜
所以 shader 的複雜程度不是關鍵
主要是在使用了浮點精度
FX 用的是 16bit
Radeon 用的是 24bit
所以 FX 並不是因為高精度的關係造成效能不良
即使低精度下依舊慘烈
這方面也許是驅動程式的問題
我認為往後驅動程式應可能改善這個問題(至少就這個遊戲而言)

NV 的 shader 效能
的確是不佳的
把責任推給 DirectX 架構是不對的
即使在 OpenGL
ATI 照樣能在 NV 自家的小精靈 demo 跑得比 FX 還快

beyond3d 有更詳細的測試了
裡面有提到 shader 效能的問題

SKAP 2003-08-28 01:32 AM

抱歉...你們再討論什麼我不是很清楚啦...不過這一句

"連效能普普的 GameCube Flipper 都能做到 trilinear 不會有任何 fillrate loss 了"

GC的Flipper效能普普?是和什麼比呢?

Flipper的多邊形比XBOX的NV2A還高的說.還有8道硬體光源說...我不覺得差啊

·Estimated raw display capability:
NGC:162.0 million polygons per second
XBOX:116.5 million polygons per second
PS2:84.26 million polygons per second

amaw 2003-08-28 01:36 AM

引用:
Originally posted by BorgMu
好說好說....一個 鬼武者PC版 讓 R9700 Pro 跑的不如 GeForce3 Ti.....所以回敬一個 古墓奇兵6...也不為過啊:o
君可到ATI官網上,可以見到 蘿啦 的玉照.....相信已經說明一切了......:like:


我覺得連mx400都跑不過說..:D
因為至少我同學玩起來不會頭不見或隱形:cool:

Artx1 2003-08-28 02:20 AM

引用:
Originally posted by SKAP
抱歉...你們再討論什麼我不是很清楚啦...不過這一句

"連效能普普的 GameCube Flipper 都能做到 trilinear 不會有任何 fillrate loss 了"

GC的Flipper效能普普?是和什麼比呢?

Flipper的多邊形比XBOX的NV2A還高的說.還有8道硬體光源說...我不覺得差啊


Well, filpper的fillrate的確尚可而已.... 畢竟它只需要對付低解析的電視環境, 沒有打算去跨HDTV, D端子也只支援D2(480p)而已.
至於T&L, 則本來就是flipper的強項了.

BorgMu 2003-08-28 02:33 AM

奇怪?? 何時 GC的多邊型變最高了??
以前查到的資料還是以X-BOX為最高多邊型產生率的耶.......GC是落後X-BOX但領先PS2的??
但是GC的強項是在開反鋸齒上:( (GC的玩家一向強調它的畫質,沒幾個強掉它的"效能"....X-BOX正好相反:p)

Artx1 2003-08-28 02:41 AM

引用:
Originally posted by giligula
看完前後文
我覺得 beyond3d 說明是由於 pixel shader 效能不彰並沒有錯

裡面的 shader 2.0
因為 shader 本身並不複雜
所以 shader 的複雜程度不是關鍵
主要是在使用了浮點精度
FX 用的是 16bit
Radeon 用的是 24bit
所以 FX 並不是因為高精度的關係造成效能不良
即使低精度下依舊慘烈
這方面也許是驅動程式的問題
我認為往後驅動程式應可能改善這個問題(至少就這個遊戲而言)

NV 的 shader 效能
的確是不佳的
把責任推給 DirectX 架構是不對的
即使在 OpenGL
ATI 照樣能在 NV 自家的小精靈 demo 跑得比 FX 還快

beyond3d 有更詳細的測試了
裡面有提到 shader 效能的問題


話說Shader效能不彰, 其實我覺得NV3x的架構也很有趣,
為什麼用到某個數目以上的register之後降速會降得很厲害呢?
而且一般狀況下提供越多的register代表content switch時的資源更多....
怎麼反而用越少register越快(雖然從數字上真的有可能), 這點就真的很有趣就是了.

至於責任推給 DirectX 架構是對是錯, 這邊是有點保留就是了....
基本上 DirectX 也是MS與其他公司間的利益交換堆積出來的東西,
現在DX9的規格怎麼看都是對 ATi 很有利的玩意兒, 如同當年DX8和nVIDIA的關係.
說是風水輪流轉好像也頗切實....

當然這樣講就有失公允了.
總之, 我是覺得會想期待一下NV3x在高度複雜度的Shader下能不能有更好的表現;
而我會覺得R300/350的高速可能不容易在高度複雜的Shader下發揮出來.
當然現在的高速仍然有目共睹就是. 這邊也聽過R300系應該比較能夠發揮出一般對DX9效能上的期望.


所有的時間均為GMT +8。 現在的時間是08:59 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。