ニュース
NVIDIA,ノートPC向けの新技術「Optimus」発表。3D性能とバッテリー持続時間の両立を図る
消費電力や発熱が少ない代わりに3D性能や並列処理性能が極めて低いIGPと,その逆の特性を持つ単体GPU。既存の「Switchable Graphics」(あるいは「Hybrid SLI」の「HybridPower」)だと,ユーザーは両者を手動で切り替えねばならなかったが,この手間を解消しようというのが,このOptimusである。
GT200以降のノートPC用GPUと
Intelプラットフォームでサポート
AMD製のグラフィックス機能統合型チップセットは,市場シェアが低いという理由でサポートされない。
IGPとGPUが切り替わる間に,画面がちらついたりすることもない。極めてあっけなく切り替わるのだが,そのあっけなさが,Optimusの画期的なところだ。
Optimusが動作する仕組み
〜“改良版HybridPower”に非ず!
統計によると,Switchable Graphics対応ノートPCで,実際に切り替えながら使っているのは,わずか1%に過ぎないという。手動で切り替えなければならず,切り替える前にはいちいちアプリケーションを閉じる必要があり,切り替えには時間がかかり,しかも切り替えるときには画面がちらついて“バグった”ように見えるのだから,使われないのはさもありなんといったところだ。
さて,Optimusはどのように実現されているのだろうか? ハードウェア面でのキーポイントは,「Optimus対応ノートPCにおいて,ディスプレイ出力されるのは,常にIGP側にあるグラフィックスメモリのデータだ」という点である。
Optimusにおいて,GPUによる描画データは,IGPがグラフィックスメモリとして確保しているメインメモリへ転送され,ディスプレイへの出力は常にIGP側で行われる。そのため,IGPとGPUが切り替わるときでも画面がちらついたりしないというわけだ。
ディスプレイ出力をIGPが行う都合上,画質や色合いの調整などはIntelのグラフィックスドライバに依存し,GPUはアクセラレータ的な役割を担うこととなる。
言うまでもなく,GPUは,メインメモリから独立した高速なグラフィックスメモリを持っている。したがって,ディスプレイ出力に当たっては,GPU側グラフィックスメモリからIGP側グラフィックスメモリへ,大量のデータ転送が発生することになるが,それを担うのが,対応GPUに内蔵されている「Copy Engine」だ。
つまりは,
- GPU側の3Dエンジンが,ローカルなグラフィックスメモリ上にレンダリング結果を次々と出力し
- その間に,Copy Engineがフレームをメインメモリ上のIGP側グラフィックスメモリへ次々と転送し
- IGPがそれをディスプレイに出力する
というわけである。
Windows 7では2種類の異なるグラフィックスドライバを同時に動作させられるようになっており,Optimusではその仕組みを使っている。トリッキーな部分がないため,「Intelのドライバはx.xx.xx,Notebook Driverはxxx.xxの組み合わせでなければ動作しない」などといった制限はないそうだ。
第2世代のSwitchable Graphicsで,Windowsからなされたグラフィックスドライバの呼び出しは,NVIDIAの用意する「Display Driver Interposer」が受け取り,IntelのIGPとNVIDIAのGPU,どちらかの呼び出しに振り分ける構造をとっていた。IntelとNVIDIAのドライバをラップするようなカスタムドライバという,一種のトリックが必要だったわけで,Optimusと比べると,開発の困難さが窺えよう。
また,Switchable Graphicsでは,「IGPとGPU,どちらを使っているのかを検出して切り替えるMux(マックス,Multiplexerの略)が必要で,これが大きな問題になった」とHenry氏は振り返る。
Switchable Graphicsを実装するには,Muxチップが9個必要になる。IGPとGPUにはそれぞれ,(LVDS接続される)ノートPC側液晶パネルとは別に,D-Sub 15ピンによるアナログ出力,またはDisplayPort/HDMIによるデジタル出力という,3系統の出力先があり,それらを適宜,適切な出力先に切り替えるための経路が必須になるからだ。
9個ものMuxチップを搭載する以上,「部材のコストや,マザーボード上のスペースが必要になるうえ,品質検証に時間がかかるようになる。また,信号をボード上で引き回す必要があるため,信号の劣化も避けられない」とHenry氏。さらに,マザーボードのレイヤー数も増やす必要が出てくるため,総じて数ドル,もしくはそれ以上のコストが乗ることになるという。
これに対して,Optimusだと,GPUはPCI Expressインタフェースで接続されているだけだ。ディスプレイ出力を行うのは常にIGPである以上,Muxを使った複雑なルーティングも不要だ。コスト面でも,Optimusは格段の進歩を遂げたというわけである。
アンチウイルスソフトにおけるパターンファイルのように
「IGPとGPUのどちらを使うか」プロファイルを配信
ここで気になるのは,どのアプリケーションでGPUを用いるかだ。やたらめったらGPUが動作するようでは,長時間のバッテリー駆動時間はおぼつかないが,この点についてHenry氏は「NVIDIA社内に,アプリケーションの検証を行う部署を設けて,GPUを使ったほうがいいアプリケーションのリストを作っている。そのリストはNVIDIAのサーバーにアップロードされ,ユーザー側に自動アップデートの形で提供される」と説明する。
要するに,「GPUで処理したほうがいいアプリケーション」のリストが,プロファイルとして提供されるというわけである。Windows標準のソリティアでGPUが動作するようなことはなく,また,ビデオ再生支援機能のような,GPUとIGPの双方でサポートされるものも,IGPでまかなえるものはIGPで,GPUを使うべきものはGPUでといった具合に仕分けられるという。
もちろん,プロファイルにはユーザーリストが用意されており,手動で「このアプリケーションではGPUを使う」といった設定も行える。個人やサークル,あるいは日本ローカルの独立系デベロッパが開発したゲーム&CUDAアプリケーションなどを,GPU処理させるよう,プロファイルの設定が行える。また,アプリケーション起動時に,右クリック(のコンテキストメニュー)からIGPとGPUのどちらで実行するかも選択できるという。
「アプリケーションを起動するとGPUがオンになり,最初のDirectXコールよりも前にGPUが有効になるから,切り替え時間を意識することはまったくない」と説明するHenry氏によると,(当然のことながら)GPUを有効にするまでには200〜300msがかかる。しかしその所要時間は,アプリケーションを読み出すディスクアクセス時間に隠蔽されるため,ユーザー側が遅延を感じたりはしないという理屈だ。
また,ACアダプタ駆動しているかどうかがGPU有効/無効のトリガーになるわけではないため,「ACアダプタ駆動時はGPUが有効になって無駄な電力消費や発熱が発生する」といった問題がクリアになっているのも,重要なポイントである。
GPU搭載ノートPCのマイルストーンとなるか?
2010年夏までに対応ノートPCが50種以上登場
- 関連タイトル:
GeForce 300M/200M
- この記事のURL:
Copyright(C)2009 NVIDIA Corporation