笠原一輝のユビキタス情報局

GF100の鍵となるNVIDIAの開発者支援体制



 NVIDIAは18日に、Fermi世代のGeForceとなる「GF100」(ジーエフワンハンドレッド、開発コードネーム)の技術概要を発表した。NVIDIAのGeForceとして、初めてDirect3D 11(いわゆるDirectX 11)に対応したGPUとなるGF100だが、その特徴は別記事にもあるようにDirect3D 11の機能をふんだんに使える新しいハードウェアを追加することで、Direct 3D 11における描画性能の向上や表示品質の向上を図っていることにある。

 しかしながら、逆に言えばDirect3D 11に対応したアプリケーションソフトウェアが登場してこなければ、その真価は発揮できないということで、どのようにしてソフトウェアベンダに対応ソフトウェアを作ってもらうかが重要な要素となってくることは言うまでもない。NVIDIA側もそうした状況をよく理解しており、従来にも増してソフトウェアベンダに対する支援体制を手厚くしているのだ。

●大事なのはソフトウェアの最適化

 プログラマブルな半導体は、ソフトウェアと組み合わせて利用することで初めて能力を発揮することができる。裏を返せばソフトウェアがなければタダの石ころに過ぎない。ユーザーが、どうしてAMDやIntelが販売する“石ころ”を高いお金を出して買うのかと言えば、x86プロセッサ向けに書かれたソフトウェアがそれこそ星の数ほど存在しており、それらを利用することでユーザーがやりたいことができるからだ。つまり、半導体はソフトウェアによって、“石ころ”から“魔法の石”に昇格できるというわけだ。

 それはGPUも同様だ。GPUもその上で動作するソフトウェアがあることで、初めて本当の能力を発揮することができる。最近はGPUコンピューティングなる言葉が流行の1つとなっており、GPUでもCPUのように汎用の演算を処理させることができるが、「Graphics Processing Unit」の言葉の通り、GPUのメインストリームソフトウェアと言えば、3D描画を行なわせるアプリケーションとなる。コンシューマに最も近い3Dアプリケーションと言えば、言うまでもなく3Dゲームだ。

 そのため、GPUメーカーにとって重要なのは、3Dゲームをどのように自社GPUに最適化させていくかだろう。というのも、結局の所、我々テクノロジーメディアが計測する“描画性能”という言葉は、純粋にGPUの持つ半導体の性能を示しているのではなく、正確には「GPUの性能+ソフトウェアの最適化を指しているからだ。

 本誌に限らず、世界中のテクノロジーメディアでは新しいGPUが発売されるたびに、レビュー記事を掲載する。その時の判断基準になるのは、多くの場合、3Dゲームを利用したベンチマーク結果だ。あるAというソフトウェアを利用した場合の性能と、Bというソフトウェアを利用して計測する場合は、当然別の結果がでることになる。だからレビューアは、複数の3Dゲームを利用して、最終的に全体結果を俯瞰することで、GPUの優劣を決める。

 ここでポイントとなるのが、1つでも多くのゲームで、少しずつでも自社のハードウェアを最大限使ってもらえるようにソフトウェアベンダに働きかけて、コードを修正してもらえば、GPUメーカーは良い評価を得られることになる。業界ではこうしたことを“最適化”と呼ぶ。これは、別にそれはずるをしているのではない。結果的には実際にユーザーがゲームをプレイするときにもその恩恵を得られるからだ。

 つまり、GPUベンダにとってソフトウェアベンダに働きかけ、自社のハードウェアに最適化してもらうことは、非常に重要なことなのだ。

●ソフトウェアベンダ開発支援のチームを持つNVIDIA

 ソフトウェアベンダにとってもGPUに最適化することは、自社のソフトウェアの品質を上げるという観点から大きな意味を持っている。特にハイエンドな3Dゲームの場合、ハイエンドGPUでプレイしても得られる性能がギリギリだったりするので、ユーザーの満足度を高めるため、GPUへの最適化には積極的になる。

