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

シェーダを搭載したNVIDIAの携帯向けGPUコア「GoForce 3D」




●MediaQの買収で携帯向けGPUに参入したNVIDIA

 NVIDIAは2003年8月に携帯機器向けのグラフィックスチップベンダーMediaQを買収した。これまで、携帯系の組み込み向けGPUの経験がなかったNVIDIAは、MediaQの技術による携帯機器向けメディアプロセッサ「GoForce」シリーズを投入。この新市場に足を踏み入れた。ライバルATI Technologiesの「Imageon」に続いたことになる。

 現在のGoForce 4000/3000は2DグラフィックスにMPEG-4やJPEGのハードウェアコーデック、ビデオキャプチャなどを組み合わせた製品。しかし、同社の本当の狙いは、GoForce 4000/3000に続く、3Dグラフィックス世代のコア「GoForce 3D(AR10)」コアを使った製品にある。

 GoForce 4000/3000は、アーキテクチャ的には実質MediaQ時代の開発。そのため、NVIDIAになってからのコアはGoForce 3Dが最初になる。GoForce 3Dコアに周辺機能を統合した次世代GoForceは、現在サンプル中で、開発キットが顧客に配布されいる。GoForce 3Dでは、NVIDIAとMediaQ両社の積み上げてきたノウハウが結集された。その最大の特徴はプログラマブルシェーダを“低消費電力化のために”搭載したことにある。

 これは、これまでのGPUの常識からは逆説的に聞こえる。というのは、一般的に、プログラマブルハードの方が、固定機能のハードよりも、消費電力あたりの処理効率が悪いからだ。実際、PC向けGPUでは、プログラマブルシェーダ時代になってから、ますます消費電力が増えている。ところが、GoForce 3Dでは、逆にシェーダを使うことで消費電力を低減できるという。その根拠は2つある。

(1)完全にシェーダ前提に作ると3Dグラフィックスパイプ自体を低消費電力化できる
(2)シェーダを多用途に使うことで、システム全体の消費電力を下げられる

 (1)の3Dパイプラインの低消費電力化は、パイプラインの短縮と固定機能ハードの削減で実現する。

 パイプラインを短縮することで、消費電力の低減を図るというのは、IntelのPentium Mのアプローチと同じだ。長パイプラインのPentium 4に対して、Pentium Mはパイプを比較的短く止めることで、効率化を図っている。似たようなことを、GoForce 3Dでも行なうわけだ。

●シェーダ中心にアーキテクチャを切り替える

 NVIDIAによると、伝統的な固定ハードウェアの3Dパイプラインは、200あまりステージで構成されているという。それに対して、GoForce 3D系だと50程度のステージに削減できるという。それは完全にシェーダ中心に実装したからだ。

