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

今後1~2年で携帯電話にプログラマブルシェーダが搭載




●一足飛びにシェーダへと進化する組み込みグラフィックスチップ

 「おそらく、2006年にはプログラマブルシェーダでアクセラレートされた携帯電話を見ることができるだろう」

Khronos GroupのNeil Trevett氏

 組み込み機器向けの3DグラフィックスAPI規格「OpenGL ES」を策定する業界団体Khronos Group(クロノスグループ)のNeil Trevett氏(President, Khronos Group; Chairman, OpenGL ES Working Group; Senior Vice President, Market Development, 3Dlabs)は、携帯電話の将来像をこう語る。

 携帯電話にシェーダユニットを搭載したグラフィックスプロセッサが載り、シェーダプログラムが走るようになる。PCグラフィックスでこの1~2年で実現されたシェーダによる3Dグラフィックスが、近い将来の携帯電話でも実現する。これが、現在グラフィックス業界が描いているビジョンだ。

 PC向けのGPUは、長い期間をかけてシェーダを搭載するプログラマブルプロセッサへと進化してきた。ところが携帯機器向けのグラフィックスチップは、中間を省いて、一足飛びにプログラマブルプロセッサへと進化しようとしている。その背景には、マルチメディア端末へと変貌しつつある携帯電話電話と、そこで求められるデバイスの特性がある。

図:PC向けGPUと組み込みメディアプロセッサの進化の違い
PDF版はこちら

 今のところ、携帯組み込み向けグラフィックスチップの進化を牽引しているのはKhronosだ。Khronosは、携帯電話をターゲットにした最初の3DグラフィックスAPI規格であるOpenGL ES 1.0を、2003年7月のSIGGRAPH(CG関連カンファレンス)でリリース。さらに、今夏のSIGGRAPHにはスペックを拡張したOpenGL ES 1.1をリリースする予定だ。

 「OpenGL ES 1.0は、ソフトウェアソリューションを考慮して開発した。そのため、機能的には最小限だった。OpenGL ES 1.1では、もっと機能を増やす。それは、3Dグラフィックスハードウェアを搭載した携帯電話が増えつつあるためだ。ハードウェアアクセラレートのための機能の付加が必要になった」とTrevett氏は説明する。

 実際には、OpenGL ES 1.0が発表された時には、すでにATI Technologiesの携帯機器向け3Dグラフィックスチップ「Imageon 2300」が存在していた。ATIはOpenGL ES 1.0リリース後、即座にImageon 2300での対応を発表した。OpenGL ES 1.1にも対応すると見られる。そして、この市場には、NVIDIAを含めた複数のベンダーが、3Dチップを投入しつつある。

 ちなみに、Microsoftも携帯機器向けの3DグラフィックスAPI「Direct3D Mobile(D3Dm)」をWindows CE 5.0のために用意した。こちらも、3Dグラフィックスハードウェアを想定した仕様になっている。D3Dmが不利なのは、この市場では、PCのようにMicrosoftがOSの独占力を備えていない点だ。そのため、Microsoft OSに縛り付けられているD3Dmは、現状ではOpenGL ESほどの勢いがない。しかし、Microsoft OSがこの新市場でも有力になれば、D3Dmも自動的に有力なAPIになるだろう。

図:OpenGL ESのロードマップ
PDF版はこちら

●OpenGL ES 2.0がシェーダ化を牽引

 OpenGL ES 1.0/1.1で先鞭をつけたKhronosが、次に開発しているのが「OpenGL ES 2.0」だ。OpenGL ES 2.0では、固定機能APIも強化されるが、目玉はシェーダのサポートにある。

 「OpenGL ES 2.0は来夏のSIGGRAPHでリリースの予定で、フルシェーダ機能が実装される。デスクトップでのプログラマビリティがそのまま組み込みデバイスにももたらされる。デスクトップと基本的に同じシェーディング言語が使えるようになる」とTrevett氏は説明する。

 ただし、実装はOpenGL 2.0と若干異なる。最大の違いは、プリコンパイルドシェーダを検討している点。つまり、事前にコンパイルしたシェーダプログラムを、プロセッサ上のシェーダハードウェアで走らせる仕組みを作ろうとしている。

 「OpenGL ES 2.0では、シェーダのプリコンパイルが必要だと考えている。デスクトップのOpenGLでは、シェーダは実行時にランタイムでコンパイルしていた。ドライバに含まれているOpenGLコンパイラが、シェーダのソースコードを直接ハードウェアのバイナリに変換している。しかし、携帯電話ではリアルタイムコンパイルは避けたい。それは、(コンパイルの分)消費電力が増え、メモリのフットプリントも必要になってしまうからだ」とTrevett氏は言う。

 OpenGLでは、クロスプラットフォームのポータビリティを重視して、リアルタイムコンパイルを行なっている。しかし、組み込み用途では、性能と消費電力などのトレードオフから、プリコンパイル方式の導入も検討している。ポータビリティとの両立のために、何らかの中間言語を使うソリューションも考えているという。

 「ただし、OpenGL ESのカバーするプラットフォームそれぞれでニーズは異なる。そのため、ひとつの方法に決定するのではなく、選択ができるようにする。あるプラットフォームでは、(コンパイル済みの)バイナリを望み、別なプラットフォームでは中間言語コード、別なプラットフォームではシェーダソースコードを望むかもしれない。そうしたニーズに柔軟に対応できるようにする必要がある」(Trevett氏)

 こうして見ると、OpenGL ESは、OpenGLの単なるサブセットではなく、組み込み向けに特化してアーキテクチャを改良したプラットフォームへと発展しつつあることがわかる。

