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

携帯電話上でのスカラプロセッサ対ベクタプロセッサの戦い




●サーバー、PC、携帯電話で繰り広げられるCPU対GPU&メディアプロセッサの戦い

 “シリアル処理のスカラプロセッサ中心のCPU”対“並列処理のベクタプロセッサであるGPU&メディアプロセッサ”。この対立構図が、サーバー、PC、携帯機器の3分野で同時に進行しつつある。つまり、(1)サーバーでのオフラインレンダリングや科学技術演算をCPUからGPUに移す、(2)PCでビデオエンコード/デコードなどのマルチメディア処理をCPUからGPUに移す、(3)携帯機器で3Dグラフィックスやマルチメディア処理をCPUからメディアプロセッサに移す、という動きが急浮上してきた。これは、プロセッサにとって、マルチメディア系処理のニーズがどの分野でも急増しているためだ。そのため、マルチメディア系処理に向いたベクタ演算ユニットを中心に据えたGPUやメディアプロセッサに、処理を割り当てようという発想が広がりつつある。

 なかでも最新の動きは、先週レポートした、携帯電話にシェーダプロセッサを搭載しようという動きだ。携帯電話には、現在、すでに2つのプロセッサが載っている。信号処理用の「ベースバンドプロセッサ」と、各種制御やアプリケーションソフト用の「アプリケーションプロセッサ」の2種類だ。実際には、独立したアプリケーションプロセッサがなく、低機能のマイクロコントローラがシステムLSIに統合されているケースや、その他にデジタルカメラの信号処理用DSPが搭載されているケースなど、様々なバリエーションがある。

 現在の携帯機器の多くでは、3Dグラフィックスやビデオ系処理も、アプリケーションプロセッサや専用ロジックで行なわれている。だが、今後、2D/3Dグラフィックスやビデオに要求される性能が増大すると、現在のプロセッサ構成では対応できなくなる。そのため、解決策として、アプリケーションプロセッサを高性能化する方向と、メディアプロセッサのようなマルチメディア処理用チップを搭載する方向の2つが考えられている。

 前者のアプローチを取っているのはIntelやARMなどCPUベンダー。後者のアプローチを取りつつあるのがGPUベンダーなどだ。後者の場合は、携帯電話に3つ目のプロセッサが搭載されることになる。

 CPUからGPU/メディアプロセッサに処理を移そうという動き自体は、携帯機器もPC、サーバーも変わらない。しかし、そうした動きが本格化した場合の影響はずっと大きい。

 PCでは、スカラプロセッシングの性能向上の求められているため、CPUもGPUも高性能化へ向かっている。サーバーでは、GPUで置き換えようという分野は非常に限られている。しかし、消費電力や搭載チップ数が限られる携帯機器では、どちらを強化するかという二者択一的な方向になる可能性がある。また、携帯電話では広汎なマルチメディア系処理をメディアプロセッサに担当させるという話なので、うまく行けばほとんどの携帯電話にそうしたチップが搭載されるようになる可能性もある。

●ベクタエンジンと専用ハードの組み合わせ