NVIDIAコンテンツ&技術事業部担当上級副社長トニー・タマシ氏

 こうしたことから、NVIDIAはソフトウェアベンダのサポート体制を充実させることに力を注いでいる。同社コンテンツ&技術担当上級副社長のトニー・タマシ氏は「我々はソフトウェアベンダのサポート専門のチームを持っており、開発者のサポートに非常に力をいれてやっている。その90%はエンジニアから構成されており、ソフトウェアベンダのさまざまな階層の方々と直接お話をさせていただいている」と述べる。

 具体的にはどのようなサポートをしているのだろうか? タマシ氏によれば、さまざまなレベルでのサポートを行なっているという。「まず新しいGPUアーキテクチャの概要の説明から始め、SDKや開発ツールの配布、新しい機能の実装、デバッグ、そしてタイトルができあがった後には、共同マーケティングも行なう」と、実に多くの段階で、協力を行なっているのだという。

 実際NVIDIAは、ソフトウェアベンダに対して、デバッグのためのGTL(Game Testing Lab)という研究センターを用意し、エンジニアによるテストやデバッグなどの環境を提供している。そして、ソフトウェアベンダがこのGTLを利用するコストは無料だ。

 ただ、実際には本当の意味でタダというわけではなく、「Be Played」というプログラムの一環として利用されている。おそらくPC用の3Dゲームをやったことがあるユーザーなら、一度は3Dゲームの起動時にNVIDIAのロゴが大きく表示されているのを見たことがあるだろう。それがBe Playedのロゴプログラムで、これに参加する条件と引き替えに、ソフトウェアベンダはGTLでのテストなどを受けられる仕組みになっている。

 なお、このBe Playedのプログラムは、あくまでラボでのテスト環境の提供などが主目的であり「資金の提供や単なるプロモーションなどの提供はしていない」ことをタマシ氏は強調した。

コンテンツ&技術事業部の目的は、より優れたゲームを開発してもらえるように支援することソフトウェアベンダの支援に関わるのは90%がエンジニアソフトウェアベンダ支援のフローチャート。次世代GPUの概要説明から始まり、SDKの配布、実際のコーディング、デバッグ、共同マーケティングまで実に多くの段階で関わっている
GTL(Game Testing Lab)では発売前のゲームのさまざまなチェックが行なわれる。ソフトウェアベンダがこのラボを利用するのは無料ラボは「Be Played」プログラムの一環として利用されている。ゲームの起動時に表示されるNVIDIAのロゴがあれだ

●開発支援の一環としてテッセレーションの利用を促す
Direct3D 11のテッセレーションの実装では早期からソフトウェアベンダと協力して作業してきた

 前述のようなテストラボでの試験の提供などももちろん重要な活動の1つだが、NVIDIAにとっても最も重要なことは、やはり新しい技術の実装ということになるだろう。特に今回のGF100では、Direct3D 11の実装が大きなテーマとなる。別記事でも触れている通り、GF100の最大の特徴はDirect3D 11で実装された、テッセレーションへの対応があげられる。テッセレーションを利用すると、より頂点の多いレンダリングが可能になり、結果的にGPUの描画性能を向上させることができる。

 つまり、ソフトウェアベンダにDirect3D 11のテッセレーションを積極的に利用してもらうことは、GF100の真価を発揮する上で非常に重要になる。そこで同社は「我々は重要な開発者に向けてテッセレーションの開発ツールやDirect3D 10レベルのハードウェアで機能をエミュレーションする仕組みなどを提供している」(タマシ氏)。

 具体例としては、「Star Tales」という中国のソフトウェアベンダが作った、Unrealエンジン3を利用した3Dゲームでは、当初アンチエリアシングをサポートしていなかったのだが、NVIDIAのエンジニアが協力して機能を追加したという。その実装はもちろんNVIDIAのGPUだけでなく、AMDのGPUにも有効なものだったのだが、開発者は中国でAMDのDirect3D 10対応GPUを入手できなかったため、NVIDIAが近所の小売店で買ったものを送ってテストさせたのだという。

 また、Eidosの「Batman: Arkham Asylum」ではPhysXの実装を行なったほか、いち早く3D Vision(NVIDIAの3D立体視技術)への対応も行なったが、これらにもNVIDIAのエンジニアが深く関わったという。最初のプロトタイプができたのが2009年の2月で、3月~8月という短い期間で開発しなければならないと、非常にタイトなスケジュールだったとのだが、これもNVIDIAのエンジニアが協力することで実現できたという。

 さらにEAの「Mirror's Edge」では、Unrealエンジン3のポストプロセッシングの改良などに協力し、フレームレートを向上させるなどの結果を残しているという。

Star TalesはUnrealエンジン3を利用した3Dゲームだがアンチエリアシングに対応していなかった。NVIDIAのエンジニアが協力して実装中国の開発者がAMDのDirect3D 10レベルのGPUを持っていなかったため、実際に近所の小売店で購入して送ったという
Batman Arkham AsylumではPhysXへの対応と3D Visionへの対応にNVIDIAのエンジニアが協力Mirror’s Edgeでの性能向上の例。NVIDIAのGPUのみならず、AMDのGPUでもきっちりと向上していることがわかる

