第二項改進則是出現在像素管線本身上,NV35 基於第二代的 CineFX 2.0 引擎,每條像素管線由兩組 Mini FP32 浮點運算引擎組成,相較於上代僅有兩組 FX12 浮點運算能力的狀況來說,在處理浮點運算的效率會比 NV30 來的高上許多 (儘管 Mini FP32 能處理的運算種類不如 ATI 在 Radeon R300 當中使用的 Full FP24 來得多,所以 Shader Model 2.0 使用率越高的狀況下 NV35 還是會顯得越力不從心),改進了 NV30 的另一個主要問題。

skt9088

而另一方面由於 130 奈米製造工藝在 NV35 的時期已經邁入成熟,因此 NV35 的良率比起 NV30 來得高出許多,這使得 NV35 的生產成本可以進一步下降,同時 NV35 的功耗問題也比較不如 NV30 嚴重,因此並沒有搭配「吹風機」FX Flow,散熱器,NVIDIA 另外給 NV35 設計了另一款挺別出心裁的散熱器 (透過特殊排列的散熱鰭片來達成幫顯示核心散熱之外還順便替記憶體晶片降溫的效果),儘管仍然需要占用兩個擴充卡槽,但安靜了不少。

最終 NV35 以 GeForce FX 5900 系列的名稱在 2003 年 05 月 12 日發售 (距離 FX 5800 上市只過了兩個月),大抵上可分為 5900 (400/850 MHz)、5900 XT (390/700 MHz) 與 5900 Ultra (450/850 MHz) 三款。

sxr6805

整體來說 NV35 是一個比較成功的型號 (雖然比起以前來說還是很失敗),但至少在這個時期裡成功幫助 NVIDIA 收復過去幾個月內丟掉的一些失土,不過畢竟還是從 NV30 衍伸出來的產物,因此還是有很多共通的弱點沒能解決,終究造成了從 Radeon R300 推出之後直到 GeForce 6 Series 推出之前 NVIDIA 都只能當老二的局面。

中階產品的更新

在 NV35 逐步收復失土的同時,NVIDIA 意識到自己在中階市場部分的地位仍然在不斷流失,因此便以 NV35 為基礎在同年 10 月發展出了中階版本的 NV36,NV36 基本上可以視為砍掉一半 TMU 的 NV35,除此之外其實沒有太大的不同,但由於 NV36 出生的時間點正好落在顯示記憶體改版的更迭期間,因此 NV36 先後有支援 DDR、GDDR2 與 GDDR3 記憶體的版本出現。

spx5058

NV36 一樣使用了覆晶封裝技術,但或許是出於發熱量較低的考量,並沒有如同 NV35 一般在表面上加上金屬均熱板,而是使用晶片直接外露與散熱器接觸的方式,最終 NV36 以 GeForce FX 5700 系列的名稱發售,一共有 5700 Ultra (475/900 MHz + GDDR2)、5700 (425/500 MHz + DDR)、5700 LE (250/400 MHz + DDR,2004 年推出) 與最低階的 5700 VE (235/400 MHz + DDR,2004 年推出) 及最晚推出的 5700 Ultra GDDR3 (475/950 MHz + GDDR3) 五個版本。

sdk6055

值得注意的是,類似於 NV34 的情況,得益於散熱器的體積較小,因此 NV36 通常是採單卡槽的形式設計,不需要占用第二個擴充卡槽。

3DMark03 「優化」事件的續集

在 NV35 推出之後許多國外媒體非常驚訝的是,NVIDIA 在上次被抓包於 3DMark03 基準測試當中作弊之後並沒有學乖,有多個國外媒體在測試 GeForce FX 5900 時發現,明明在架構上沒有明顯的變化,但 FX 5900 卻能在 3DMark03 測試當中輕鬆勝過 ATI Radeon 9800 Pro 許多因此引發了各界的質疑,因此國外媒體向 Futuremark 取得發給參與測試發展計畫的合作夥伴用於測試與分析的開發版本 3DMark03 並在 FX 5900 上試跑,希望能從中找出問題 (開發版本與一般版本的 3DMark03 差異在於開發版本可以暫停並倒帶回去看每張顯示卡產出的畫面甚至切換檢視場景的視角)。

沒想到在一張一張看並稍微移動視角之後,媒體們看到的居然是畫面當中有許多像是下面這樣沒有完全正常渲染的結果 (這是 Game Test 4 的天空):

aef9805

這意味著 NVIDIA 的顯示卡並沒有正確把整個場景畫出來,而是僅有正確畫出在預設檢視視角的地方 (所以在沒切換視角的狀況下看不出問題,但只要視角一變,畫面就整個破掉了)。

aef9888

除此之外還有類似情況的場景則是出現在 Game Test 2,由於緩衝區並未被正確清除因此在本來應該是黑色星空的畫面上反而出現大量的白色圖形。

swx1291