Khronos GroupのNeil Trevett氏

 GPU/メディアプロセッサ系陣営が主張しているのは、CPUよりも特化したGPU/メディアプロセッサでの処理の方が消費電力を大幅に下げられる点。

 「逆説的なことに、ハードウェアを加えると逆に低消費電力になる。例えば、2Dでも3Dでも、グラフィックス処理を汎用CPUに実行させると、非常に効率が悪い。これは、プロセッサがより多くの電力を消費してしまうことも意味している。しかし、ハードウェアアクセラレーションでCPUからオフロードすれば、それだけシステム全体の消費電力を減らすことできる」と語るのは組み込み機器向けの3DグラフィックスAPI規格「OpenGL ES」を策定する業界団体Khronos Group(クロノスグループ)のNeil Trevett氏(President, Khronos Group; Chairman, OpenGL ES Working Group; Senior Vice President, Market Development, 3Dlabs)。

 消費電力の利点は、全てのGPU/メディアプロセッサベンダーが主張するCPUに対する強みだ。これは、両プロセッサの基本的な設計思想から来ている。

 「CPUとGPUに大きな違いもある。CPUは基本的にスカラプロセッシングのためのユニットだ。それに対してGPU/VPUは主にパラレルプロセッシングのために設計されている。だから、パラレルプロセッシングが効果を発揮できるマルチメディア系処理では、GPU/VPUがずっと有利になる」とTrevett氏は言う。

 PCではすでにCPUにベクタ系ユニット(SSE/3D Now!など)が入っているが、組み込み向けCPUでは普及していない。そのため、携帯機器では、CPUとGPU/メディアプロセッサのギャップはさらに広がる。GPU/メディアプロセッサ側にチャンスがある。

 もっとも、話は単純な対立構図というわけでもない。というのは、GPU/メディアプロセッサ側は、その技術を積極的にIPとして売ろうとしているからだ。例えば、NVIDIAも同社のGoForce 3D技術を、ライセンス提供することを発表している。むしろ、アプリケーションプロセッサとメディアプロセッサコアを統合ワンチップ化するソリューションがはやる可能性もある。

 組み込み向けGPU/メディアプロセッサでは、PC向けGPUとはマルチメディア処理でもアプローチが異なる。PC向けGPUでは、シェーダを汎用に利用して、専用ロジックも置き換えようという流れがある。しかし、消費電力を第一に考える組み込みメディアプロセッサでは、専用ロジックにできるところはしてしまおうとしている。具体的にはMPEG-4やJPEGのアクセラレーションは、専用ハードにまかせるのが潮流だ。将来的には、専用ハードとシェーダの組み合わせにしていこうとしている。

 「携帯電話では、ビデオコーデックだけを見ても複数のフォーマットがある。また、MPEG-4ひとつ取ってみてもバリエーションがある。そのため、フロントエンドにある程度のプログラマビリティが必ず必要になる。固定機能とプログラマビリティの組み合わせが、最高の柔軟性と低消費電力、高パフォーマンスを実現するだろう。ビデオのデコードだけでなく、デコード後のさまざまな処理でもプログラマビリティが要求される。シェーダは、そうした部分にも応用していく」とNVIDIAのManish Singh氏(Product Manager)は説明する。

●シェーダの仕様はPC向けGPUと同等に拡張へ?

 シェーダの汎用プロセッシングへの応用のためには、シェーダのスペックやAPIの拡充が必要だ。

 APIサイドでは、先週紹介した通りKhronosが策定するOpenGL ES 2.0と2DベクタグラフィックスAPIの「OpenVG」、マルチメディアコンピューティングプリミティブAPIの「OpenMAX」が名乗りを挙げている。2005年中にこれらのAPIを整えて、ソフトサイドからシェーダを利用できる下地を整えるという戦略だ。OpenMAXでは、ビデオコーデック、オーディオエンジン、静止画像コーデック、さらに物理シミュレーションエンジンのようなライブラリを共通のAPIで利用できるようにする。

 カギとなるのはもちろんシェーダのプログラマビリティを利用できるようにするシェーディング言語だ。

 「汎用コンピューティングへと向かうためには、シェーディング言語自体を拡張する必要がある。現在、OpenGL 2.0では、まさにそのための言語仕様の拡張が行なわれている。シェーディング言語の拡張は、デスクトップ側(OpenGL)がリードし、基本的に同じ仕様がOpenGL ES 2.0にももたらされるだろう。(OpenGLの仕様策定を行なう)OpenGL AIBは、そうした議論を行なうのに最適な場だと考えている。今後数年は、シェーディング言語の拡張が続くだろう」とTrevett氏は語る。

 シェーダの汎用的な利用を急ぐ携帯機器。そのため、シェーダのスペックも急発展する可能性が高い。例えば、現在のNVIDIAのGoForce 3D(AR10)アーキテクチャが搭載しているシェーダは整数演算ユニットだ。だが、汎用プロセッサ的に使うためにはこれでは不足で、浮動小数点演算ユニットにする必要がある。

 また、演算精度も問題になる。PC向けGPUのシェーダは、ジオメトリ処理を行なうバーテックスシェーダと、ピクセル処理を行なうピクセルシェーダのどちらも浮動小数点データタイプをサポート。ピクセルシェーダでは、NVIDIAと3Dlabsが32bit内部演算精度、他社が24bit演算精度で処理を行なっている。シェーダは4wayのベクタ/SIMD型なので、32bitの場合は合計で128bit、24bitの場合は96bitとなる。そして、将来的には、どのベンダーも32bit精度に向かうと見られている。

 Trevett氏によると、組み込み向けプロセッサも、32bit浮動小数点シェーダに向かっているという。「携帯機器に32bit精度のシェーダプログラマビリティが登場するのも、不思議ではない。32bitの方がソフトウェア開発者にとっては便利だからだ。また、実装によっては、24bitの積算器より32bitの積算器の方が小さくなる」とTrevett氏は、組み込み向けシェーダが一足飛びに32bit浮動小数点演算シェーダへ向かう可能性を示唆する。

 つまり、携帯機器向け組み込みでは、シェーダの汎用性がまず第一に求められる。そのために、シェーダの強化が進むという見方だ。実際にその通りに急進展するかどうかは、まだ不鮮明だ。

 では、組み込み向けの限られた規模と消費電力のチップに、どうやってユニットの大きな浮動小数点ベクタ演算ユニットを搭載するのか。GoForce 3Dの例を取ると、レガシーの固定機能3Dグラフィックスユニットの多くを削減することで、トランジスタ数と消費電力の節約を測っている。

 それから、ムーアの法則を利用する。これまで、携帯機器向けのプロセッサは、枯れたプロセスで極端にしきい電圧(Vt)の高い低消費電力オプションなどを使って作られていた。だが、NVIDIAのGoForce 3Dは、0.13μmのカスタム低消費電力プロセスを使っている。しかも、次の90nmプロセスへの移行を比較的早い時期に計画しているという。つまり、最先端のプロセスを使うように変化しつつある。また、プロセスオプションでは電力低減を図りつつ、比較的高パフォーマンスが可能なプロセスを使う。

 ちなみに、GoForce 3Dは600万トランジスタ程度の規模。しかし、デスクトップ向けGPUでは、シェーダ世代GPUは4~5,000万以上のトランジスタを搭載するのが普通だ。90nm世代では、組み込みメディアプロセッサも、間違いなく1,000万トランジスタ台に突入すると見られる。問題は、トランジスタ数の増加によるリーク電力の増加をどう防ぐかだ。これは、大きな課題になる。

