テストレポート
「GeForce PhysX」の実力検証。最適化タイトルでは安定した性能を発揮する一方,GPUの冷却が重要に
「GPU PhysX」と呼ばれることもあるGeForce PhysXは,グラフィックスメモリを256MB以上搭載するGeForce 8以降のGPUと,バージョン177.81以降の「GeForce Driver」(旧称:ForceWare),そして最新のPhysXランタイムを含む「NVIDIA PhysX System Software」がセットアップされた環境で動作する。つまり,対応GPUを搭載したグラフィックスカードを持っているユーザーなら,特別なハードウェアなしに――つまり,完全に無料で――PhysXアクセラレーションを利用できるようになったのだ。
一方,PhysX対応アプリケーションの多くは,(少なくともこれまでにリリースされたものだと)PhysX PPUをターゲットに作られているため,山ほどSP数があってもオーバースペックではないか(=SP数の多寡に応じてリニアにPhysX性能が上がるのか)といった疑問もある。SP数の違いがパフォーマンスをそれほど左右しないのであれば,ミドルクラス以下のGPUでも活路は見いだせそうだ。
……といったことの実際を検証してみよう,というのが本稿の主旨である。
[設定]タブからは,PhysXアクセラレーションの無効化,GeForce PhysX,PhysX PPUによるアクセラレーションの3パターンから,一つを選択可能。また,GeForce PhysX対応カードを2枚持っており,かつマザーボードが2枚差しをサポートしていれば,片方をGeForce PhysX用として利用できる。ここでいう「2枚差しをサポート」は,「NVIDIA SLI(以下,SLI)をサポート」という意味ではなく,純粋に2枚差しが可能ならOKだ。
なお,SLI構成時に,SLIを有効化した状態だと,片方をGeForce PhysX用にはできない。「シングルGPUパフォーマンスモード」に切り替えねばらならないので,こちらは要注意だ。
ただ,スケジュールの都合と,冒頭で述べたとおり,1枚で3D処理と物理シミュレーション処理を行うことの負荷を見てみたいこと,そして何より,「4Gamer読者が最初に試してみるとすれば,まずは手持ちのグラフィックスカード1枚であるだろうし,それがコスト的にも最もリーズナブルである」という理由から,今回はシングルカードでの検証を行うことにしている。
さて,用意したGPUはGeForce GTX 280と,疑似NVIDIA SLI(以下,SLI)構成としての「GeForce 9800 GX2」,さらにはG92世代のシングルGPUから,SP数の異なる「GeForce 9800 GTX+」「GeForce 9600 GT」さらにはGeForce 8世代のミドルクラスGPU「GeForce 8600 GTS」となる。さらに,PhysX PPUを搭載するPhysXアクセラレーションカードも併せてテストすることにした。
ちなみに,今回用意したグラフィックスカードのうち,ZOTAC International製品「ZOTAC GeForce 9600 GT DP」だけは,メーカーレベルでのクロックアップ(※例えばコアクロックは650→675MHz)が行われている。そのため今回は,NVIDIA製のオーバークロックユーティリティ「NVIDIA System Tools with ESA Support」(Version 6.02)を用いて,リファレンスどおりの動作クロックに手動設定を行った。
なお余談ながら,ZOTAC GeForce 9600 GT DPは,DisplayPortを持つなど,豊富なビデオ出力インタフェースが特徴の製品である。
テストに用いたGPUの主なスペックは表2にまとめた。PhysX PPUは,トランジスタ数が1億2500万であることと,組み合わされるメモリチップが容量256MBのGDDR3であることを除くと,詳細が明らかになっていないため,表への掲載を見送っている。GPUと同様に,ベクタ演算ユニットで構成されているはずだが,そもそもアーキテクチャが異なるため,単純に「トランジスタ数がGeForce 8600 GTSの半分以下なので,演算ユニット数も半分以下」という話にはならないので,この点は注意してほしい。
PhysX PPUカードのテストに当たって,グラフィックスカードはGeForce 9800 GTX+を用いている。
テストに用いたアプリケーションは,冒頭で紹介したGeForce Power Packから,
- NVIDIA Fluid Demo(Version 1.0.0.9)
- Nurien Tech Demo(Version Alpha 0.7)
- Metal Knight Zero(Version 0.6 Alpha)
- Unreal Tournament 3+PhysX MOD Pack(Version 2008/06/25)
- Warmonger - Operation: Downtown Destruction(Version 2.1)
の五つ。以下,本文,グラフ中とも,「GeForce」の表記を省略することをお断りしつつ,各アプリケーションごとに,テストを行っていきたい。
ゲームによって異なる傾向を見せる
PhysXアクセラレーション
Fluid Demoは,パーティクルを用いた流体シミュレーションで,およそ6万という膨大な数のパーティクルの状態を計算して,“流体らしい”アニメーションを実現しているのが特徴だ。
解像度は1024×768ドット固定。流体以外に動的なオブジェクトはほとんどないため,3D描画負荷は低い。PhysXを用いた物理シミュレーションのパフォーマンス「のみ」を見るデモといっていいだろう。
なお,フレームレートの計測には「Fraps」(Version 2.9.3)を利用し,フレームレート計測を1分間連続で行った平均をスコアとした。
その結果をまとめたのがグラフ1である。9800 GX2では,SLIの効果がまったく出ていないが,それを除くと,SP数と動作クロックに応じた結果となった。
PhysX PPUのスコアは,トランジスタ数を考えると高く,少なくとも,専用プロセッサであることのメリットが相応には感じられる。とはいえ,9600 GT以上のGPUによるGeForce PhysXには及ばないのも確かだ。
Nurienは,「3Dバーチャル空間を用いたソーシャルネットワーク」という位置付けのアプリケーションで,3Dエンジンとして「Unreal Engine 3.0」を用いているのがウリ。アバター(=キャラクター)の動きに合わせて,スカートやアクセサリ,髪といったオブジェクトが,物理シミュレーションでダイナミックに揺れるのが見どころだ。
結果はグラフ2のとおり。描画領域が1024×580ドットに固定されていることもあって,「Fluid Demoよりポリゴン数が多くても,スコアはFluid Demoに似た傾向になるのではないか」と推測していたが,9600 GTのスコアが上位陣に迫るなど,グラフはずいぶんと違った印象になっている。
なお,8600 GTSが出した約28fpsというスコアだが,実は,別途計測した「PhysXアクセラレーションをオフにした状態」,つまり,CPUのみでPhysXシミュレーションを行った状態よりもスコアが低い。8600 GTS搭載時に,Core 2 Extreme QX9770にCPU処理させると,34fps強のスコアが得られるのだ。
組み合わせるCPUにもよるが,8600 GTSだと,GeForce PhysXを利用しないほうがいい局面があることは,押さえておきたいポイントといえる。
また,8600 GTSでPhysXアクセラレーションを有効化すると,スカートのポリゴンが抜けたような描画になることが,とくに負荷の高いシーンで見られた。PhysXと3Dグラフィックス処理,両方の負荷に堪えられなくなっているためかもしれないが,8600 GTSクラスでPhysXアクセラレーションを行うのは,いよいよ現実的でない雰囲気になってきた印象だ。
同デモは,1280×1024ドットと1920×1200ドット,2種類の解像度が用意されており,Nurienと同じく,デモシークエンスの再生後に平均/最高/最低フレームレートを表示する,一種のベンチマークソフトになっている。
というわけで,結果はグラフ3のとおりだ。α版ということもあってか,8600 GTSとPhysX PPUではテストが止まってしまい,やや寂しいグラフになっているが,それはそうとして,9600 GTが高解像度(※グラフ中「High Res.Score」)で,上位陣から置いていかれる点が興味深い。
また,GTX 280が最高のスコアを残しているわけではないのも面白い。GPUアーキテクチャが同じで,SP数も同じ9800 GTX+と9800 GX2でスコアに大きな違いが生じていることから考えても,PhysXのパフォーマンスには,GPUの動作クロックがかなり影響している傾向を見て取れる。
Tornado PhysX。最初は“軽い”のだが,竜巻が猛威を奮い出すと,じわじわと“重く”なる |
Heart Ray PhysXマップは,安定して負荷が高い |
Tornado PhysXは,マップ内を竜巻(トルネード)が動き回るというマップで,もともとはPhysX PPU用の独占マップとして用意されていたもの(関連記事)。ゲームをスタートしてしばらくすると,竜巻によって吹き上げられるオブジェクトの数が増え,次第に“重く”なっていくのが特徴となっている。7月10日の記事でムービーを掲載しているから,興味のある人は併せてチェックしてみてほしい。
対するHeat Ray PhysXは,GeForce PhysX用に開発されたマップ(関連記事)。スタート時から霰(あられ)や塵などが画面を舞い,物理シミュレーション負荷がまんべんなくかかっているのが特徴だ。
テスト方法は,NVIDIAが配布しているベンチマーク用デモファイルを用いるという一点を除き,4Gamerのベンチマークレギュレーション5.2準拠。なお,8600 GTSは正常に動作しなかったため,スコアをN/Aとしている。
さて,まずはTornado PhysXについて,PhysXアクセラレーション有効時のハードウェア処理(グラフ4)と無効時のソフトウェア処理(グラフ5)を比較してみると,前者のスコアが後者を圧倒している。9600 GTは,高解像度でMetal Knight Zeroのときと同じく上位陣から置いて行かれるが,それでもフレームレートではソフトウェア処理と比べて1.7倍以上のスコアを叩き出した。
また,ここで注目したいのは,PhysX PPUのスコアが高いことと,全体的にGeForce上位陣のスコアが荒れ気味であることだ。もともとPhysX PPU用だったということもあり,ハイエンドクラスのGeForceにとっては負荷が軽すぎ,GPU以外のところにボトルネックが生じている可能性がある。
一方,GeForce PhysXデモンストレーション用という位置付けのHeat Ray PhysXでは,ずいぶんと“きれいな”グラフになった(グラフ6)。GeForce PhysXに最適化されたタイトルでは,SP数の違いが,ゲーム全体のパフォーマンスをより大きく左右するということなのだろう。
また,GPUアーキテクチャとSP数が同じであれば,動作クロックが重要になるということが,9800 GTX+と9800 GX2のスコアからは見て取れるほか,PhysX PPUは,解像度を問わず,安定したパフォーマンスを発揮する点も確認できる。ミドルクラス以下のGPUと組み合わせるのであれば,PhysX PPUもまだ使えそうだ。
ソフトウェア処理させたとき(グラフ7)との比較では,9600 GTで約2倍以上,そのほかのGeForceは2.5〜2.8倍。これはなかなかインパクトが大きい。
ステージはそれぞれ動的なオブジェクトの数が異なり,物理シミュレーションの負荷も異なるが,本稿では,GeForce PhysXの有効/無効時でスコアの違いが最も大きい――つまり,物理演算負荷が最も高い――Stage 5を利用することにした。
Warmongerは,解像度設定の自由度が高いので,今回は1024×768/1680×1050/1920×1200ドットの3パターンを計測している。その結果はグラフ8,9のとおりで,CPUによるソフトウェア処理ではまったくゲームにならないのが,GeForce PhysXやPhysX PPUの利用により,かなりの改善を見せることが見て取れる。
ただ,よく見ると,GeForce PhysX有効時の9600 GTが1024×768ドットで異常なまでに高いスコアを叩き出していたり,GTX 280は解像度が上がるにつれてスコアが上がっていたりと,はっきりいって不可解極まりない。Unreal Tournament 3のTornado PhysXで見られた傾向を,さらにひどくしたような印象だ。
NVIDIAによる旧AGEIA Technologies買収前に存在していた“PhysXアクセラレーション対応タイトル”では,GeForceで期待どおりの性能が得られない可能性があるといわざるを得まい。……それほど数が多くないのは救いだが。
GeForce PhysX使用時には
GPUの発熱が増加
パフォーマンステストでは,PhysXアクセラレーションをオフにしたりオンにしたりする動作を繰り返したのだが,作業を進めているうちに,PhysXアクセラレーション有効時にはGPUの発熱が大きくなるように感じられた。では,実際のところはどうなのだろうか。
ミドルクラス以下の一部製品を除いて,昨今のグラフィックスカードは,負荷によってGPUの温度が上がると自動的にファンの回転数を上げる仕様になっているため,PhysXアクセラレーション有効/無効時の違いは意外に計測しづらい。そこで,今回用意したGeForce搭載カードのうち唯一の1スロット仕様であり,冷却能力に限界があると思われる8600 GTSを用いて,GPU温度の上昇度合いをチェックすることにした。
テストに用いた8600 GTSの温度は,アイドル時だと57℃で安定する。そこで,GPU温度が57℃で安定した状態からNurienを1ターン実行し,NVIDIAコントロールパネルから温度変化のグラフをスクリーンショットとして保存。その結果を示したのが下の2枚で,上が,上がPhysXアクセラレーション有効時,下が無効時のものだが,その違いはピーク温度から明らかだ。よく見ると,上のほうが平均温度が高いことも分かる。
PhysXアクセラレーション有効時の温度推移(8600 GTS) |
PhysXアクセラレーション無効時の温度推移(8600 GTS) |
ちなみに今回のテスト中には,9800 GX2が,テスト中,“落ちる”現象に何度か直面し,スコアを取り直すハメになっているほか,NVIDIAのリファレンスデザインを採用した筆者手持ちの某社製8800 GTカードは,そんな現象が頻発し,テスト対象に加えることを断念した経緯がある。後者は,冷却能力の低さに定評のある(?),初期のリファレンスクーラー搭載モデルなので,発熱の上昇に耐えられなかったのだろう。
いずれにせよ,PhysXアクセラレーションは,GPU負荷が高まるため,GPUの発熱が増大することは間違いないようだ。冷却能力に課題を抱えるようなグラフィックスカードでは,発熱によるトラブルの発生する可能性があるので,そのあたりは,あらかじめ肝に銘じておいたほうがいい。
「あれ,消費電力のテスト結果は?」と思った人もいるだろうが,今回のテスト環境でシステム全体の消費電力をチェックする限り,PhysXアクセラレーションの有効/無効で,有意な違いは見いだせなかった。PhysXアクセラレーションを無効化すると,GPU負荷が下がる分,CPU負荷が上がるためのようである。
GeForce PhysX前提ならミドルハイクラス以上の
グラフィックスカードがお勧め
以上,全体として,一言でまとめづらい結果になったが,
- GeForce PhysXに最適化されたタイトルでは,SP数と動作クロックに応じたスコアが出やすい
- PhysX PPUに最適化されたタイトルだと,期待どおりのパフォーマンスが発揮されない可能性がある
- PhysXアクセラレーションでは追加のGPU負荷がかかるので,グラフィックスカードの冷却が重要になる
といった傾向は見えてきた。
今後,最適化されたタイトルが増えるという未来志向で論ずるのであれば,「グラフィックスカード1枚の構成でPhysXを積極的に用いたい場合は,ミドルハイクラス以上のGPU,できればハイエンドクラスのGPUが望ましい」ということになるだろう。
SP数が2桁のGPUだと,3D描画負荷が高まったときに,物理シミュレーションとの両立がかなり厳しくなる。「ちょっと試してみる」程度であれば,9600 GTクラスでも動かないことはないので,十分といえば十分だが,SP数が2桁台前半,つまりミドルクラス下位やエントリークラスのGPUを搭載したグラフィックスカードに,GeForce PhysXパフォーマンスは期待できそうにない。
一方,持っている人はあまり多くないと思われるが,PhysX PPU搭載カードは,まだ相応に価値がある。将来的には買い換えを迫られるはずだが,現時点で存在しているゲームタイトルであれば,そこそこのフレームレートを維持できているからだ。
NVIDIAは,10月にも,GeForce Power Packの第2弾をリリース予定である。本稿で触れた第1弾もデモとしては興味深かったが,ゲームタイトル的には既存のPhysX PPU対応タイトルか,その焼き直しに過ぎなかった。その意味では,そろそろ「Backbreaker」など,新作の足音が聞こえてきてもいい頃合いだろう。
いずれにせよ,最近のGeForce Driverだと,グラフィックスドライバとPhysXソフトウェアがセットで導入されるわけで,PhysXアクセラレーションを利用できるゲーム用PCの数は,AGEIA Technologies時代と比べて圧倒的に増えたことになる。NVIDIAと親しい関係のゲームデベロッパなら,そろそろUnreal Engine 3.0のEpic Games以外でも,本気になってきておかしくない頃合いだ。
これまで,技術的には期待できても,普及には期待が持てなかったPhysXだが,GeForce PhysXには,今度こそ期待できるかもしれない。
●PhysXソフトウェア最新版「8.09.04」の効果は?
本文でも触れたように,本稿の執筆に必要なテストをほぼ終えたタイミングで,NVIDIAからPhysXソフトウェアの最新版「8.09.04」がリリースされた。
これはNVIDIAいわく,「一部の環境で生じていた,Unreal Engine 3.0に関連する不具合を修正したバージョン」で,パフォーマンス面への影響はないとのこと。本稿で示したスコアには十分な意味があると分かり,筆者としては一安心(?)だが,それはそうとして,8600 GTSでUnreal Tournament 3が起動しないとか,スコアが荒れるとかいった部分は,試してみた限り修正されていないようだ。
とにもかくにも,GeForce PhysXは始まったばかりである。バージョンアップによって,PhysXパフォーマンスが向上したり,残っている不具合が解決したりといったことは,今後も頻繁に起こるだろう。なんといっても無料なので,GeForce PhysXに期待するユーザーには,積極的に新しいバージョンを使って,試してみることを勧めたい。
- 関連タイトル:
PhysX
- この記事のURL:
Copyright(C)2008 NVIDIA Corporation