マイコミジャーナル

知りたい!を刺激する総合専門サイト


  1. パソコン

  2. 特集
  3. Radeon X1000シリーズ徹底解説 - 新アーキテクチャで何が変わったのか

【特集】

Radeon X1000シリーズ徹底解説 - 新アーキテクチャで何が変わったのか

6 X1000シリーズのプログラマブルシェーダ - 頂点シェーダ・ピクセルシェーダ(1)

2005/12/30

西川善司

ここからは、Radeon X1000シリーズのシェーダの内部アーキテクチャに迫っていくことにしよう。

ATI Radeon X1000シリーズのハイエンドモデル、Radeon X1800 XTの全体ブロック図

NVIDIA GeForce 7シリーズのハイエンドモデル、GeForce 7800 GTXの全体ブロック図(参考)

Radeon X1000シリーズのプログラマブル頂点シェーダ

Radeon X1000シリーズのプログラマブル頂点シェーダは、下図のようになる。この図はRadeon X1800シリーズを表したものであり、頂点シェーダ(Vertex Processor)は8基描かれているが、Radeon X1600/X1300シリーズではその個数は異なる。

Radeon X1000シリーズのプログラマブル頂点シェーダ(Vertex Engine)のブロック図

各頂点シェーダには、4要素32ビット浮動小数点(FP32)からなるベクトル演算に対応した128ビットベクトル演算器(128bit Vector ALU)と、1要素FP32のスカラ演算に対応した32ビットスカラ演算器(32bit Scalar ALU)が内包されており、この2つのALUに対して同時命令発行が可能となっている。

Radeon X800/X850の時点で頂点シェーダの動的分岐は対応していたので、Flow Controlユニットがあるのも同じで、このアーキテクチャは実際のところ、Radeon X800/X850からほとんど変わっていない。拡張点を挙げるとすれば、Radeon X800/X850で256個だった命令スロット数が1,024個に、13個程度だったテンポラリレジスタが32個に増強された程度だ。

参考までに、GeForce 7系のプログラマブル頂点シェーダのブロック図も示しておくが、前段で解説したように、GeForce 7系ではVTF対応のために、頂点シェーダにテクスチャユニットが接続されているのが特徴となっている。

GeForce 7800シリーズのプログラマブル頂点シェーダ。VTFユニットがあるのがRadeon X1000シリーズとの最大の相違点。

Radeon X1000シリーズのプログラマブル・ピクセル・シェーダ(1)〜念願のピクセル演算精度の32ビット化、動的分岐機能の高効率支援

Radeon X1000シリーズの改良点はむしろプログラマブルピクセルシェーダに集中している。

まず、機能面における拡張点は2点。

1つ目は、Radeon 9700より3年間も続いた96ビット(=24ビット浮動小数点×4)のピクセル陰影処理精度が、ついにGeForce 6/7と同じ、128ビット(=FP32×4)へと高められたこと。

SM3.0世代のリアルタイム3Dグラフィックスでは、HDR(High Dynamic Range)レンダリングの導入が本格化してきており、その際、浮動小数点ピクセル演算精度の重要度が高まってきている。また、GPUで汎用科学技術計算などを行うGPGPU(General Purpose GPU)という応用活用においても、24ビット浮動小数点では精度が不十分だ。Radeon X1000シリーズのピクセル演算精度32ビット化は、時代が要求した機能拡張といったところだろうか。

2つ目は、SM3.0のトピックともいえる、ピクセルシェーダにおける動的分岐の対応だ。

ピクセルシェーダのブロック図に専用の分岐実行ユニット(Branch Execution Unit)が組み込まれているのがその証だ。機能的にはGeForce 6/7に追いついたということになるわけだが、競合よりもこの分岐実行ユニットのアーキテクチャが進んでおり、同一シェーダを動作させたときにRadeon X1000シリーズはパフォーマンス面で上を行く可能性が高い。

SM3.0世代GPUではプログラマブルピクセルシェーダにおいて動的分岐がサポートされた。Radeon X1000シリーズではその実行効率を上げる工夫が盛り込まれた。

Radeon X1000シリーズでは動的分岐命令に遭遇すると、分岐条件の吟味を開始したと同時に、分岐条件成立、不成立、それぞれのケースにおける分岐先の命令の実行を同時に開始してしまう。分岐条件の吟味が完了して飛び先が確定すると、"当たり"だった方の実行は継続し、"外れ"だった方の実行結果は破棄することになる。そう、これはCPUの分岐命令処理でいうところの投機実行に相当する。民生PC向けGPUとしては初めての仕組みだ。

ちなみに、GeForce 6/7における動的分岐処理は順次実行方式であるため、分岐命令に遭遇するとベクトル/スカラ演算器の実行が一時的に停止する。

なお、Radeon X1000シリーズの投機実行には制限があり、分岐条件成立/不成立の2つの分岐先が、それぞれベクトル演算とスカラ演算という組み合わせに限られる。よって、この投機実行を効果的に活用するためにはシェーダコンパイラの最適化が必要不可欠になる。とはいえ、この専用分岐実行ユニットにより、動的分岐の実行速度はGeForce 6/7を凌駕する可能性は高く、ATI自身も「ピクセルシェーダにおける動的分岐を実用レベルに引き上げた」と鼻息が荒い。


画像で見るニュース(パソコン)

スペシャル

  • Windows 7 大百科
  • パソコン/ビジネスPC メールマガジン創刊のお知らせ

特別企画


注目サイト