NVIDIA GeForce FX 5900 Ultraの描画性能をチェックする
〜FutureMarkの“Cheatドライバ”対策パッチの影響は?



 これまで、“NV35”の開発コードネームで知られてきたNVIDIAの最新ハイエンドGPU“GeForce FX 5900”が、E3が開催される直前の5月12日に発表された。GeForce FX 5900ファミリーは、NV30の開発コードネームで知られるGeForce FX 5800ファミリーの後継となる製品で、より高い描画性能を発揮する製品として期待されている。

 そんな中、3Dベンチマークとして最もよく利用されている3DMarkシリーズを開発しているFutureMarkが、NVIDIAの最新ドライバが3DMark03のスコアを上げるために“Cheat(不正やインチキなどの意)”をしていると指摘する文書を同社のWebサイトに公開し、それを防ぐための最新パッチを公開した。

 今回は、GeForce FX 5900シリーズの最高グレードであるGeForce FX 5900 Ultraを搭載したリファレンスカードを入手したので、その性能と、さらに3DMark03の最新パッチで描画性能がどの程度変わってくるのかをチェックしていきたい。



●エンジン、メモリクロックは下がったが、メモリ帯域幅が向上したGeForce FX 5900ファミリー

 GeForce FX 5900ファミリーは、昨年の11月に発表されたNV30ことGeForce FX 5800ファミリーの後継となる製品で、GeForce FX 5800ファミリーの弱点を改良した最新GPUだ。ここ最近、ライバルのATI Technologiesが元気なこともあり、NVIDIAは3D描画性能競争で一歩遅れをとっているという見方が広がりつつあっただけに、このGeForce FX 5900ファミリーは、その状況を覆すという点で大きな意味がある。

 GeForce FX 5900ファミリーが、GeForce FX 5800に比べて改良されている点は、大きく以下の4点がある。

(1) メモリバス幅が256bit
(2) UltraShadowの機能が追加
(3) Intellisample HCTの機能が追加
(4) ピクセルシェーダがCineFX 2.0に拡張

 従来のGeForce FX 5800ファミリーでは、DDR2という高速なメモリデバイスを採用していたのだが、バス幅は128bitになっており、メモリのクロックこそATIのRADEON 9700 PROを上回っていたものの、256bit幅となっているRADEON 9700 PROがトータルの帯域幅では上回っていた。

 現在のGPUでは、メモリのクロックやレイテンシよりも、帯域幅がボトルネックになるシーンが少なくないため、そうした帯域幅を必要とする3DアプリケーションではGPU本来の性能を発揮できなくなっていた。

 今回のGeForce FX 5900ファミリーでは、メモリバス幅が256bitに拡張され、クロックはGeForce FX 5800 Ultraの1GHz(500MHzのDDR)に比べて下がり850MHz(425MHzのDDR、GeForce FX 5900 Ultra)になったものの、帯域幅は16GB/secから27.2GB/secへと引き上げられている。

 UltraShadowは、影のボリュームを増やすことでよりリアルさを増す手法で、Intellisample HCT(高解像度テクスチャ圧縮)は高効率なテクスチャ圧縮とキャッシュを行なうための手法で、いずれも3Dの表示クオリティを向上させるための機能だ。

 CineFX 2.0に関しては、詳細は明らかにされていないが、NVIDIAによれば、ピクセルシェーダエンジンにおいて浮動小数点演算を行なう場合、従来製品の2倍の性能を発揮するという。

 ただ、どのようにこれが実現されているのかなどに関しては明らかになっておらず、様々な憶測を呼んでいる。詳しくは、後藤弘茂氏による「まだまだ疑問が残るGeForce FX 5900のアーキテクチャ」を参照して頂きたい。

 なお、製品としては、GeForce FX 5900 Ultra(エンジン:450MHz/メモリ:850MHz)、GeForce FX 5900(エンジン、メモリクロックとも未公表)の2つのグレードが用意されており、メインメモリは最大で256MBまで搭載することが可能になっている。


●FutureMarkがNVIDIAを非難する文章とパッチを公開

 そうした中、3DMarkシリーズの開発ベンダとして知られるFutureMarkが、NVIDIAがリリースしたドライバ(Detonator FX V44.03とV43.51)を利用して同社のDirectX 9対応3Dベンチマークである3DMark03を実行したところ、いくつかの“Driver Cheats”(そのまま訳すとすれば、ドライバによる不正)を行なっていることを発見したと、同社のWebサイトで公開したのだ。

 下記のリンクがその問題の文章だ(英文、PDF)。
http://www.futuremark.com/companyinfo/3dmark03_audit_report.pdf

 FutureMarkは、この文章の中で以下の点が問題であると指摘している。

【1】3DMark03のスクリーンがロードされることをドライバが認識すると、3DMark03が発行するバックバッファークリアコマンドを無視して、フレームレートを引き上げる

【2】ゲームテスト2で利用されるバーテックスシェーダの処理で、ドライバはバックバッファクリアコマンドを利用するかしないかを調整する。それにより、星の表示が若干おかしくなる