図:OpenGL 2.0/OpenGL ES 2.0のシェーダ実行の仕組み
PDF版はこちら

●NVIDIAは次世代チップでシェーダを搭載

 シェーダへと向かうOpenGL ES 2.0に合わせて、いくつかのシェーダ搭載チップの開発が進められているという。実際にはNVIDIAがOpenGL ES 2.0よりも前に、プログラマブルシェーダを搭載したメディアプロセッサを出す予定だ。

 NVIDIAは、ATIのImageonと同様に携帯機器を狙った「GoForce」シリーズをリリースしている。現在の製品は2Dグラフィックス(GoForce 4000/3000)だが、3D版の開発も終了しており、すでに開発キットを顧客に配布し始め、ほぼレディの状態にある。そして、このGoForce 3Dアーキテクチャで、NVIDIAはピクセルシェーダを採用した。おそらくATIも、似たようなシェーダ搭載型Imageonのプランを持っているか検討しているだろう。

 NVIDIAの3Dチップが採用されれば、OpenGL ES 2.0より前に携帯電話にシェーダが載ることになる。ただし、その場合、シェーダはプログラマブルには使われない。NVIDIAはシェーダを当面は固定機能のAPIでカバーしてしまい、デベロッパがプログラムはできないようにするという。OpenGL ES 2.0までは、API側のスタンダードが決まらないからだ。そのため、本格的にシェーダアクセラレートされた携帯電話が登場するのは2006年頃となる。

 Microsoftもこうしたハードの進歩を睨んでシェーダサポートをD3Dmに加えてくる可能性がある。そうなると、APIとハードの両輪がうまく回り始めることになる。また、NVIDIAも、いったんスタンダードが決まったら、自社のシェーディング言語「Cg」をGoForceに対応させることを検討しているという。

メディアプロセッサへと向かう携帯機器向けグラフィックスチップ

 「シェーダがすぐに携帯デバイスに来る。私でさえ、この速さには驚いている」とTrevett氏自身もシェーダ化への勢いに目を見張る。なぜ携帯機器向けのグラフィックスチップはシェーダ搭載へと走るのか。その理由は明快だ。シェーダを3Dグラフィックスだけでなく、様々なマルチメディア処理に適用しようとしているからだ。

 「プログラマビリティがメディア処理のアクセラレーションのカギだからだ。プログラマブルシェーダならビデオやイメージなど、様々な処理にも使うことができる。個別の専用回路を搭載するよりもチップを小さくできる。合理的だ」とNVIDIAでGoForceを担当するManish Singh氏(Product Manager)は語る。

 これは業界の共通認識だとTrevett氏も指摘する。

 「人々は、GPUがいったんプログラマブルになると、GPUをもっと他のことに応用できると気がついた。ビデオ、オーディオ、イメージング、シェーダが適した処理は数多くある。例えば、シェーダはJPEGアクセラレータにもなる。1個のデバイスで様々な処理をできる」(Trevett氏)

 PC向けGPUは、現在、プログラマブルシェーダを3Dグラフィックス処理だけでなく、もっと多様な処理に使おうとしている。ビデオのデコード/エンコードから、将来的には物理シミュレーション演算までをシェーダ上で実行しようとしている。つまり、2D/3Dグラフィックス処理だけのプロセッサではなく、汎用的な処理が可能なプログラマブルプロセッサへと進化させようとしている。

 そして、組み込み向けのグラフィックスチップも、全く同じ方向へと進化しようとしている。むしろ、組み込み向けの方が、汎用プロセッサ化に勢いがついているように見える。それは、組み込み向けの特殊なニーズがある。それは、消費電力や実装面積、コストなどの面で有利になるからだ。

 携帯電話などモバイルデバイスでも、マルチメディア処理が急速に重要になりつつある。ところが、こうした機器では、PCとは異なり、限られたチップ数とコストと消費電力と実装面積で、マルチメディア処理を実現しなければならない。そのためには、できるだけワンチップで多様な処理を効率的にこなせた方がいい。

 そこで、プログラマブルなベクタプロセッサ上でのソフトウェア処理により、多様なマルチメディア処理に対応しようという構想が浮上したわけだ。そして、その方向への近道が、プログラマブルなベクタ演算ユニットであるシェーダを搭載したGPUアーキテクチャを進化させる方向だったというわけだ。

 こうして見ると、組み込みグラフィックスチップのシェーダ化は、PC向けGPUとは異なる発想で進んでいることがよくわかる。PCでは3Dグラフィックスの性能と品質向上が第一目的で、そのためのシェーダを他の用途にも転用するという発想で進んでいる。それに対して、組み込み用途では、汎用的なベクタプロセッサが必要というニーズが先にあり、そこにシェーダが当てはまったわけだ。つまり、組み込みグラフィックスチップは、メディアプロセッサに進化しようとしているのだ。

図:今後の組み込みメディアプロセッサ
PDF版はこちら
□関連記事
【7月29日】【海外】SCEIがPlayStation 3にOpenGL ES 2.0採用か
http://pc.watch.impress.co.jp/docs/2004/0729/kaigai104.htm

(2004年7月30日)

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


【PC Watchホームページ】


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

Copyright (c) 2004 Impress Corporation All rights reserved.