パッケージ
GeForce GTX 200
  • NVIDIA
  • 発表日:2008/06/16
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
GPUBenchで見る最新世代GPUの特徴
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2008/06/28 15:00

企画記事

GPUBenchで見る最新世代GPUの特徴

画像集#020のサムネイル/GPUBenchで見る最新世代GPUの特徴
画像集#021のサムネイル/GPUBenchで見る最新世代GPUの特徴
 NVIDIA,AMDともに最新世代のGPUが出揃い,熱い戦いを繰り広げている。
 待望の新世代製品「GeForce GTX 280」(以下GTX280)は,レビュー記事を見ても分かるように,なかなかのモンスターだ。GeForce 9800 GX2(以下9800GX2)ほどではないにせよ,消費電力も発熱も高く,扱いづらいGPUではある。しかし,ターゲットがハイエンドユーザーであれば,それは些細な問題であろう。パフォーマンスは,本来の年間2倍という方程式に従えば,9800GX2の倍(期間的には1.4倍くらいか)でないとおかしい気はするのだが,とりあえず,1コアにG92を2コア搭載した9800GX2と同等か速い程度の性能は叩き出している。ゲーム時の性能とあまり関係のない「3DMark06」でこそやや後れを取っているものの,肝心のゲームベンチでは,「ロスト プラネット エクストリーム コンディション」や「Half-Life 2: Episode Two」の低解像度時を除いてすべてトップスコアを出している。今後ドライバのチューンが進めばさらに安定した強さを見せることだろう。
 ベンチだと同程度ではあるものの,基本的に内部でNVIDIA SLI(以下SLI)動作をしている9800GX2に対し,シングルチップで動作しているGTX280はポテンシャルが高い。SLIは,SLIに最適化されたゲームでは十分な性能が出るものの,そうでないものについては,GPU1基分の性能しか発揮できない場合もある。同程度の性能であれば,シングルチップのほうが実効性能は上となる。

 かたや,「ATI Radeon HD 4850」(以下R4850)は,ハイエンドではなくミドルレンジの価格で登場した。最新世代であり,前世代のハイエンドから大きく改善されているが,ミドルレンジの製品である。これは重要だ。AMDは,シングルチップでミドルレンジからエントリーハイエンド,マルチチップでウルトラハイエンド製品を構成する戦略に出た。上位機種のATI Radeon HD 4870(以下R4870)もエントリーハイエンドの扱いである。R4870はようやくPCショップの店頭に並び始めたところなので詳しいパフォーマンスは置いておくが,R4850とストリーミングプロセッサ(SP)数は同じでも,動作クロックとメモリの違いで,1.2TFLOPSを叩き出す(もっとも,1.5倍の値段で1.2倍の演算性能なのでコストパフォーマンスからするとR4850のほうがミドルレンジ向きではないかと思われるのだが)。
 これらに対し,NVIDIAが真っ向からぶつけてきたのが「GeForce 9800 GTX+」(以下9800GTX+)だが,「GeForce 9800 GTX」(以下9800GTX)の価格改訂のほうがインパクトは大きい(ショップはつらいだろう)。9800GTXは,非常にコストパフォーマンスの高いGPUとなった。先日までハイエンドゾーンをカバーしていた製品だけに性能はまったく問題がない。ただ,ハイエンドでは当然だった補助電源を2個必要とする仕様は,ミドルクラスのGPUを買うユーザーにとってはややハードルが高い。SLI対応の電源を使っていた人なら問題ないが,ミドルレンジではあまり期待できない。電源を買い換える必要がある人も多いだろう。

  299ドル R4870
  229ドル 9800GTX+
  199ドル 9800GTX&R4850


 個人的には,199ドルラインだけで十分な気はするのだが……。
 AMDのハイエンド製品が出てくるのはこれからだが,カード上でATI CrossFire(以下CrossFire)仕様となるため,ドライバ側の対応が十分でないと性能を発揮できるかどうかは難しいところかもしれない。SLIに比べてドライバ対応で見劣りのするCrossFireだが,マルチチップ戦略に出る以上,ドライバ対応に力を入れていただきたいところである。


