ニュース
OpenGLがOpenGL ESを呑み込む!? 次世代TegraがOpenGLに対応する理由も見えてきた,GTC 2013のKhronosセッションレポート
なお,セッションを担当したのは,Khronosのプレジデントにして,NVIDIAのモバイル機器部門担当副社長でもあるNeil Trevett(ニール・トレヴェット)氏だ。
OpenGLの最新動向〜ComputeShaderの導入により,グラフィックスでのGPGPU活用が加速
MicrosoftのグラフィックスAPI「DirectX」(=Direct3D)は進化が止まっているが(関連記事),それに対してPCおよびワークステーション向けのグラフィックスAPIであるOpenGLは毎年更新され続けている。
OpenGLの最新バージョンは「OpenGL 4.3」。組み込み機器向けのグラフィックスAPIである「OpenGL ES」の機能を取り込みつつ,新世代のテクスチャ圧縮技術「EAC」「ETC2」「ASTC」などを新たにサポートしたのが特徴だ。
Trevett氏に言わせれば,「今やOpenGLはDirect3Dのスーパーセットになった」とのことである。
HPC分野やスーパーコンピュータ用途として,Khronosは従来どおりOpenCLを推進していく。一方で,3Dグラフィックスレンダリングと連動させるためのGPGPUは「ComputeShaderのあるほうが便利」(Trevett氏)なので,OpenGLから対応したというわけだ。
OpenGL ES最新動向〜ARMやImaginationが3.0に対応。NVIDIAは2014年のLoganを待つ
携帯電話やタブレット端末などに向けたAPIであるOpenGL ESは,最新版の「OpenGL ES 3.0」が提供されている。
そのOpenGL ES 3.0は,新しい機能として「Geometry Instancing」(ジオメトリインスタンシング)「Transform Feedback」(トランスフォームフィードバック)「Multi-Render Target」(マルチレンダーターゲット)「Occlusion Queries」(オクルージョンクエリ)などの新規サポートがトピックだ。これらについてはSIGGRAPH 2012のレポートが詳しいので,そちらを合わせてチェックしてほしい。
現在普及しているグラフィックスハードウェア(=GPUコア)は「OpenGL ES 2.0」の対応が主流だが,2013年以降,モバイルGPUコアもOpenGL ES 3.0対応のものへ切り替わっていくと予測されている。たとえばARMの「Mali T600」や,Imagination Technologiesの「PowerVR Series6」といったGPUコアは,OpenGL ES 3.0対応予定となっている。
なので,NVIDIAのSoCがGPGPUに対応するのは,2014年の登場が予定されている次世代TegraたるLoganの登場を待たねばならない。ARMやImagination Technologiesが2013年の製品でGPGPU対応へ挑むのとは対照的である。
業界関係者からは,Tegra 4のスペックを指して,「NVIDIAは守りに入った」という批判も寄せられている。しかしNVIDIAは,「今回のTegra 4で“溜め”を作った分だけ,次のLoganでOpenGL 4.3対応へとジャンプするのだ」と,むしろ鼻息が荒かったりする。
OpenGL 4.3はOpenGL ES 3.0のスーパーセットなので,Loganは当然OpenGL ES 3.0にも対応することになる。さらに,LoganではCUDAへの対応も謳われているため,必然的にOpenCL対応も実現するわけだ。
NVIDIAがこういう選択をした技術的な背景には,次世代TegraのLoganで,統合できるGPUコアが,現行のPC向けGPUと同じ「Kepler」世代のものへ切り替わるというのがある。
もちろん,シェーダプロセッサ(=CUDA Core)の数は,PC向けGPUと比べて大幅に削減されるだろう。しかしKepler世代のGPUコアを統合するLoganならば,OpenGL ES 3.0ではサポートされていないジオメトリシェーダや,テッセレーションステージなどにも対応できることになる。
つまりNVIDIAは「今年は堪え忍ぶ」ことに決め,2014年のLoganで,OpenGL ES 3.0対応のMaliやPowerVRを一気に引き離す腹づもりなのだ。
OpenGL ESはOpenGLに統合される!?
だが,NVIDIAの「OpenGL ES 3.0をスキップする」という選択に対し,「長い目で見ると,業界の動向にはそれほど反していない」という意見もある。というのは,今回Khronosのセッションで公開されたロードマップには,「OpenGLとOpenGL ESの統合」の可能性が挙げられているからだ。
Khronosではこれまで,「組み込み機器向けのグラフィックス性能が,デスクトップPCやワークステーションのグラフィックス性能と数世代分の格差がある」ことに配慮して,組み込み機器向けのスリムなOpenGLとしてのOpenGL ESを策定&提供してきた。
しかし,2003年のOpenGL ES提供開始から約10年を迎えた現在,組み込み機器向けのGPUは,当初の予想以上に高機能化している。それこそLoganのように,OpenGL ESではなくフル版のOpenGLを使わないと,100%の機能を活用できないGPUまでが開発され,組み込み機器向けに提供されようとしているほどだ。
そういう状況から,「今後もOpenGL ESを粛々と進化させていくべき」という意見とは別に,「OpenGL 4.3でOpenGL ES 3.0の機能を取り込み始めているのだから,このままOpenGLとOpenGL ESを統合してもいいのではないか」という意見も,Khronosの中で台頭しているというわけである。
今回示されたロードマップは,「Khronos内で確定したものではなく,あくまで現時点でのグループ内の議論を模式化したものにすぎない」(Trevett氏)という。
しかし逆に言えば,Loganは,2014年におけるKhronosのロードマップをいち早く掴んだSoCになるかもしれないのだ。この点は憶えておいても損はしないだろう。
新API「OpenVX」をアナウンス
さて,今回のセッションではほかにも,Khronosが新しいAPIの策定を開始したことが報告された。その名は「OpenVX」。Intelが開発した「コンピュータビジョン」処理向けライブラリ「OpenCV」に近いものだ。
コンピュータビジョンとは,映像や音声,そのほかの電気信号をグラフィックス化したり計算したり,認識させたりするための処理系のこと。たとえば,温度を画像化する「サーモグラフィ」や,信号の周波数の登場頻度をグラフ化する「ヒストグラム」などは,コンピュータビジョンの代表例である。
なぜそれをKhronosが規格化しようとしているのかというと,携帯情報機器や車載電子機器の分野で実用化が進むとされる,拡張現実アプリケーション向けに応用が期待されているためだそうだ。
前述のOpenCVは,名前こそ似ているが,Khronosの策定するAPIとは無関係で,実質的にはコンピュータビジョン向けの実用ライブラリ集的な存在だと,Trevett氏は位置づけていた。一方,KhronosのOpenVXはハードウェアに近い存在であり,ライブラリよりも下層の,デバイスに近い領域の面倒を見るものになるという。
OpenVXのカバー領域 |
OpenVX規格策定に参加しているメーカー一覧。ソニー・コンピュータエンタテインメントの名前も見える |