●CPUとGPUのコードを1つのツールで開発できるNexus

 NVIDIAがソフトウェアベンダに対して提供しているのは、人的な協力だけでない。さまざまな開発ツールやSDKといったものも提供している。

 その最新のものが「Nexus」と呼ばれる開発ツールだ。Nexusは従来は、これまでCPUとGPUとで、別のツールで開発していたものを1つにまとめる役目を持つもの。開発者は使い慣れたVisual Studioを利用して、CPUのコードのみならずGPUのコードを開発することができるようになる。

 Nexusのユニークな特徴は、クライアントーサーバー型でデバッグを行なえることだ。これは開発環境のマシン上でサーバーとなるNexusを走らせ、実際にゲームを走らせるマシン上でクライアントソフトを走らせる。問題がある箇所を発見したら、サーバー側でコードを修正し、すぐにクライアント側に修正箇所を反映して問題ないかどうかを確認したりが簡単にできる。これまでであれば、一度開発環境でコンパイルして、そのバイナリをテスト環境のコピーしてと面倒な手順を踏まなければならなかったが、開発期間の短縮につながるのだという。

従来はCPUのコードとGPUのコードはそれぞれ別々に開発されてきたNexusではCPUとGPUのコードを同じVisual Studio内で扱うことができるようになるNexusではクライアント-サーバー型でのデバッグを行うことができる
Nexusのデモ、このようにVisual Studio内ですべての作業を終わらせることができる左側のクライアントマシンでは作成したばかりのコードをすぐさま実行して効果を確認できる

●テッセレーションを多用したSupersonic Sledデモを作成

 最後に今回NVIDIAがGF100のデモ用に作成した「Supersonic Sled」というデモプログラムを紹介しておこう。

 Supersonic Sledは、'60年代に実際に行なわれた、ロケットを高速に射出する実験の模様を3Dに置き換えたもので、GF100の処理能力を最大限に生かすようなデモとなっている。Supersonic Sledでは、GPUによる物理演算が多数利用されており、特にロケットの煙、ホコリ、火の玉、破裂するロケットの破片、パイロットの表情や動きといった部分が、GPUの物理演算を利用して行なわれている。従来の3Dではそうした部分はCPUを利用して行なっており、処理能力が十分ではなかったのだが、Supersonic Sledでは、GPUも利用してCPUと分担して処理を行なうため、従来よりも表現力が向上している。

 特に圧巻なのは、壊れる橋の様子だ。この場面では、CPUは大きな破片(約1,500個)の演算を行い、GPU側では約40,000個に及ぶ細かな破片の演算を担当する。さらにGPUは破片が出すホコリの演算もする。その実100万個に及ぶ細かな破片の演算も可能だという

 また、非常にリアルに表現された岩山の描画には、テッセレーションの手法が利用されている。

GPUの性能が上がってくると、リアルさを求める手法も変わってくる'60年代に行なわれたロケットの打ち出しテストがモデルになっているGPUの物理演算がロケットの流体力学、煙、埃などの計算に利用されている
パイロットの動きもPhysXを利用して演算されている物理演算はCPUとGPUのそれぞれを利用して行なわれているこれら100万個あるデブリ(破片)の物理演算はすべてGPUで行なわれる
岩山の描画にはテッセレーションの手法が利用されている
●ソフトウェアベンダの支援を行なうことで好循環を狙う

 NVIDIAがこうしたデモを作るのも、広い意味でソフトウェアベンダのサポートの一環と言える。というのも、こうした3Dの技術の場合、いくら座学で説明しようとしても、なかなかそのメリットを理解してもらうのは難しい。しかし、こうしたデモを作成することで、一目瞭然で説明することができるようになるからだ。

 それで開発者に上手く説明することができれば、今度は開発者がそれを自社のソフトウェアに取り込んでくれ、そうするとそれを走らせるためにエンドユーザーが新しい機能を持つGPUを購入する、というサイクルが発生する。それこそがNVIDIAが狙っていることだ。

 さて、ソフトウェア開発者の支援体制もでき、デモも存在しており、Direct3D 11に対応したWindows 7も存在しているとあれば、あとはGF100のリリースを待つだけだと言えるが、NVIDIA GeForceビジネス担当ジェネラルマネージャのドゥルー・ヘンリー氏によると「第1四半期中にリリースする」とのことで、今四半期中には最初の製品がユーザーの手元に届く可能性がある。

 かつ、GT200の時とは異なり、メインストリーム向けやモバイル向けもリリースされる予定だ。「GF100はスケーラブルなアーキテクチャになっており、メインストリーム向けやモバイル向けのバージョンも計画している」(ヘンリー氏)との言葉の通り、近い将来にメインストリーム向けやモバイル版もリリースされる計画もあるとのことなので、期待したいところだ。

バックナンバー

(2010年 1月 21日)

[Text by 笠原 一輝]