這樣的狀況引起了大家與 Futuremark 公司的重視,Futuremark 在經過一系列內部測試與調查之後在 2003 年 05 月 23 日發表了一份措辭相當強烈的稽核報告,在標題當中直接點名 NVIDIA 透過驅動程式手段在 3DMark03 當中運用作弊試圖提高測試成績,Futuremark 提出的最直接證據是當他們試圖改變 3DMark03 載入畫面的某些部分之後,不同視角下的破圖問題竟然消失了,而且 NVIDIA GeForce FX 5900 Ultra 的測試成績從 5806 分一口氣跌到剩下 4679 分 (跌幅高達 24.1%)。

超過兩成的跌幅顯然不在誤差範圍之內,而 Futuremark 還更進一步在稽核報告當中清楚解析 NVIDIA 是怎麼透過驅動程式手段來做到這些事情的,例如透過載入畫面的特徵來辨識出是否正在執行 3DMark03 測試、透過驅動程式指示圖形晶片略過某些 3DMark03 下達的指令來提高處理速度、透過辨識 Futuremark 使用的 Vertex Shader 軟體來要求顯示晶片不將特定緩衝區 (標準視角畫面會用到的區域) 之外的部分清理乾淨等。

不過最慘的是 Futuremark 在測試的過程中竟然發現 ATI 也做了類似的事情,不過並沒有像 NVIDIA 那麼誇張,在改版之後大約降低了 2% 左右的測試成績 (NVIDIA 的十分之一)。在發佈稽核報告的同時,Futuremark 也同步發佈經過小幅修改的新版 3DMark03 (Build 330) 來解決這個問題 (透過改變一些不影響測試結果的資訊來讓晶片廠的驅動程式無法辨識出 3DMark03)。

不過故事並沒有到此結束,接下來比較有趣的是兩家圖形晶片大廠的反應,ATI 的反應比較平常,由公關部門主管出來坦承他們確實在驅動程式當中使用了一些技巧偵測 3DMark03,並在偵測到之後使用「最佳化的方式」來執行測試,並且承諾會在下一次發佈的 Catalyst 驅動程式當中取消這些優化手段,但 NVIDIA 就沒這麼乾脆了,NVIDIA 聲稱這些問題是該版驅動程式的小錯誤,會在之後進行修正,除此之外則不願多談,與此同時還放出消息指控 Futuremark 是因為 NVIDIA 退出 Benchmark Development Program 並且不願繳交每年高額的會費才挾怨報復,顯然是在偏袒 ATI 一方 (你相信嗎?從 GeForce FX 開始 NVIDIA 花在宣傳這些東西上面的錢早就超過 Futuremark 收的會費不知道幾倍了吧)

不過 NVIDIA 與 Futuremark 兩邊看似僵持不下的狀況卻在同年六月初突然有了戲劇性的變化,Futuremark 突然與 NVIDIA 共同發表公開聲明,聲明當中還提到「Futuremark 在深入了解之後,我們現在認定 NVIDIA 的所作所為是在驅動程式當中針對特定程式進行優化而不是作弊」,這篇聲明一出全球所有關心的人都譁然了,前不久還鬧得不可開交,現在居然還發起聯合聲明來了,簡直比八點檔還要戲劇化。

聯合聲明全文如下:

Futuremark Statement

For the first time in 6 months, as a result of Futuremark’s White Paper on May 23rd, 2003, Futuremark and NVIDIA have had detailed discussions regarding NVIDIA GPUs and Futuremark’s 3DMark03 benchmark.

Futuremark now has a deeper understanding of the situation and NVIDIA’s optimization strategy. In the light of this, Futuremark now states that NVIDIA’s driver design is an application specific optimization and not a cheat .

The world of 3D Graphics has changed dramatically with the latest generation of highly programmable GPUs. Much like the world of CPUs, each GPU has a different architecture and a unique optimal code path. For example, Futuremark’s PCMark2002 has different CPU test compilations for AMD’s AthlonXP and Intel’s Pentium4 CPUs.

3DMark03 is designed as an un-optimized DirectX test and it provides performance comparisons accordingly. It does not contain manufacturer specific optimized code paths. Because all modifications that change the workload in 3DMark03 are forbidden, we were obliged to update the product to eliminate the effect of optimizations identified in different drivers so that 3DMark03 continued to produce comparable results.

However, recent developments in the graphics industry and game development suggest that a different approach for game performance benchmarking might be needed, where manufacturer-specific code path optimization is directly in the code source. Futuremark will consider whether this approach is needed in its future benchmarks.

NVIDIA Statement

NVIDIA works closely with developers to optimize games for GeForce FX. These optimizations (including shader optimizations) are the result of the co-development process. This is the approach NVIDIA would have preferred also for 3DMark03.

Joint NVIDIA-Futuremark Statement

Both NVIDIA and Futuremark want to define clear rules with the industry about how benchmarks should be developed and how they should be used. We believe that common rules will prevent these types of unfortunate situations moving forward.