●BitboysやPowerVRなどもこの市場に

 シェーダ化へ向かう組み込み向けメディアチップ。その流れは、PCより数倍速いとTrevett氏は強調する。

 「APIが策定されてからそれに準拠したハードウェアが登場するタイミングが非常に早い。例えば、OpenGL ES 1.0リリースは昨年のSIGGRAPHで、それから1年しないうちに、OpenGL ES 1.0準拠の携帯電話が登場した。だから、2005年にOpenGL ES 2.0がリリースされたら、2006年にはプログラマブルシェーダでアクセラレートされた携帯電話が登場するだろう。APIが標準化されてから製品化までのタイミングは、デスクトップよりも3~4倍も早い」

 「理由は2つある。ひとつはデスクトップから学んだ(笑)。同じ失敗をする必要はない。もうひとつは、市場が急激に立ち上がっているため、誰もが先を急いでいる。PC市場よりも競争的だから、急ぐ必要がある」

 興味深いのは、GPU系ベンダーが携帯向けGPU/メディアプロセッサにどんどん集まりつつあることだ。ATIに続いてNVIDIAも参入したわけだが、それだけではない。PowerVRのImagination Technologies社やBitboys社もOpenGL ESアクセラレータに熱心に取り組んでいる。Bitboysは、これまで技術発表ばかりで実際の製品供給はなかったが、今回は実際の製品を来週のSIGGRAPHでデモする予定だ。

 各社が一斉に参入するのは、携帯電話市場がまだ拡大していること、今後、プロセッシングパワーの需要が見込めること、スタンダードがなく誰にもチャンスがあること、といった理由がある。

 「大きなトレンドで見ると、携帯電話は非常にパワフルなメディア機能を備えたコンピューティングデバイスに変わりつつある。人々の大多数は、コンピューティングのほとんどを携帯電話で行なうようになるだろう。それが10年先だと言ったら、きっと間違いだ(もっと早いだろう)。音楽もビデオもゲームも、ここに来る」とTrevett氏は断言する。

□関連記事
【8月2日】【海外】シェーダを搭載したNVIDIAの携帯向けGPUコア「GoForce 3D」
http://pc.watch.impress.co.jp/docs/2004/0802/kaigai106.htm
【7月30日】【海外】今後1~2年で携帯電話にプログラマブルシェーダが搭載
http://pc.watch.impress.co.jp/docs/2004/0730/kaigai105.htm

バックナンバー

(2004年8月5日)

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


【PC Watchホームページ】


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

Copyright (c) 2004 Impress Corporation All rights reserved.