GPUBenchとは?


GPUBench公式サイト http://graphics.stanford.edu/projects/gpubench/
画像集#019のサムネイル/GPUBenchで見る最新世代GPUの特徴
 前置きが長くなったが,ここで最新のGPUはなにがどう変わったのかをちょっと調べてみたい。今回使用したのは,「GPUBench」というプログラムである。これは,まったく人気のないベンチマークテストプログラムで,現在では更新が停止されている。4Gamerで以前紹介したこともあるのだが,Windows用バイナリはあってもWindowsで計測することをほとんど考えていないっぽいのがマズかったと思われる。
 とはいえ,GPU内部の命令単位でパフォーマンス測定ができるなど,ほかのベンチマークテストとは趣の違うものとなっている。ゲームなどでの全体的なパフォーマンスを見るテストはいろいろあるのだが,機能単位に見ることができるという点でGPUBenchは貴重なのだ。
 古い話にたとえると,GPUでは,総合パフォーマンスを見る「Winstone」に対するものはいろいろあるのだが,機能パフォーマンスを見る「Winbench」に相当するものはほとんどないのだ。「ShaderMark」とGPUBenchくらいのものであろう。今回は,GPUBenchを使用して,各GPUの基本的な性格を見てみたいと思う。GPUBenchは,長い期間バージョンアップされていないものであったりするので,計測事項の妥当性などに疑問を持つ向きもあろうが,数値自体にはあまりこだわらず傾向中心で見てほしい。

 使用した機材は,

  GeForce 8800 GT(以下8800GT)
  GeForce GTX 280(以下GTX280)
  ATI Radeon HD 3650(以下R3650)
  ATI Radeon HD 4850(以下R4850)


である。旧世代品は手持ちの機材なので,ハイエンドではないことをお詫びしておく。シェーダ数も動作クロックも違うので,性能の比較には適していない。あくまで,それぞれのGPUの性格や,新しい世代のGPUではどのあたりが変更されたのかなどの参考にしていただきたい。


命令発行テスト


 まず,連続的に命令を発行していった場合のパフォーマンスである。基本演算命令と複雑な関数系の命令の性能が分かる。
 実際のGPUの使い方では単独の命令を連続して使用するようなことはあまりないと思われるが,これにより単独の命令の実行時間に相当するデータが取れると期待できる。ただし,この数値はワーストケースである。パイプラインにうまく埋め込まれた場合には,実行時間の長い命令でも全体のパフォーマンスに影響が出ないケースも考えられないではない。このあたりはスケジューラの性能やプログラマの力量や最適化の程度にもよってくることを念頭に置いていただきたい。

 まずATI Radeonのほうを見ると,ほぼ同傾向であることが分かる。ATI Radeon HD 3000系も同4000系も基本的にまったく同じ処理系と考えてよいだろう。シェーダアーキテクチャにほとんど変更はないようだ。
基本的な四則演算より速い命令があるのがちょっと奇異に見えるが,FLRは切り捨て,FRCは小数部だけ取り出す命令で,四則演算より必要なパラメータ数が少ないことで若干速くなったものと思われる。XPD(外積)はテンポラリレジスタを使うとかいうことなので,多少遅くなっているのだろう。全体に1クロックで実行できる命令と2クロック必要な命令がはっきりしており,非常に素直なグラフとなっている。
 なお,グラフは縮尺が個別に設定されているので,パフォーマンスを見たいときは,必ず拡大して目盛りを確認のこと。だいたいの性格だけ見たい場合は,大まかな形だけ見ればよい。

