後藤弘茂のWeekly海外ニュース

期待はずれ? それとも期待通り?
GeForce FXの性能の謎




●GeForce FX(NV30)はどれほど速いのか

 果たして「GeForce FX 5800(NV30)」は「RADEON 9700 Pro(R300)」より速いのか遅いのか。なぜこんなに両者の性能は近接しているのか。今、全ての関心は、そこに集中しているように見える。NV30のベンチマーク結果が解禁となり、ボード性能が意外と高くないという結果がいくつかWebに掲載され、ニュースになり始めたからだ。

GeForce FXのプロトタイプ RADEON 9700のリファレンスカード

NVIDIAのGeoff Ballew Product Line Manager

 それに対して、NVIDIAでGeForce FXを担当するGeoff Ballew氏(NVIDIA, Product Line Manager)は次のように反論する。

 「いくつかのWebサイトがすでにテストを行なって、その結果、当社の製品の方が速いと宣言している。確かに、いくつかのモードではATIの方が速いが、それには単純な理由がある。いくつかのテストは1,280×1,024(ドット解像度)でノーAA(アンタイエイリアシング)で、いくつかのテストは1,600×1,200で4xAAだったりする。しかし、もし、1,280×1,024(ドット解像度)で、AAとAnisotropic Filteringをオンにしたパフォーマンスを見れば、当社の製品がベストだとわかるだろう。そして、これこそがスイートスポットで、実際にゲーマーがプレイするモードだ」

 つまり、リアルゲーマーが必要とするモードではGeForce FXが速く、それ以外のテストは実況を反映していないというわけだ。さらに、Ballew氏はNV30に対する過大な期待も影響していると言う。

 「Webサイトでは当社の製品が10~20%速いと認めている。しかし、人々は『うん、確かに速いけど、でも、思ってたほどじゃない』と言っているわけだ。それだけ人々の期待が高かったために、失望があるのだと思う。しかし、実際のところ、10~20%は非常に大きな差だ」

 つまり、NV30の性能に対する期待が過大すぎたために、反動が起きていると分析しているわけだ。期待との落差が生じた理由は明白だ。それは、NV30が初のコア500MHz/メモリ1GHzの高周波数GPUだからだ。だから、誰もが、NV30が性能面で大差をつけると予想していたわけだ。

 しかし、現状でのNVIDIAのリードの幅だと、NVIDIAが逆転される日も近いことを意味する。実際、ATI TechnologiesはR300と同じ0.15μmプロセス世代だが、ある程度高速化した次世代GPU「R350」の準備を着々と進めている。R350が今春登場すると、最悪の場合NV30が巻き返される可能性がある。実際、あるATI関係者は「我々はもう一度NVIDIAを蹴っとばすことができる」と豪語した。NVIDIAにとっては危険な状況がまだ続いている。

●じつは測れていないDirectX 9世代の真の性能

 もっとも、ここで言っている性能は、あくまでも既存のソフトを走らせた時の性能に過ぎない。つまり、DirectX 9世代の新しいソフトの性能ではない。

 それは、今、示されているベンチマーク結果が、DirectX 9世代GPUの本当の性能を示していないからだ。現行のベンチマークはProgramable Shaderを使っていない。辛うじて一部のテストで、DirectX 8レベルでShaderを使っているだけだ。

 だから、DirectX 9世代GPUで、DirectX 9のシェーダプログラムをガンガン使った性能は、ベンチマーク結果ではほとんどわからない。結局、計測しているのはProgramable Shader上でエミュレートしている、従来のハードウェアT&Lや固定機能マルチテクスチャリングの性能(+フィルタリングなどの固定機能性能)などだからだ。そのため、Shaderの性能は、直接的に測ることができていない。そうした比較は、あと数カ月して新世代のベンチマークが登場しないとできるようにならない。

 では、DirectX 9対応ベンチマークが登場して、Shaderの性能を比較できるようになれば、GeForce FXの性能は飛躍するのだろうか? NVIDIAの主張通りなら、そうなるはずだ。

 もともとNVIDIAは、NV30の利点のひとつはShaderの実効性能にある、と主張している。例えば、NVIDIAがNV30発表時にR350との性能比較の予測をしている。それによると、Vertex ShaderとPixel Shaderの両方で、NV30の実効性能はR350の1.5倍になるとNVIDIAは説明していた。その通りだとすると、Shaderの性能を直接比較できるようになれば、NV30はATIをはるかに凌駕することになる。

 だが、あるGPUメーカー関係者はそれでも計測の方法によっては、NV30の方が遅い可能性があると指摘する。それは、ShaderのアーキテクチャとDirectX 9世代のベンチマークそのものに原因がある。

●Carmack氏がNV30の性能についてコメント

 PCゲーム開発者の間で最高のカリスマのひとりJohn Carmack氏。DOOM IIIの開発者であるCarmack氏は、最近、同氏のコメントが掲載される「Plan John Carmack」でNV30とR300の性能について、突っ込んだ意見を公開し、話題を呼んでいる。

 Carmack氏のコメントは非常に長く、しかも込み入っているので詳しくは説明しないが、興味深いことにShader性能そのものにも言及している。

 まず、DOOM IIIを走らせた場合に、同じAPIだとR300の方が速く見えるが、NV30向けのベンダースペシフィックパスで走らせるとNV30が勝つという。その理由は、NV30だとShaderの処理するデータの精度によってパフォーマンスが異なるためだという。

 またCarmack氏は、現状ではPixel Shaderの処理スピードにおいては、NV30の方がR300よりかなり遅いと指摘している。だが、NV30の方がずっと多くの命令カウントをサポートできる利点があると言う。性能とアーキテクチャが、トレードオフになるわけだ。

 これをもう少し詳しく説明しよう。R300のPixel ShaderはDirectX 9の基本スペックに準拠している。だからシェーダプログラムの命令スロット数(プログラムに含むことができる命令の数)は、テクスチャ命令32、カラー命令64の合計96命令。それに対してNV30は最大で各1,024命令をサポートできる。この96命令というのは制約がきつすぎるという声は以前からあり、実際、Carmack氏もすでにR300でこの制限にぶち当たってしまっているという。つまり、NVIDIAはデベロッパが求める拡張を提供しているが、そのトレードオフとしてShaderの処理が遅いと言っているわけだ。