【3】ゲームテスト4のバーテックスシェーダの処理で、処理を軽くするために2つの静的に切り取られた船を加える。

【4】ゲームテスト4のピクセルシェーダの処理で、水のシェーダ処理などを他のシェーダ処理などに置き換えることで性能向上を実現している(その向上率は2倍近いという)

【5】同じくゲームテスト4で、シェーダの処理が他のシェーダ処理などに置き換えられている

【6】ゲームテスト1のバーテックスシェーダの処理で、フレームレートの削減が行なわれている

【7】ゲームテスト3のバーテックシェーダで、スコアダウンをさける仕組みが採用されている

【8】ピクセルシェーダ2.0のテストにおいて、やはりスコアダウンをさける仕組みが採用されている

 となっている。これらの事象は、FutureMarkのベータプログラムに登録しているユーザーにより発見され、その後FutureMarkもこの現象を確認したという。これについて、FutureMarkは、くだんの文章の中で“Cheat”(不正、インチキなど)と呼んで、かなり激しい調子でNVIDIAのドライバを非難している。

 これに対するNVIDIAの広報による公式コメントはこうだ(なお、原文は英語であるため、筆者による翻訳であることをお断りしておく)。

 「NVIDIAはFutureMarkのベータプログラム(参加するには多額の費用がかかる)には参加していない。このため、当社は他のサードパーティのソフトウェアベンダと行なっているシェーダプログラムを作成するための協力を、FutureMarkと行なう機会がない。当社は、FutureMarkがどのような目的で我々の製品をおとしめるような話を作ろうとしているかはわからないが、Unreal Tournament 2003やDOOM3のようなリアルなゲームを利用したベンチマークから、GeForce FX 5900が今日の市場に置いて最も高速なGPUであることは明白だと考える。

 ゲームデベロッパーとは異なり、FutureMarkは彼らのアプリケーションをあるハードウェアベンダ(筆者注:もちろんNVIDIAのことを意味する)のハードウェアであまりうまく動かないようにしようとしている。なぜなら、そのハードウェアベンダが彼らに多額の資金を提供することを拒んだからだ。本当のゲームやアプリケーションこそが、そのハードウェアがエンドユーザーに対してどのような体験を与えることができるのかを示唆することができる。3DMark03は全くもってそうではないのだ。」

 FutureMarkの文章を読む限り、FutureMarkのベータテスタになることで、追加のツールなどが使えるようになり、今回のNVIDIAのドライバで発生していることなどがチェックできるようになるようだが、残念ながら、筆者はFutureMarkのベータテスタではないので、FutureMarkが指摘することが本当に事実であるのかを検証することは不可能だ。

 唯一出来ることと言えば、FutureMarkが公開した3DMark03のパッチ(Patch330)を当てることで、スコアがどのように変わるのかを確認することだろう。そこで、以下でそれを検証してみたい。


●確かにPatch330を当てることでGeForce FX 5900 Ultraのスコアは下がる

 それでは、3DMark03のパッチを当てる前と、Patch330を当てたあとのスコアを比較してみよう。比較対象としてGeForce FX 5800 UltraとATIのRADEON 9700 PROを搭載したビデオカードを用意した。なお、RADEON 9800 PROに関しては、手配の関係で間に合わなかったので、製品を入手し次第別のレポートとしてお伝えしていきたい。

【テスト環境1】
 GeForce FX 5900 UltraGeForce FX 5800 UltraRADEON 9700 PRO
CPUPentium 4 3.06GHz
チップセットIntel 865G
マザーボードIntel D865GBF
チップセットドライバIntel 5.00.1012
メモリDDR333/2ch
メモリモジュールPC2700(2.5-3-3)
容量512MB
ビデオチップGeForce FX 5900 UltraGeForce FX 5800 UltraATI RADEON 9700 PRO
ビデオメモリ256MB(DDR SDRAM)128MB(DDR SDRAM)128MB(DDR SDRAM)
AGP Apature Size256MB
ビデオドライバDetonator FX V44.03Detonator FX V44.03ATI CATALYST 3.4 6.14.01.6343
標準解像度1,024×768ドット/32bitカラー/85Hz
サウンドYMF-754R
EthernetカードIntel PRO/1000 MT Desktop Adapter
ハードディスクIBM IC35L040AVVN07-0(40GB)
光学ドライブTEAC DV-516E
フォーマットNTFS
OSWindows XP(英語版、SP1、DX9)

■ベンチマーク結果

【グラフ1】3DMark03 Build330 【グラフ2】3DMark03/1,024x768ドット/FSAAなし