画像集#002のサムネイル/GPUBenchで見る最新世代GPUの特徴
ATI Radeon HD 3650
画像集#003のサムネイル/GPUBenchで見る最新世代GPUの特徴
ATI Radeon HD 4850

 GeForceでは,基本的に前世代と同じ傾向の部分も見受けられるが,GTX280では,掛け算と内積(DP3,DP4)の改善が理解の範囲を超えて著しいのが分かる。GeForce6 時代からダントツに速かった逆数演算(RCP)は,なぜか控えめな性能になっている。しかし,なぜGTX280では掛け算が足し算より速いのだろうか? 普通のALUでは考えられないことだ。
 そもそも,SP内に積和演算可能なALUと積和演算ができないALUの2種類のALUを持つとされているGeForce8シリーズなのだが,この結果を見る限り,積和演算可能なALUが1個(ないし2個)あるだけにしか見えない。GeForce GTX 200系列も同じ構成と思われるのだが,ADDもMADも同じスループットしか出ていない。FLOPS計算では,1クロックで3個の命令(積和演算+四則演算)を実行する仕様が窺えるため,2個のALUが搭載されているのは間違いない。積和演算専用のALUと普通のALUのセットなのだろうか? 
 関数のほうが四則演算よりパフォーマンスが出ているあたりは,なにが行われているのかまったく理解できない。確かDP3とDP4は2命令換算だっけと考えても数字が合わないので,このあたりで2個のALUが並列処理をしているのだろうか? 

画像集#004のサムネイル/GPUBenchで見る最新世代GPUの特徴
GeForce 8800 GT
画像集#005のサムネイル/GPUBenchで見る最新世代GPUの特徴
GeForce GTX 280

 同様に,スカラ演算を連続的に発行した場合のスループットを示したのが下の図である。1要素と4要素の演算を行っているが,GeForceでは,1要素のパフォーマンスが,だいたい4要素の4倍の性能になっていることが分かる。これは,通常はベクトル演算器として1ユニットであるべき演算ユニットがスカラユニットで構成されているためと思われる。4要素演算では,性能が1/4になるわけである。それでも十分速いのだが。掛け算がなぜか速いのも先ほどと同じである。

画像集#006のサムネイル/GPUBenchで見る最新世代GPUの特徴
ATI Radeon HD 3650
画像集#007のサムネイル/GPUBenchで見る最新世代GPUの特徴
ATI Radeon HD 4850
画像集#008のサムネイル/GPUBenchで見る最新世代GPUの特徴
GeForce 8800 GT
画像集#009のサムネイル/GPUBenchで見る最新世代GPUの特徴
GeForce GTX 280


ストリームスループット


 次に,簡単なピクセルシェーダ処理をしたときのスループットを見てみよう。FP(浮動小数点数)データによるテクスチャを読み出し,簡単な処理をしてFPバッファに書き込むという処理である。1秒間に何Mピクセルの処理ができるかを示している。
 R3650では,順調に数値は上がっているものの,横軸で示されるコンポーネント数と性能は無関係である。R4850では,コンポーネント数で少し傾斜がつくものの,それほど大きな違いではない。

画像集#010のサムネイル/GPUBenchで見る最新世代GPUの特徴
ATI Radeon HD 3650
画像集#011のサムネイル/GPUBenchで見る最新世代GPUの特徴
ATI Radeon HD 4850

 GeForceでは,これが劇的に変わる。単純なスループットでATI Radeonの倍くらいあるのだが,さらにコンポーネント数によって大きな差がある。4コンポーネントでの処理が1コンポーネントでの処理の1/4になっていることから,この部分でもスカラ式の演算器によって処理が行われていることが推測できる。

画像集#012のサムネイル/GPUBenchで見る最新世代GPUの特徴
GeForce 8800 GT
画像集#013のサムネイル/GPUBenchで見る最新世代GPUの特徴
GeForce GTX 280

 グラフィックスデータであれば,たいていはRGBないしRGBαなど,3コンポーネントないし4コンポーネントデータなので,純粋に画像を処理して書き戻す処理ではATI RadeonでもGeForceでも極端な性能差はないだろう。しかし,通常のグラフィックデータ以外のデータをテクスチャにテーブルとして保持して処理を進める場合(スペキュラとか,ディフューズのパラメータなど),まとめ処理が行われると大幅な高速化になると予測される。つまり,ディファードレンダリングなどで効いてくるわけだ。物理演算処理でも有効かもしれない。