●アーキテクチャ拡張とトレードオフになっている可能性も

 もっとも、実際のところNV30のPixel Shaderがどの程度の効率なのかはまだわからない。また、現在の性能が最高ではなく、今後コンパイラなどで性能が変わる可能性がある。それに、Shaderのようなプログラマブルな演算ユニットだと、命令によってスループットが異なり、簡単に性能を比較はできないと思われる。実際に使われるシェーダプログラムのパターンに沿って計測するしかない。ところが、まだ典型パターンはわかっていない。

 だから、Shaderの性能については、現状では早計には言えない。誰にも言えない。しかし、NV30の方がShaderが遅いケースがあるというのは、論理的に納得できる。それは、物理的なトレードオフでどうしてもそうなってしまうからだ。

 NV30はR300とほぼ同じトランジスタ数(1億2,000万クラス)を搭載する。そして、ピクセルパイプは同じ8本だ。だが、R300のShaderはDirectX 9のベーススペックであるのに対して、NV30は命令スロット数を増やしサポートする命令種を増やした。また、データ精度はR300が96bit浮動小数点なのに対して、NV30は128bit浮動小数点となっている。

 これらが意味することは明確で、NV30の方がR300よりShaderが複雑になっている。ところが、使えるトランジスタ数は変わらない。そうすると、NV30の方が原理的に性能が犠牲になりやすい。演算ユニットのデータ精度を上げ、より複雑にした分、本来ならよりトランジスタが必要となる。しかし、ダイサイズ(半導体本体の面積)の制約から、トランジスタ数は増やせない。アルゴリズムや回路設計でカバーできるが、限界はある。そうすると、高速化のためにトランジスタを割きにくくなる。これは物理的な制約で、どうしようもない。

NV30のウェハとチップ NV30のダイ

 例えば、いちばん極端な例は128bit演算をするのに、128bit演算ユニットを持たずに、64bitの演算ユニットで処理してしまうような手法がある。そうすると処理性能はガクンと落ちるがトランジスタも大幅削減できる。そこまで行かなくても、トランジスタを制限すると、やはり性能が落ちる。

 また、DirectX 9でShader(アセンブラライク)命令が定義されていても、GPU側のインプリメントはメーカーによって異なる。あるGPUメーカー関係者は、DirectX 9側では1命令でも、GPUのハードウェアレベルでは複数の命令に分解して実行している場合などがあると指摘する。ハードウェアの制約からそうなるわけだが、その分実行にサイクルが必要になり、性能が落ちる。

 実際のところ、現状ではNV30のShaderの効率はわからない。そのため、推測するしかないが、原理的に言うとトランジスタ数を抑えて機能を増すと、性能は犠牲になりやすい。ということは、NVIDIAがDirectX 9以上にProgramable Shaderのアーキテクチャを拡張しようと決定した瞬間からトレードオフが始まっている可能性がある。だから、もしShaderの性能が特定のケースで低かったとしても、それが即、NV30の設計が悪いということにはならない。性能とアーキテクチャ拡張のどちらを取るかのデザインチョイスで、後者を取ったという可能性がある。

 また、両社のアーキテクチャが大きく異なることも影響している可能性がある。そのあたりは、次回のコラムで説明したい。


□関連記事
【1月16日】GeForce FXのピクセルパイプは8本、テクスチャユニットは分離
http://pc.watch.impress.co.jp/docs/2003/0116/kaigai01.htm
【2002年12月20日】GeForce FXの秘密
http://pc.watch.impress.co.jp/docs/2002/1220/kaigai01.htm
【2002年12月18日】製造コストが非常に高い? GeForce FXの勝算
http://pc.watch.impress.co.jp/docs/2002/1218/kaigai01.htm
【2002年12月11日】NVIDIAインタビュー(上)
~GeForce FXの高クロックと高パフォーマンスの秘密
http://pc.watch.impress.co.jp/docs/2002/1211/kaigai01.htm
【2002年12月11日】NVIDIAインタビュー(下)
~プログラム性と性能の両立を重視するGeForce FX
http://pc.watch.impress.co.jp/docs/2002/1211/kaigai02.htm
【2002年11月20日】ついにベールを脱いだNVIDIAの次世代GPU「GeForce FX(NV30)」
http://pc.watch.impress.co.jp/docs/2002/1120/kaigai01.htm
【2002年11月19日】NVIDIAが次世代GPUのNV30をGeForce FXとして正式発表
http://pc.watch.impress.co.jp/docs/2002/1119/comdex04.htm

バックナンバー

(2003年2月6日)

[Reported by 後藤 弘茂]


【PC Watchホームページ】


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

Copyright (c) 2003 Impress Corporation All rights reserved.