GDCで示された3Dグラフィックスでの省電力の可能性の例。画面上の多くの部分が、フォグやアルファテスト、ブレンディングなどを使っていない。つまり、その分の消費電力を削減できる可能性がある

 PC向けGPUの200ステージは、90nm版Pentium 4(Prescott)の31ステージよりもはるかに長い。これは、3Dグラフィックスはストリーミング処理なので、レイテンシが長くてもスループットさえ速ければ問題がなかったためだ。そのため、伝統的な3D GPUでは、パイプラインを細分化することで高速化を図ってきた。

 また、固定ハード型の実装の場合は、各処理に特化した専用ユニットを設けていた。例えば、マルチテクスチャを実現する場合には各パイプに複数のテクスチャユニットを備え、異なるステージで並列でテクスチャ処理を実現していた。現在のPC向けGPUは、プログラマブルシェーダを備えているが、同時に固定ハードのステージも多数残している。これは性能のためで、そのためPC向けGPUでは、パイプラインは依然として長い。

 固定ハードのアーキテクチャの場合、各ピクセルは、パイプラインの全ステージを通る必要がある。シンプルな処理しか必要のないピクセルでも、200ステージを費やす。そして、3Dグラフィックス時には、パイプラインの全ユニットにクロックが供給されていた。つまり、実際には処理を行なわないステージが、無駄に電力を消費していたわけだ。

 そこで、GoForce 3Dコアでは、シェーダを中心に完全に3Dパイプを再構築することで、パイプラインを短縮し、低消費電力化を図るという。GoForce 3Dでは、ジオメトリ処理は固定ハードウェアで実装するが、ピクセル処理はほとんどをプログラマブルシェーダに吸収している。それによって、固定ハードによるピクセルステージの大半を削減してしまう。

 「伝統的なアーキテクチャでは、フォグやアルファブレンディングのステージがある。しかし、我々のアーキテクチャでは、それらは全てシェーダで行なう。フォグやアルファブレンディングのために、ステージを費やす必要がない」とNVIDIAでGoForceを担当するManish Singh氏(Product Manager)は説明する。

 つまり、PC向けGPUが備えるフォグやアルファブレンディングといったピクセル処理ステージと専用ハードを削除、その分、それらの機能を使わない時の消費電力を低減したわけだ。

 また、GoForce 3Dでは最大6テクスチャまでのマルチテクスチャをサポートする。これも、6個のテクスチャユニットを装備する代わりに、1個のシェーダユニットで実現する。ただし、レイテンシの長いテクスチャフェッチの場合、シリアルに処理を行なうと膨大な時間をロスしてしまう。そのためGoForce 3Dのシェーダでは複数のテクスチャフェッチ命令を発行しておいて、テクスチャをまとめて束ねられるようになっているという。それによって、無駄なサイクルやメモリ帯域の消費を避けるという。

図:GoForce 3Dのグラフィックスパイプライン
PDF版はこちら

●PC向けGPUの15倍の電力効率

NVIDIAでGoForceを担当するManish Singh氏(Product Manager)

 NVIDIAによると、GoForce 3Dのアーキテクチャによる省電力効果は絶大だという。

 「伝統的なGPUでは100Mpixel/secあたり750mWを消費している。それに対して、GoForce 3Dアーキテクチャでは75Mpixel/secに対して35mW程度しか消費しない。ほぼ15倍も、電力効率がいい」とSingh氏は言う。

 つまり、GPUアーキテクチャのレガシーを排除し、プログラマブルな演算ユニットであるシェーダ中心に組み替えたら、15倍も電力効率がよくなったというわけだ。もちろん、パイプラインの効率化だけではなく、きめ細かなクロックゲーティングやリーク電流の少ない高しきい電圧(Vt)トランジスタの多用など様々な省電力技術と組み合わせた結果だが。ちなみに、MediaQ系の現在のGoForceは、MediaQのファウンドリだったUMCでそのまま製造しているが、GoForce 3Dコアの製品のファウンドリはまだ明らかにされていない。

 シェーダ中心アーキテクチャの効用は電力効率だけではない。「ハードウェアを削減することで、チップのトランジスタ数も削減できる」(Singh氏)という利点もある。GoForce 3Dコアは、5~600万トランジスタで実装しているという。

 もちろん、このアーキテクチャにも弱点がある。シェーダでより多くのサイクルタイムを費やすようになるため、複雑な処理になると1パイプあたりのスループットは悪くなる。そのため、デスクトップPCでは不利になりそうだ。

 しかし、携帯機器向けと考えるなら、このアーキテクチャで問題は少ない。それは、画面解像度が限られるため、必要とされるピクセル処理量はデスクトップPCと比べて桁違いに小さいからだ。

 また、GoForce 3Dアーキテクチャの場合、シェーダを複数化することで、処理性能を上げるスケーラビリティがある。「将来的には、シェーダは確実にマルチプルパスになるだろう。それは疑いがない方向性だ」とSingh氏は言う。つまり、パイプを深くしてスループットを上げるのではなく、シェーダの並列性を高める方向へ向かうわけだ。