演算精度


 GPUによる単精度演算値とCPUによる倍精度演算との差の最大値を記録したものである。
 いちばん誤差が出やすいのが逆数で,極端に0に近い値などでは精度が非常に重要になるのは容易に想像がつくだろう。R3650では,最大誤差が1000にも達している。逆数の誤差では絶対の自信を持っているというNVIDIAでさえ,ほかと比べると誤差の山は大きい。
 全体にGeForceのほうが精度は高いようだ。8800GTとGTX280ではまったく同じ結果となっている。
 R3650ではあちこちで大きな誤差を記録していたものが,R4850では極端なものはなくなっている。アルゴリズムなどの変更があれば実行速度でもっと差が出そうだが,その部分はほとんど変化が見られない。おそらくワーストケースでの例外処理を追加した程度ではないかと思われる。

画像集#014のサムネイル/GPUBenchで見る最新世代GPUの特徴
ATI Radeon HD 3650
画像集#015のサムネイル/GPUBenchで見る最新世代GPUの特徴
ATI Radeon HD 4850
画像集#016のサムネイル/GPUBenchで見る最新世代GPUの特徴
GeForce 8800 GT
画像集#017のサムネイル/GPUBenchで見る最新世代GPUの特徴
GeForce GTX 280


SP1個あたりの性能は?


 スペックだけ見ると,ATI RadeonのほうがSP数は多いのだが,SP1基内にあるALUはGeForceのほうが多く(1.5倍?),GeForceのほうがクロックは高い。FLOPS値自体はR4850の1Tに対し,GTX280が933.12Mとなっている。理論上の演算性能では大きな差はない。テスト結果から見るトータルのスループットはGeForceのほうが高くなっているようだ。性能差は,2〜3倍に達している。
 もともとSP数や動作クロック,使用メモリなどが違うのでテスト結果を比較することが公正とは思えないのだが,以下は乱暴ながら,あえてSP数とクロック数を揃えて換算し,同じスケールで命令発行テストの結果を並べてみた。SP1個が1GHzで動作した場合の数値に換算されている。
 なお,これらはすべてユニファイドシェーダによるGPUだが,DirectX 10アプリケーションでない場合は,規定のピクセルシェーダ数と頂点シェーダ数で決め打ちして使われているといわれている。テストで使用されているのはピクセルシェーダ部分と思われるのだが,実際にどの程度の比率でピクセルシェーダに割り当てられているのかは不明である。傾向として,ATI Radeon HD 3000系は頂点シェーダが多めな気はするのだが,確証はない。ここでは,全SPがピクセルシェーダに使用されていることを前提に換算しているが,実際には頂点シェーダ分の値は引いておくことが必要である。
 以上のような理由で単純な比較はできないことを承知のうえで眺めていただきたい。

画像集#018のサムネイル/GPUBenchで見る最新世代GPUの特徴

 以前から新しいGPUが出るたびに,こういった分析的なテストをしてほしかったのだが,誰もやってくれないので今世代のGPUと前世代のGPUを揃えて自分でデータを取ってみた次第だ。
 今回,GPUの機能テストを行うことで分かったこと,分からなくなったことなどがいろいろあった。現世代のGPU評価でGPUBenchを使用することが適切かどうかは不明であるが。少なくとも,出てきた数値にはそれなりの意味があるので,GPUの性格を知るうえでの参考にしていただきたい。数値の解釈は,上記のものが正解であるとは思っていないので,より詳しい人は独自に解釈してほしい。
 しかし,これらの数字を見る限りは,GeForceがもっともっとぶっちぎっていてもおかしくないのだが……。
  • 関連タイトル:

    GeForce GTX 200

  • 関連タイトル:

    ATI Radeon HD 4800

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:11月06日〜11月07日