【グラフ3】3DMark03/Pixel Shader 2.0(1,024×768ドット 32bitカラー FSAAなし)



 結果は、グラフ1の通りだ。すべての解像度および、FSAAのあり、なしに関わらず、3DMark03にパッチを当てた場合には、スコアが大きく低下している。高い解像度(1,600×1,200ドット)で16%程度、中間の解像度(1,024×768ドット)で19〜21%程度低下していることが判る。

 3DMark03のスコアである3DMark Scoreは、3DMarkのゲームテストとして収録されている4つのゲームテスト(GT)のスコアを傾斜配分して決定されるのだが、それぞれのGT(グラフ2)の結果を見ていくと、もう少し原因がわかってくる。

 例えば、1,024×768ドット/FSAAなしの解像度で見ていくと、GT1では12%の性能低下、GT2では12%の性能低下、GT3では6%の性能低下となっているのに対して、GT4では49%の性能低下、つまりスコアが半分になってしまっている。GT4は、DirectX 9の特徴の1つであるバーテックスシェーダ2.0、ピクセルシェーダ2.0を利用するテストだが、この結果が半分になってしまっている。さらに、ピクセルシェーダ2.0のテスト(グラフ3)を見るとピクセルシェーダの性能が、半分に落ち込んでいることがわかる。

 ここまで読んで、以前のGeForce FX 5800 Ultraのレビューを思い出した人はかなり鋭い。あの時は、ドライバをV43.00からV43.45にしただけで、ピクセルシェーダの性能が倍になった。そのことと合わせて考えると、要するにこのパッチ330というのは、この時に拡張された機能を、オフにする機能であると推測することができるのではないだろうか。

 なお、NVIDIAのドライバのバージョンアップでどのようなことが行なわれているかについては、合わせて後藤氏の「GeForce FXのパフォーマンス疑惑」も参照して頂きたい。


●負荷をかければかけるほど真価を発揮するGeForce FX 5900 Ultra

 それでは、3DMark03以外のベンチマークによる結果を見ていこう。ベンチマークには3DMark2001 Second Edition Build330(グラフ4)、Quake III Arena(グラフ5)、Code Creature Benchmark Pro(グラフ6)、Unreal Tornament 2003(グラフ7)を利用した。OpenGLベースのQuake IIIを除くと、いずれもDirectX 8世代のベンチマークということになる。

【グラフ4】3DMark2001 Second Edition 【グラフ5】Quake III Arena



【グラフ6】Code Creature Benchmark PRO 【グラフ7】Unreal Tournament 2003(flyby)



 3DMark2001 SEをのぞき、FSAAなし、4X FSAA、4X FSAA+8X 異方形フィルタリング(Anisotropic Filtering)ありという設定にし、解像度は1,024×768ドット、1,280×1,024ドット(Unrealは1,280×960ドット)、1,600×1,200ドットという3つの解像度でテストをした。

 すべての結果から言えることは、GPUに対する負荷が増える、4X FSAAありや、4X FSAA+8X 異方性フィルタリングなどの設定で利用した場合、GeForce FX 5900 Ultraが高いスコアを残したということだ。

 これは、GPUがというよりは、むしろビデオメモリの帯域幅が上がったためと、ビデオメモリが増えたためだと考えることができるだろう。GeForce FX 5900 Ultraは27.6GB/secの帯域幅+256MBメモリという組み合わせになっており、GeForce FX 5800 Ultraの16GB/sec+128MBメモリ、RADEON 9700 PROの20GB/sec+128MBメモリを上回る仕様となっている。こうした高負荷環境では、メモリ周りの性能が与える影響が大きいと言われており、今回の結果もそうした事情を反映したものだと考えるのが妥当だろう。


●現在のゲーム環境では高い性能を発揮

 以上のように、GeForce FX 5900 Ultraの真価は、大容量のビデオメモリと、256bit化による広帯域の実現というところにあると考えることができる。今回は、RADEON 9800 PROをテストすることができなかったので、最高性能かどうかの判断はできないが、少なくとも前世代と言えるGeForce FX 5800 UltraやRADEON 9700 PROは上回っているということができるだろう。

 ただ、価格はGeForce FX 5900 Ultra+256MBメモリという構成で、ボードレベルで499ドルと予想されている。従って、日本円では6万円台の半ばということになるだろう。これだけの価格に見合う差があるかと言われれば、多くの人にとっては「Yes」ということは難しいだろう。

 ただ、より負荷が高い環境でゲームをしたい、例えば、1,600×1,200ドット/32bitカラーで、FSAAや異方性フィルタリングなどをオンにして高いクオリティでプレイしたいというハイエンドのPCゲームユーザーであれば、意味はある。

 こうしたことから、とにかく少しでもPCゲームを快適にやりたい、そのための投資は惜しまないというコアなPCゲーマーにお勧めしたい製品といえるだろう。

 しかし、ベンチマーク結果については先にも述べたような事情から、鵜呑みにできるものではないことを覚えておいたほうがいいだろう。

□関連記事
【5月12日】NVIDIA、最上位GPU「GeForce FX 5900」を発表
〜300/400/500ドルの3ラインナップ
http://pc.watch.impress.co.jp/docs/2003/0512/nvidia.htm

バックナンバー

(2003年5月27日)

[Reported by 笠原一輝]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp 個別にご回答することはいたしかねます。

Copyright (c) 2002 Impress Corporation All rights reserved.