GoForce 3D ENGINEの主な仕様
・Geometry transform engine (float and fixed point)
・16-bpp (RGB565) color with 16-bit Z
・40-bit color pipeline(internal)
・8 surfaces (color, Z, texture 1-6)
・Programmable pixel shader
・Fog, perspective correction
・Alpha Blending
・Mip-mapping
・Bilinear/trilinear filtered texturing
・4/8-bit palettized texture, 16-bit(1555ARGB, 565RGB, 4444ARGB)
・Multi-texture support (up to 6 simultaneous textures)
・Super-sampled antialiasing
・Compressed texture support (DXT) up to VGA
・OpenGL ES 1.0/1.1 compliant
・D3Dm compliant
・5MTriangles/sec(90nm版)

●本格的なシェーダ時代はあと1年先

 シェーダの搭載は、もちろんグラフィックスの品質の向上にも寄与する。GoForce 3Dのマルチテクスチャサポートが好例だが、プログラマブルハードなので、サイクルタイムさえかければ固定ハードでは不可能な柔軟な処理が可能になる。

 ただし、現在の段階では、PC向けGPUのシェーダのようなユーザープログラマブルな使い方はできない。実際、今年3月のGDC(Game Developers Conference)でのGoForce 3Dアーキテクチャのプレゼンテーションでも、シェーダプログラマビリティの説明はなかった。

 「エンジン自体はプログラマブルシェーダだ。しかし、最初の世代では、我々はユーザープログラムを考えていない。だから、GDCのようなソフトウェア開発者側への説明の場では、プログラマビリティに触れなかった。開発者は、APIレイヤでカバーされたシェーダを使うことになる」とSingh氏は説明する。

 この背景には、現状では組み込み向けライブラリであるOpenGL ESとDirect3D Mobile(D3Dm)のどちらもまだシェーディング言語を実装していないという事情がある。そのため、来年までは、シェーダのプログラマビリティはソフトウェア開発者側からは使えない。

 しかし、APIが整っていくと、シェーダは本来の強みを発揮するようになる。2005年後半から2006年には、真の意味でのシェーダアクセラレーテッドなプロセッサになるわけだ。そして、そのフェイズで、シェーダは3Dグラフィックス以外にも、様々な処理へと応用されていくことになると推定される。

 GoForce 3Dアーキテクチャを見る限り、シェーダ型の組み込み向け3D GPUは、固定3Dハードをできる限りプログラマブルシェーダに置き換える方向にあるように見える。PC向けGPUが、既存のパイプラインにシェーダを加える形で進化してきたのに対して、組み込み向けメディアプロセッサはシェーダ中心に新しい骨組みを備えつつあると推測される。

 そのため、組み込みメディアプロセッサでは、チップ規模に対してシェーダの比率が高くなることが推測できる。つまり、シェーダプロセッシングパフォーマンスが比較的高くなる。これは、前回説明したシェーダを多用途に使おうという現在の流れに合致する。つまり、3Dグラフィックスのためのシェーダを搭載するというより、汎用のベクタプロセッシングユニットを用意。3Dではシェーダとして使い、他のマルチメディア処理ではベクタユニットとして使うという考え方だ。

 だが、こうしたメディアプロセッサ化の方向は、アプリケーションプロセッサを強化しようというIntelやARMなどのプロセッサベンダーと真っ向からぶつかることになる。

□関連記事
【7月30日】【海外】今後1~2年で携帯電話にプログラマブルシェーダが搭載
http://pc.watch.impress.co.jp/docs/2004/0730/kaigai105.htm
【7月29日】【海外】SCEIがPlayStation 3にOpenGL ES 2.0採用か
http://pc.watch.impress.co.jp/docs/2004/0729/kaigai104.htm

(2004年8月2日)

[Reported by 後藤 弘茂(Hiroshige Goto)]


【PC Watchホームページ】


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

Copyright (c) 2004 Impress Corporation All rights reserved.