瀏覽單個文章
Artx1
Master Member
 

加入日期: Jun 2002
您的住址: 耗電量頗高的地方.
文章: 1,959
至於NV35這回對HL2的效能提升, 到底是不是作弊得來的呢?
這個可能要從架構上去稍微解釋一下.


基本上, NV30與NV35的主要差異在於, NV35把NV30的兩個FX12(Register Combiner)擴充了浮點能力,
讓兩個MiniFP32可以做和Full FP32一樣的工作, 發揮類似4x2甚至4x3的作用,
而仍然保留原來FX12的功能.(不過Full-FP32倒是不能跑FX12)

所以, 過去NV30如果使用FX12時, 會發揮相當於4x2的效果;
但是使用FP32會變回類似4x1的狀況. (實質上的fillrate仍然是4管線)
NV35則使得FP32的運作仍然能有4x2的能力, 不過使用FP16仍然比FP32快.

所以, NV35比起NV30, 實體資源是有增加的, 所以針對NV35的Driver改善, 在NV30上可能不會發揮太大的作用,
原因是這部分的改善是為了提高對NV35增加出來的硬體資源, 提高其使用率.

----
所以我們看這回Det.50對HL2的效能改善.
其實從上面的管線架構圖可以看出, R3x0在最極端的狀況下能發揮8x5的效果(!!),
但是每個單元其實都只有部分的功能, 所以指令只有在特定的排列下
才能"剛好"達到全部使用, 絕大部分的狀況仍然都只會發揮類似8x1的效果,
其實算是一個效率不好的架構; 相比之下, NV3x的效率就高上許多.
NV30使用FP16的時候會是4x2, FP32的時候則接近4x1.
(這邊指的是color指令不是過去常提的texture指令),
NV35則是在任何狀況下都會是4x2, 甚至會有4x3的case發生(stencil-op).

於是, 針對NV35的Driver改善, 是使得NV35在Best Case時,
Shader執行能力上達到與R3x0的worst case的資源使用狀況相同.
基本上R3x0的這個架構, 資源使用率其實相當低, NV35的話則相對地比較高,
所以, 如果Driver能夠做到經常性的維持NV35在高使用率的狀況的話,
那麼一般狀況下NV35是可以在效能上與R3x0一拼的, 不需要去刻意的降低Texture品質,
甚至也可以開高解析度, 開AF也沒關係, 因為這部分比較和Shader Performance無關; 不過FSAA就難說了.

由於總執行能力確實比較低, 如果去提高負載的話, 受效能衝擊影響的狀況一定會比較嚴重, 這就沒辦法了.
Det.50著重的改善應該就在於改善compiler以提高對Mini32單元的使用率, 儘可能把效能擠出來,
R3x0則是本來平行度就很高, 而且這個架構其實也沒多少手段可以做最佳化,
因為目前的IMR不可能去做類似OOP的事情....

總之, 這回NV35的最佳化, 並不一定是作弊, 因為從架構上推, 有這種提升其實是合理的.
但是NV30的話, 可能就不會受惠了. 於是HL2直接將NV30定為DX8, 使用其FX12,
以使NV30的表現不會糟到影響遊戲進行的程度.

上頭是軟體使用FP的狀況, 比如說HL2....
如果是使用FX12(比如說Doom3的NV30 backend)的話, 則就不會有上述的問題,
一定會是全十全火力輸出, 這樣的話NV3x和R3x0的立足點是相同的(4x2 vs 8x1),
NV35就可能會因為Ultra Shadow之類的額外加值而勝出, 主因是因為Doom3沒有使用HDR.
而R3x0不論是在任何狀況下, 速度都一樣, 因為它的內部精確度就固定是FP24了.

以上是效能方面的討論, 已知NV38有另外的改善, 可能是針對暫存器方面的改善,
這樣的話就可能會進一步的提高使用FP32時的資源總量.

----
講了這麼多, 想講的其實很簡單.
NV3x會輸的主因並不在於對DX9的相容性好壞, 而在於硬體資源本身總量就真的比人少了(雙方的best case達到12vs40的誇張程度).
所以反過來說, 其實NV3x跑DX9也不應該會遇到多少相容性問題, 而是慢的時候真的就會比較慢.
套句David Kirk自己的台詞, "這是物理, 不是魔術"....

反而是nVIDIA如果放入了一些額外的不當最佳化, 就可能會造成相容性問題,
其實等於是自己把自己的狀況搞糟了.不過隨著NV40即將推出, 這個狀況理應會減少.

因為晚推出, 和人家比起來效能就被比了下去.
因為效能不好, 所以比較好的功能變得沒人用....
CineFX失敗的原因很多, 但是Delay絕對稱得上是主要因素.

其實也因為這樣, 已經有一些要nVIDIA直接放棄NV3x, 提早推出NV4x的聲音了,
不過看著NV38推出, NV40繼續delay, 看來nVIDIA當初也可能沒考慮到
NV3x的狀況會這麼糟糕.... 所以NV40還生不出來, 只好繼續死撐了?
舊 2003-10-03, 11:56 AM #15
回應時引用此文章
Artx1離線中