テストレポート
Optimus搭載ノートで快適モバイルゲームは実現するのか? ゲーム使用での使い勝手や動作をチェックする
搭載製品の発売は春以降ということで,性能評価などにはまだ少し気の早い技術なのだが,幸いにもOptimusを搭載する実機を試用する機会を得たので,ゲームを中心にOptimusの詳細や,実際のところゲーマーにとってどうなのかといったあたりをプレビューとしてレポートしていきたい。
シームレスにIGPからGPUへ,GPUからIGPへと切り替わるOptimus
実はこのノートPC,国内販売予定はないとのこと。したがって,このノートPC自体の使い勝手などを検証してもあまり意味がないので,細かなスペックの説明は切り上げて,以降はOptimusを重点的にチェックしていくことにしたい。
ただし,インストールされていたOSは64bit版Windows 7 Ultimateだったが,このレビューでは国内のゲームを利用する関係で,日本語環境を追加インストールし日本語版のWindows 7 Ultimate 64ビット版と同等にしてテストしていることは付記しておきたい。
試用機には,GPUのオン/オフ状態を確認できるNVGPUStateViewer_64.exeというツールがインストールされており,現在のGPUの動作状況を画面上で確認できるようになっていた。
さて,OptimusでGPUがオンになる条件は,事前説明会では次のように説明されていた。
- NVIDIAから提供されるプロファイルに登録されているゲームなどを起動すると自動的にオンになる
- ユーザーが登録したEXEファイルを起動するとオンになる
NVIDIAから提供されるプロファイルはNVIDIA社内の検証チームが作成しているということだが,NVIDIAでは,以前からNVIDIA SLI Technologyや,ドライバによるアンビエントオクルージョンのプロファイルなどで,アプリケーションごとの検証を行ってきた経緯があり,プロファイルの提供はOptimusが初めてではない。そういった経験を積んでいるNVIDIAだけに,「メジャーな洋ゲー」ならたいていはプロファイルに登録されていると見ていいだろう。
そこで,まずはメジャーなゲームの代表格として「Left 4 Dead」をインストールし,Optimusの動作を確認してみた。
LEFT 4 DEADはSteamクライアントから起動されるゲームだが,ムービーを見れば分かるように,起動するとすんなりとIGPからGPUへと切り替わり(OFF→ON),LEFT 4 DEADを終了させるとGPUからIGPへと切り替わる(ON→OFF)。事前説明会のレポートでも述べたとおり,実にあっけないものだが,このあっけなさこそOptimusの画期的なところだろう。ユーザーが手を下さずともGPUとIGPが使い分けられるというのは,このOptimusが史上初といっていい。
Optimusの設定をチェックする
前宣伝どおりの動作を確認したところで,Optimusの設定をチェックしてみることにしよう。
当然ながら,Optimusを採用するPCには,Intel Graphics Media Accelarator(GMA)のドライバとNVIDIAのOptimusドライバがインストールされている。Optimusのドライバはグラフィックスカード用のGeForce Driverとは別に配布されているものの,Optimusドライバの中にGeForce Driverが同梱される形だ。
デスクトップ上での右クリックメニューにはIntel GMAのコントロールパネルを表示する「グラフィックプロパティ」および「グラフィックオプション」と,お馴染み「NVIDIAコントロールパネル」の選択肢がある |
Intel GMAのドライバは8.15.10.1986というバージョンがインストールされていた。バージョンを変えるとどうなるかは,のちほど検証する |
OptimusでGPUが使用されるのは,3Dや動画関連などアクセラレータが必要になるときだけだ。そのため,NVIDIAコントロールパネルの様子は,ほかのNVIDIA Driverのそれとはやや異なっている。
画面例のように,左ペインには「3D設定」と「ビデオとTV」の設定しかない。Optimusでは常にIGPがディスプレイへの出力を行っていることから,ディスプレイの設定等がごっそりと抜け落ちた形になっているわけである。
肝心のGPUとIGPの切り替えなどの設定は「3D設定の管理」で行う。「グローバル設定」と「プログラム設定」という二つのタブがあり,前者は全般的な設定を,後者はプログラム個別の設定を行うようになっている。まず「グローバル設定」から見てみよう。
「優先するグラフィックスプロセッサ」という言い回しから推測できると思うが,グローバル設定ではIGPとGPUのうち,どちらを「優先」的に使用するかを設定できる。つまり,この設定で「高パフォーマンスNVIDIAプロセッサ」を選択したからといって「常にGPUがオンになるわけではない」。
「高パフォーマンスNVIDIAプロセッサ」を選択すると,3Dグラフィックスや動画のアクセラレーションを使用するアプリケーションを起動したときには無条件にGPUがオンになるが,これらを使用しない通常のアプリケーションを使用している最中は,GPUはオフのままIGPが使用されるのである。Optimusでは,GPUを常にオンにしておくという設定は(少なくとも筆者が使用したバージョンのOptimusドライバには)ないのだ。
一方,「統合型グラフィックス」を選択すると,「プログラム設定」タブに登録されているアプリケーションが起動したときだけGPUがオンになる。後述するように,無条件にオンになるアプリケーションというのも存在するが,基本は「プログラム設定」タブの設定に従うというふうに理解してほしい。
「優先するグラフィックスプロセッサ」の下に「設定」という項目が並んでいるが,この設定項目はNVIDIAのGeForce Driverのコントロールパネル「3Dの詳細設定」に見られる内容と同一だ。位置関係から誤解を招きそうだが,「優先するグラフィックスプロセッサ」の選択に関わらず,設定はNVIDIAのGPUに対して有効で,IGPに対してものではない。
では,プログラム設定タブを見てみよう。
「カスタマイズするプログラムを選択する」という項目では,NVIDIAのプロファイルに存在しており,かつ,このPCにインストール済みのプログラムが自動的に登録されており,プルダウンして選択できるようになっている。選択したプログラムに対してGPU,IGP,グローバル設定のいずれを用いるかを選択できる仕組みだ。GPUを選択すると,下の「設定」でNVIDIA GPUの固有の設定が行える。
ちなみに,「このコンピュータで見つかったプログラムのみを表示する」のチェックボックスを外すと,NVIDIAのプロファイルにある全アプリケーションをプルダウンで確認できる。
プロファイルに存在するアプリケーションは非常に多くて数えきれないほどで,そのほとんどがゲームだ。プロファイルにあるゲームなどをインストールすると自動的に「カスタマイズするプログラムを選択する」という項目に登録され,そのゲームに合ったグラフィックスプロセッサ……ゲームの場合はほとんどGPUになるだろうが……の設定が行われる仕組みである。
プロファイルに存在しないアプリケーションに,GPUもしくはIGPを強制的に使わせたいときには,「追加」ボタンをクリックしてファイル選択ダイアログを開き,そのアプリケーションの実行ファイル(EXEファイル)を選択してマニュアルで登録できる。実際の登録例は,のちほどいくつかのゲームで検証しているのでそちらを参照してほしい。
以上をまとめると,OptimusではGPUの使用,無使用に対して,次の二つの利用パターンがあることが分かる。
- 「グローバル設定」で「統合型グラフィックス」を選び,IGPを優先させておいて,個別のアプリケーションを「プログラム設定」タブに登録してGPUをオンにする
- 「グローバル設定」で「高パフォーマンスNVIDIAプロセッサ」を選び,GPUを優先させておいて,IGPで使用したいアプリケーションを「プログラム設定」側に登録して,個別にIGPの使用を強制する
バッテリー持続時間を重視するなら,前者の設定でプログラム個別にカスタマイズを行ったほうがよさそうに思える。しかし,後者の設定でも前述のように3Dや動画アクセラレーションが使用されなければGPUはオフのままなので,むやみにGPUがオンになってバッテリを無駄に消費するということは(筆者が使用した限りでは)ない。そのため,パフォーマンスを重視するなら,後者の設定がおすすめだ。後者の設定なら,プロファイルに存在しないゲームをマニュアルで登録するといった手間が省けるからだ。
実際のゲームで設定と動作をチェック
バッテリー重視で「統合型グラフィックス」を優先する設定にした場合,自動的にGPUを使用するアプリケーションに登録されるのはNVIDIAのプロファイルに存在するものだけだ。非常に多くのゲームが登録されているとはいえ,こういったノートPC(GeForce G210M)で本格的な3Dゲームがどれくらい動くか,遊ぶ人がいるかというと疑問はある。
こういったPC環境でプレイされそうなのは,さほど重くないオンラインゲームなどであろう。しかし,日本でプレイされているMMORPG類ではプロファイルに登録されていないタイトルも多い。
さらに,オンラインゲームではWebブラウザから起動するタイプのゲームが数多くあり,ゲーム本体の実行ファイルがはっきりしないタイトルも少なくない。前述のようにマニュアルで登録する場合はEXEファイルを追加する形になるので,こういったものをどうやって登録するかがポイントになりそうだ。
以下では,そうしたタイトルでGPUを自動的にオンにできるのか,4タイトルのオンラインゲームで試したので,それぞれ見ていきたい。
ランチャタイプ:Perfect World -完美世界-
インストール先ディレクトリを見るとEXEファイルがいくつかある。結論からいってしまうと,Optimusではゲーム起動中に,実行されているEXEファイルであれば,どれを登録してもGPUがオンになる。必ずしもゲーム本体を登録する必要はないようだが,本体の実行ファイルが分かるなら,それを登録しておくのがベストだろう。
タスクマネージャを見ると,Perfect World実行中にElementClient.EXEというゲーム本体のプロセスが動作していることが分かるので,これを登録すればよさそうだ。この実行ファイルはPerfect Worldインストール先ディレクトリ(標準ではC:\《パーフェクトワールド》\)の下のelementというフォルダの中にある。
画面例のように追加登録を行い,「高パフォーマンスNVIDIAプロセッサ」を選択しておけばゲーム起動後にIGPからGPUへと自動的に切り替わるようになった。
ブラウザ起動タイプ1:ルーセントハート
「ルーセントハート」はWebブラウザInternet Explorerからスタートさせるという,最近のMMORPGでは一般的なタイプのゲームだ。しかし,実行ファイルは分かりやすい。ルーセントハートのインストール先ディレクトリ(標準ではC:\Program Files\Gamania\LucentHeart\)の下に,そのものズバリLucentHeart.EXEというゲーム本体の実行ファイルがあるからだ。
画面例のようにNVIDIAコントロールパネルにLucentHeart.EXEを追加登録して設定すれば,起動時に自動的にIGPからGPUに切り替わるようになった。
ブラウザ起動タイプ2:The Tower of AION
結論から言ってしまうと,AIONではマニュアル設定なしに自動的にGPUがオンになる。かといって,NVIDIAコントロールパネルに登録されているわけでもない。
やや不思議な動作だが。インストール先ディレクトリの下のファイル構成を見ると,このゲームはCryENGINEを使用しているようだ。どうやら,CryENGINEのゲームは自動的にGPUがオンになると見てよさそうである。
どうやってCryENGINEを検出しているのかは,現状では分かっていないが,少なくともEXEファイルで見ているわけではないのは確からしい。NVIDIAのプロファイルリストを見ると,EXEファイル名ではなくゲームタイトル名で登録されているものも数多くある。こうしたゲームはエンジンそのものを見ているのかもしれない。
ブラウザゲーム:Quake Live
しかし,前出のAIONの例からも推測できると思うが,Quake Liveは,とくにマニュアル設定なしにIGPからGPUへと切り替わる。AIONと同様にプログラム設定タブに自動で登録されたりはしないのが不思議な点だが,実用上支障はない。CryENGINE同様,Quake 3エンジンも,またなんらかの方法で検出され,自動的にGPU使用になるのだろう。
ただ,Quake Liveの場合はインブラウザという特殊事情があるためか,やや動作に奇妙な部分が見られた。具体的にはQuake Liveのプレイを終了してもGPUがオフにならないのである。通常はブラウザを閉じるとGPUがオフになるようだが,ごくまれにブラウザを閉じてもGPUがオンになりっぱなしということもあった。こうなるとGPUをオフにする手段がないようで,PCを再起動するまでGPUがオンになりっぱなしである。
これは困ったことではあるが,Quake Liveはマイナーというほどマイナーではないゲームなので(ワールドワイドではかなりプレイヤーがいる),今後のドライバのバージョンアップないしプロファイルのバージョンアップで対応されるものと思われる。こういったトラブルはツールがないと確認できないので,製品版にNVGPUStateViewer_64.exeのようなツールが付属するのかは気になるところである。
「GPUがオンにならない」と悩むことはなさそう?
以上,Optimusの動作を実ゲームで見てきた。AION,Quake Liveの2タイトルでやや不思議な動作が見られたものの,少なくともGPUがオンにならないと悩む必要はないというのが使ってみての結論だ。自動的に登録されないゲームの一般的対処法をまとめるなら,次のようになりそうである。
- とりあえずゲームを起動してGPUがオンになるか調べる。AIONのように勝手にオンになるゲームもある
- GPUがオンにならないときはタスクマネージャなどを使ってEXEファイルを調べる。判明すれば,そのEXEファイルを登録すればいい
- どうしても分からない場合,NVIDIAコントロールパネルのグローバル設定で「高パフォーマンスNVIDIAプロセッサ」を優先に設定すればいい。3Dを使用するゲームを起動すると,どのタイトルでも無条件にGPUがオンになる
ただし,URLのリンクショートカットなどに対しては,このメニューが機能してくれない。ブラウザから起動するタイプのゲームでは,デスクトップやスタートメニューにURLリンクが登録されることが多いのだが,そのようなゲームでは,このメニューは機能してくれないわけである。この制限があることは覚えておいたほうがよさそうだ。
GPUがオンになる条件はなにか?
以上,ゲームでの設定方法を見てきたが,使っていて気づいたのはGPUがオンになる条件が事前説明会のレクチャーとは異なるという点だ。
事前説明会でDrew Henry氏は「プログラムを実行するとGPUがオンになり,最初のDirectXコールより先にGPUがオンになっているので待ち時間はない」と説明していた。だが,実際に使ってみると,実行ファイルを起動しただけではGPUはオンにならないようだ。
例えば,NVIDIAコントロールパネルの「プログラム設定」にメモ帳(Notepad.EXE)を登録して「高パフォーマンスNVIDIAプロセッサ」を選択しても,メモ帳の起動ではGPUがオンにはならず,IGPで動作し続ける。
これは,右クリックメニューを使ってGPUの使用を強制しようとしても同様で,メモ帳でGPUがオンになることは決してなかった。Drew Henry氏の説明どおりならメモ帳でもGPUがオンになるはずなので,少し違うぞ,ということが分かる。
では,GPUがオンになる条件はなんだろうか。コードを書いて調べてみたところ,DirectDrawCreateというAPI……これはDirectXで画面を使用するアプリケーションでは必ず最初に呼び出されるAPIだ……を呼び出すと,GPUがオンになることが判明した。
つまり,次の条件をともに満たせばGPUが必ずオンになるようだ。
- NVIDIAコントロールパネルのプログラム設定に登録され「高パフォーマンスNVIDIAプロセッサ」が選択されているか,グローバル設定で「高パフォーマンスNVIDIAプロセッサ」を優先する設定になっている
- プログラムがDirectDrawCreateを呼び出す
GPUがオンになる条件は,DirectDrawCreateだけでなく,動画関連のAPIの呼び出しも含まれるようだ。例えば,試用機にはFlash Player 10.1βがインストールされており,ブラウザでYoutubeなど動画を含むページを表示すると無条件にGPUがオンになった。
ゲームとはあまり関係ないので深く突っ込まないが,Flash Player 10.1の動作もやや奇妙ではある。Flash PlayerはFirefoxプラグインやInternet ExplorerのActive Xオブジェクトとして実装されており,プログラム設定に登録されているわけではない。試用機ではInternet ExplorerとFirefoxがプログラム設定に登録されていたが,両者を削除したり,IGPを優先させたりしても,Flash Playerで動画の再生が始まると必ずGPUがオンになってしまう。何らかの方法でFlash Playerを検出して,動画の再生が始まるとGPUをオンにする仕掛けになっているらしい。
いずれにしても,Drew Henry氏の説明とは異なり,APIがコールされたことを検出してからGPUをオンにしていることは間違いない。そのため,GPUがオンになるためのレイテンシが発生する。
これもコードを書いて実測したが,IGPからGPUに切り替わるトリガーを引くDirectDrawCreateの呼び出しにはワーストケースで1秒前後の時間を要することが分かった。通常,このDirectDrawCreateの呼び出しは30ミリ秒以下で終わるので,かなり大きなレイテンシが必要になるようだが,GPUがオフの状態からオンになるわけなので,これは無理もない話だ。
とはいえ,実のところ,1秒という時間は体感としてはほとんどないに等しい。テストプログラムのようにAPIしか呼ばないような小さなプログラムでは,ちょっとした引っ掛かりとして認識できるが,ゲームではまったく気づかない程度である。ゲームの起動には通常,数十秒かかるので,1秒程度の時間が伸びたところで普通の人は気づかない。したがって,1秒というレイテンシはGPUが自動的にオン/オフするというOptimusの利点を潰すようなものではまったくないということを強調しておきたい。
Drew Henry氏が実機とは異なる説明をした理由は不明だが,当初はEXEファイルの実行とともにGPUをオンにする仕様だったものが,APIの呼び出しを見るよう,あとから手が加えられた可能性も高い。APIの呼び出しをトリガーにしておくと,GPUを利用しないのにオンになるという状況はなくなるわけで,そのほうが理にかなっているからだ。
Optimusとバッテリー持続時間をチェック
Optimusの最大の利点として強調されているのは,バッテリー持続時間とパフォーマンスのバランスである。残念ながら,OptimusではGPUをオンにし続けるという動作が出きない仕様なので,GPUをオンにし続けた場合とそうでない場合とのバッテリライフの比較は難しい。
そこで,IGPのみを使用した場合と,GPUとIGPを併用した場合のバッテリー持続時間の差を比較してみた。
まず,3DMark06のデモをループモードで1時間だけ実行する。その後,BBenchというテストツールを使い,自動Web巡回を行わせてバッテリ運用時間を調べた。バッテリー駆動の状態でゲームを1時間プレイし,それ以外の時間はWebを見ていたとシチュエーションを想定したテストで,ノートPCの使い方としてはありがちではないかと思う。
結果,3DMark 06でのみGPUをオンにした場合,4時間2分のバッテリ運用が可能だった。一方,GPUを一切使わない(3DMark 06に対してもGPUを無効化)場合,バッテリ運用は4時間51分という結果になっている。その差は49分。つまり,ゲームをプレイしている1時間より差は小さいわけである。
次のグラフを見てほしい。
このグラフはバッテリー残量をGPUを使用した場合と,そうでない場合を比較したものだ。3DMark 06のデモを実行する最初の1時間は,GPUを使用したほうが傾斜が急だが,デモを終了させたあとは同じような傾斜でバッテリーが減少していることが分かると思う。
当然の結果ではあるが,ゲームをやめればバッテリーの減りはGPUがないノートPCとほぼ同等になるわけで,これがOptimusの最大の利点ということがよく分かる。GPUを使いさえしなければGPUを搭載しないノートPCとバッテリー持続時間が変わらない,これがOptimusの最大の利点といっていいだろう。
ドライバのバージョンを変えるとどうなるか?
Optimusでもう一つ気になるのが,ドライバのバージョンの問題だ。Drew Henry氏はIntelのドライバのバージョンは,気にする必要がないと述べていたが,それは本当だろうか。また,Optimusに同梱されている以外のNVIDIAのドライバをインストールしたらどうなるだろうか。双方を調べてみたので最後にレポートしておきたい。
インテルIGPのドライバをバージョンアップ
先に示したように,試用機には8.15.10.1986というGMAのドライバがインストールされていたのだが,執筆時点では8.15.10.2001という,より新しいバージョンのドライバがリリースされていたので,バージョンアップを試みた。
結論からいうと,Henry氏が述べていたように,Optimusの動作にはまったく影響が見られない。バージョンアップは通常のノートPCと同様に可能で,Optimusの利用も継続できた。ごくあっさりしたものである。
注:ノートPCのグラフィックスドライバは機種ごとにカスタマイズされていることが多いため,アップデート後に省電力機能などが正常に動かなくなるおそれがあります。ここではテストのため行っていますが,アップデートを行う場合は自己責任で行ってください。
NVIDIAのドライバをバージョンアップ
前述のように,Optimusのドライバ内にはGeForce Driverが同梱されており,試用機では189.07というバージョンが使用されていた。執筆時点のGeForce G210M対応のGeForce Driverはバージョン195.62なので,やや古いバージョンだ。
NVIDIAによると,Optimusで動作検証を行ったバージョンが使用されているようだが,はたしてGeForce Driver単独のバージョンアップは可能だろうか?
ということで,GeForce G210Mに対応する最新のGeForce Driverのインストールを試みたが,画面例のように互換性がないハードウェアと表示されてしまった。GPUがオフになっているため検出できないからかもしれないと意図的にオンにしてインストールを試みたが,やはり結果は同じだ。
この結果から,OptimusはOptimus向けドライバに同梱されているGeForce Driverしか利用できないと結論してよさそうである。
Optimusによるゲームプラットフォームの広がりに期待
以上,試用機をもとにOptimusの利用例をレポートしてきたが,ゲーム周りについては,ほぼ網羅できたのではないかと思う。事前の宣伝どおり,GPUとIGPがシームレスに切り替わること,そして少なくともGPUがオンにならないという事態は起きなそうだということは分かっていただけたのではないだろうか。
ただ,使っていて困ったことがなかったわけではない。最も戸惑ったのは,意図せずにGPUがオンになってしまうことがあった点だ。WebをブラウズしているとFlashをトリガーにしてGPUがいつの間にかオンになっていた,ということがたびたびあった。
これは不具合ではなく,Flashのアクセラレーションを検出してGPUがオンになる正常動作だとは思うが,Flashが存在し続けるとGPUがオンのままになってしまうのでバッテリーへの影響が少々心配になる。ブラウザを閉じればGPUが自動的にオフになってくれるので,こまめにブラウザを閉じる操作を行うよう心がけるとよさそうだ。
もう一つ,なんらかの不具合でゲームなどのプロセスが常駐し続けると,GPUがオンになりっぱなしになるという問題もあった。具体的には,Perfect Worldをウィンドウのクローズボタンで閉じてしまうと,プロセスが居続ける状態になり,GPUがオンになりっぱなしになる。この例以外でもゲームのハングアップなどによってプロセスが居残るということは起こりうるので,そのようなケースではGPUの動作に注意が必要そうだ。こうした問題は,ドライバソフトウェアのさらなる改善で,ある程度は解決が可能だろう。
今回のテストで,シームレスにIGPとGPUが切り替わるOptimusの利点は実機で十分に感じることができた。
もっとも,ゲームプレイが主目的でモバイルを度外視するなら,なにもOptimusである必要はなくGPUを搭載するゲーマー向けノートを買ってしまっても,なんら問題はないというのも事実。Optimusは,ゲーマー向けノート向けの技術というより,ゲームがプレイできるプラットフォームの拡大に寄与する技術と見たほうがいいだろう。
例えば,これまでスリムノートにはGPUが搭載されづらかったのだが,Optimusを利用することで,そこそこの性能を持つGPUの搭載が可能になるかもしれない。また,ネットブックはGPUを搭載する機種が少ないが,Optimusにより搭載が容易になるかもしれない。こういう形でゲームプラットフォームがさらに広がることを期待したいところだ。
- 関連タイトル:
GeForce 300M/200M
- この記事のURL:
Copyright(C)2009 NVIDIA Corporation