オススメ機能
Twitter
お気に入り
記事履歴
ランキング
パッケージ
GeForce GTX 200
  • NVIDIA
  • 発表日:2008/06/16
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

募集中
LINEで4Gamerアカウントを登録
QRコードでLINEの4Gamer
アカウントを友達登録すると
月〜金の週5回,21時に厳選
ニュースをお届けします!
※購読にはLINEアプリが必要です
特集記事一覧
注目のレビュー
注目のムービー
印刷2008/06/16 22:00

連載

西川善司連載 / NVIDIA,新世代ハイエンドGPU「GeForce GTX 200」シリーズを発表(2)

NVIDIA,新世代ハイエンドGPU「GeForce GTX 200」シリーズを発表(2)CUDA 2.0&PhysXでGeForceは生まれ変わる
前のページへ

1 2

 

 2008年6月16日は,NVIDIAの新世代ウルトラハイエンドGPU「GeForce GTX 200」シリーズの発表された日になった。GeForce GTX 280のGPUアーキテクチャについては,同時に掲載しているもう一つの連載記事「ワンビッグGPUの夢よ,再び!?」を参照してほしい。
 だが,NVIDIAがこの日に発表したのは,新世代GeForceだけではない。「CUDA 2.0」も正式発表されたのだ。

 CUDA 1.1から,倍精度64bit浮動小数点(FP64)演算対応を果たし,提供される基本ライブラリを増強したCUDA 2.0。「NVIDIA PhysX」(旧称:AGEIA PhysX,以下PhysX)物理シミュレーションエンジンのアクセラレートや,動画のエンコードを,GeForceから行えるようになるというメリットが示されているが,本稿では,そんなCUDA 2.0の詳細と,4Gamer読者にとっての意義を考察していきたいと思う。
 なお,本稿も,GeForce GTX 200シリーズと同じく,NVIDIAの報道関係者向け事前説明会「Editor’s Day」の内容がベースになっている。

 

 

前世代から大きく飛躍したCUDA 2.0……そもそもCUDAって何?

 

 最初に二つ説明しておく必要があるだろう。
 一つはCUDA 2.0の対応GPUで,GeForce GTX 200シリーズ専用ではなく,既存のGeForce 8/9シリーズでも利用できるものだということ。
 もう一つは,「そもそもCUDAとは何か」ということだ。

 CUDAは「Compute Unified Device Architecture」の略で,カタカナ読みでは「クーダ」。NVIDIAの提唱する,GPU(=GeForce)で並列コンピューティングを実現するプラットフォームである。
 もう少し具体的に述べると,ベクトルデータを取り扱えるように拡張されたC言語を用いて,GeForce 8以降のGPU上で動作する汎用ソフトウェアを開発,そして動作可能にする仕組みのことだ。「GeForceを,3Dグラフィックス以外の目的で使うGPGPU(General Purpose GPU,汎用GPU)のために提供される,NVIDIAのソリューション」ともいえる。一応,ノンライセンシーなプロジェクトなので,AMDだろうがIntelだろうが,歩み寄りがあれば対応は可能という(※2008年現在は未対応)。

 CUDA 1.x世代では主に科学技術計算やCAE(Computer Aided Engineering)用途がメインで,4Gamer読者にははっきり言ってほとんど無縁の存在だった。そのため,知らなくてまったく問題なかったのだが,今回のCUDA 2.0は(ゲーマーを含む)一般のPCユーザーにとっても魅力的な要素が多いのだ。

 

●CUDA 2.0はGeForceのGPGPUモードで動作する

 まずは基本情報から整理していこう。
 同時掲載しているもう1本の連載記事中で,GeForce GTX 200シリーズにグラフィックスモード(GPUモード)と並列コンピューティングモード(GPGPUモード),二つの動作モードがあると説明したが,実は両モード,GeForce 8/9シリーズにも搭載されている。

 

image
image

「ワンビッグGPUの夢よ,再び!?」の記事中でも紹介した,GeForce GTX 280のブロックダイアグラム。左がGPUモード,右がGPGPUモードのものだ

 

 言うまでもないことだろうが,CUDAはGeForceのGPGPUモードで動作する。そのため,GPGPUモードのことを,NVIDIAは「CUDAモード」とも呼んでいる。
 モード切り換えはドライバレベルでシームレスに行われるが,「GPUコアの一部をGPUモード,それ以外をGPGPUモードで使う」といった動作は(少なくとも発表時点では)サポートされておらず,完全なモードチェンジを行う必要がある。そして,この切り替えには,相応の時間がかかる(=レイテンシが発生する)。
 例えば3Dゲームエンジンでグラフィックス描画と物理シミュレーションを単一GPUで行わせる場合,レンダリング処理と物理シミュレーションをオーバーラップさせて実行したりはできない。つまり,モード切替の回数を最小限に留めないと,それがゲーム全体のパフォーマンスを低下させることはあり得るのだ。

 この点についてNVIDIAも改善の必要性を感じており,次世代製品ではモード切替速度を上げていくという。さらに代案として,現行世代では「デュアルグラフィックスカード環境で,片方をGPUモードで動作させて3Dグラフィックスレンダリングに専念させ,もう片方をGPGPUモードに専念させる」動作モードを提供するという。
 ここでのポイントは,新しくGeForce GTX 200シリーズを搭載したグラフィックスカードを購入したユーザーは,(それまで使っていた)GeForce 8/9世代のグラフィックスカードに,GPGPUモード担当のセカンダリカードとして“第2のGPU人生”を歩ませられるようになることだ。これは,頻繁にグラフィックスカードを買い換える,ハイエンド指向のPCゲーマーにとっては嬉しいだろう。

 なお,CUDAのマルチGPU対応だが,NVIDIA SLI(以下,SLI)とは異なり,システムからは各GPUが独立した,複数の並列コンピューティングリソースとして見える。そのため,SLIブリッジコネクタは不要で,異なるモデルのGeForceであっても問題がない。ただ――これはエンドユーザーが意識すべき問題ではないが――マルチGPUで“マルチCUDA”を行う場合は,その構成を明確に意識したプログラミングを行う必要がある。

 

 

GPGPUとしてのGeForceが持つ能力と,そもそもCUDAが生まれた理由

 

 さて,従来のGeForce 8/9シリーズと新しいGeForce GTX 200シリーズのGPGPUモードでは,それぞれどのようなポテンシャルの違いがあるのだろうか。
 この点についてNVIDIAは,二つの表を以下のとおり示した。

 

image

単精度ベクトル演算性能の比較

 

image

倍精度ベクトル演算性能の比較

 

image

同時掲載した,もう1本の連載記事にも登場しているTony Tamasi氏(VP, Technical Marketing, NVIDIA)

 GeForce 8/9シリーズの持つ演算コアであるストリーミングプロセッサ(Streaming Processor,以下SP)はIEEE 754準拠の32bit整数/32bit浮動小数点(FP32)のスカラプロセッサで,複数個のSPを起用してベクトル計算を行う。ベクトル計算能力で,競合となるIntelのSSE(Streaming SIMD Extensions,ストリーミングSIMD拡張命令),IBM Power系のAltivec,IBMと東芝とソニーコンピュータエンタテインメントが共同開発したCellのSPE
(Synergistic Processor Element)と比較した場合に,見劣りするような部分はないとNVIDIA。同社のテクニカルマーケティング担当副社長であるTony Tamasi氏は「低く見積もっても,Power Altivecには勝っている」と自信を見せる。表を見るとなるほど,逆数(Reciprocal)系の計算では,随一の精度を持っていたりする。

 別途掲載した「ワンビッグGPUの夢よ,再び!?」でも説明したとおり,GeForce GTX 200シリーズのSPは倍精度64bit浮動小数点(FP64)積和算器を持った。そのため,CUDA 2.0ではFP64の取り扱いが出来るようになっており,「SSE2やSPEと比較して,とくに優勢」というわけではないが,競争力があることは窺える。なお,CUDAでサポートされていない「Flags」とは例外処理エラーのフラグで,GeForce 8/9シリーズから引き続き,GeForce GTX 200シリーズでもサポートされていない。
 いずれにせよ,GeForce 8以降のGeForceが,並列コンピューティング向けベクトルプロセッサとして,高い能力を持っていることは何となく分かったと思う。

 では,なぜわざわざGPUをGPGPUとして使うのか。疑問を感じた読者もいると思うが,実のところ,高尚な理由はとくにないのだ。
 流れとしては,

  • 3DグラフィックスのためにGPUが誕生
  • GPUの進化とともに,高性能なベクトル演算機能が与えられるようになる
  • さらに,プログラマブルシェーダアーキテクチャが台頭し,柔軟性が加わる
  • 「これは3Dグラフィックスのためだけに使うのはもったいないよ」という風潮になる
  • ハードウェアレベルでの対応を少々行い,並列コンピューティング向けの活用メソッドが提供される

 といった感じになる。
 ただ,高性能なGPUとして訴求され,普及していったものが,別の用途にも使えるようになるわけで,これを悪くいう人はいないだろう。

 

image

こちらはCUDAの優位性と必然性について語るJohn Milner氏(Director of CUDA Development, NVIDIA)

 NVIDIAのCUDA開発ディレクターであるJohn Milner氏も「これまでにも“並列コンピューティングアクセラレータ”のような製品は存在したが,それらはあくまでプロ用で,一般向けではなかった。しかしGPU(筆者注:GeForceのこと)は違う。現在CUDAが使えるGPU(筆者注:GeForce 8以降のGPU)は7000万個が世に出回っており,CUDA対応ドライバは1週間当たり35万のダウンロードがある。そして何より,開発キットをダウンロードした人達が累計6万人に達していることに目を向けてほしい。CUDAは現在,最も普及が進んでいる並列コンピューティングプラットフォームだ」と述べている。

 

 

CUDA 2.0でPhysXアクセラレートに対応 GeForceでゲームプレイ物理&効果物理を加速

 

 さて,CUDA 2.0をGeForceから利用できるようになって,おそらく最もゲーマーのメリットになると思われるのが,冒頭でその名を挙げたPhysXだろう。

 

image

「PhysX by NVIDIA」のTシャツを着た,Manju Hedge氏(VP, PhysX Solutions, NVIDIA)。AGEIAのチェアマン兼CEOだった人である

 思い返せば,旧AGEIA Technologies(以下,AGEIA)の物理シミュレーションアクセラレータ「PhysX PPU」(PPU:Physics Processing Unit)は確かに技術的な優位性があったものの,“それだけ”のために,搭載カードをユーザーに買わせるのは難しく,結果,一般ユーザーには(あまり)普及しなかった。しかし今回は,「新たに何かを買う必要がなく,いま手元にあるGeForceで物理アクセラレーションをアクセラレートできるよ」という話なのだ。
 NVIDIAは,PhysX PPUによる物理シミュレーションの仕組みを,CUDA 2.0で実装することにより,GeForceから利用できると考えたわけである。

 「PhysX PPUのドライバはアセンブリ言語で書かれていたので,それをC言語ベースのCUDAへ移植することはそれほど難しいことではなかった」(Tamasi氏)とのことだが,買収直後からの4か月で作られたとは思えないので,(想像の域は出ないが)買収発表のだいぶ前から,NVIDIAと旧AGEIAの間で,共同作業は進んでいたと思われる。

 ところで,「GPUで物理」といえば「効果物理」(Effects Physics)をアクセラレートする「Havok FX」を連想する人も少なくないだろう。
 Havokや旧AGEIAのような物理シミュレーションライブラリ(=物理シミュレーションエンジン)のメーカーは,ゲームにおける物理シミュレーションを,大きく二つのカテゴリに分けている。

 一つは,ゲームルールを司るゲーム進行に密接な関わりを持つ,「ゲームプレイ物理」(Game play Physics)」。もう一つは,ゲーム進行には無関係な,見た目を派手にするだけの「効果物理」(Effects Physics)だ。レースゲームで喩えるなら,車両の挙動や衝突の処理がゲームプレイ物理,衝突時に発生する火花や破片の飛散などが効果物理に相当する。

 ゲームプレイ物理を司るには,衝突が起こりうるオブジェクトの組み合わせを検索したり並べ替えたりする処理が必要で,これを“一方通行のストリーミングプロセッサ”然としたグラフィックスパイプラインの処理系で実行することはほぼ不可能だった。Havok FXでも,そうした処理はCPUで行って,さらに,ある物理シミュレーションの結果がほかの挙動に影響を及ぼさない組み合わせだけを選択してGPUに流し込むような処理系となっていた。
 効果物理はゲーム進行にそれほど大きく関わらないため,複数フレームに1回の低頻度でCPUとGPUのインタラクション処理を行い,“ゆったりと物理シミュレーションを実行する”のが許される。しかし,ゲームプレイ物理の場合はそうはいかない。ゲーム進行に密接に関わるので,毎フレームごとに,場合によっては毎フレーム以上の頻度で,物理シミュレーションを行う必要があるのだ。
 だから,CUDA 2.0以前,GPUに向いているのは効果物理だけと言われていた。

 

image

GeForce GTX 200シリーズにおけるシェーダクラスタ(Thread Processor Cluster)の仕組み

image

NVIDIAがアピールする,PhysXアクセラレーション時のメリット

 GeForce 8以降のGPUにおけるシェーダプロセッサの詳細は別記事を参照してほしいが,一つのStreaming Multi-processor(以下,SM)内にある8基のSP同士は,GPGPUモードにおいて16KBの共有Local Memoryを介した相互連携が可能で,さらにSMをまたいだ相互連携も行える仕組みがある。L1キャッシュはテクスチャユニット用途専用とされていたこともあって,SMをまたぐ場合はL2キャッシュ(最悪の場合はグラフィックスメモリ)を経由する必要があるため,レイテンシは大きくなるが,それでもCPU側のメインメモリよりはかなり高速。CUDA 2.0によって,ゲームプレイ物理のアクセラレーションも現実味を帯びてきたのだ。

 「GeForce 8以降のGPUにおいて,GPGPUモードにおける8SPと共有Local Memoryの構造は,PhysX PPUのアーキテクチャと非常によく似ていたので,PhysXの『CUDA Solver』実現は確信していた」(Tamasi氏)とのこと。Solverとは「OSとハードウェアの関係においてドライバに相当するような役割を担うソフトウェアモジュール」で,PhysXのCUDA Solverでいえば,PhysX APIをGeForceのGPGPUモードで実行するためのものだ。また,Hedge氏は「PhysXのCUDA Solverはゲーム物理,効果物理の区別なくアクセラレーションが可能だ」とも述べている。
 下に示したブロック図は,PhysXのソフトウェアレイヤーを表したダイアグラムだ。PhysXがユニークなのはHAL(Hardware Abstraction Layer,ハードウェアごとの違いを吸収して上位アプリケーションを共通に動作させる仕組み)があり,初めから,さまざまなハードウェアでの実装が想定されているところ。アプリケーション側はSDKベースで開発されているため,Solverを切り換えるだけでアプリケーションはそのまま,それぞれのハードウェアの特長を生かした形で動作できるのだ。

 

image

PhysXのソフトウェアレイヤーを示したブロック図。「APEX」は「Applied PhysX Extension」の略で,PhysX SDK内の物理プリミティブを組み合わせて複雑な物理イベントをオーサリング出来たりする仕組みのことである。APEXと同列で扱われているNaturalMotionについては,2008年5月31日の記事を参照してほしい

 

 そう,CUDA 2.0のPhysX Solverが提供されれば,PhysXはGeForce 8以降で自ずとアクセラレートされるのである。もちろん,すでに販売されている既存のPhysX採用タイトルも,GeForce 8以降+CUDA 2.0で加速できることになる。DirectX 10世代の3Dベンチマークアプリケーション「3DMark Vantage」の「CPU Test 2」はPhysXに対応しているが,当然これもアクセラレーションが効くので,3DMark Vantageのスコアは今後,GeForce 8のGPUを搭載した環境で向上する可能性が高い。

 

image
image

Editor’s DayでNVIDIAは,CUDAベースのPhysXを利用して,「Unreal Tournament 3」をプレイしてみせた

 

image

PC用のPhysX採用タイトルは続々登場すると予告された

 PhysXの正式名称はAGEIA PhysXからNVIDIA PhysXへと切り替わった一方,サポートされるハードウェアに変更はない。x86 CPUやPhysX PPUはもちろん,Xbox 360やWiiのPower系CPUやCellプロセッサも継続的にサポートされる。
 なお,対応ドライバは,GeForce GTX 200シリーズの発表には残念ながら間に合わないものの,2008年7月中までには一般ユーザーへ公開される予定になっているという。

 

image
image

PhysXがCUDA 2.0ベースのGeForceで動作するデモの様子(1)。これは布のシミュレーション

 

image
image

PhysXがCUDA 2.0ベースのGeForceで動作するデモの様子(2)。ソフトボディ(柔体)物理シミュレーションの例だ。積み上がった柔らかいカエルのゴム人形が崩れる様をシミュレートしているが,折れ曲がった部分が,ビヨーンと元に戻る感じがよく表現されている

 

image
image

PhysXがCUDA 2.0ベースのGeForceで動作するデモの様子(3)。水面上の物理シミュレーションもGPUで実現される。水が赤い箱に衝突して迂回しているような流れとなり,複雑な形状の波を生成している

 

 

GeForceでH.264ビデオエンコードは従来の5倍高速に

 

image

CUDA 2.0は,GPUを使った並列コンピューティングプラットフォーム

 CUDA 2.0では,GeForce 8以降のGPUに対して,多様な並列コンピューティングライブラリが提供される。CUDA 2.0ライブラリを使ってアプリケーションを開発すれば,PhysXと同じように,GeForceによるアクセラレーションという恩恵が得られるようになるのだ。
 一般アプリケーションにおけるCUDA 2.0ライブラリの利用という話になるため,ここからはゲームとちょっと距離が離れるが,ご勘弁を。

 さてこれまで,MMXやSSEといったマルチメディア拡張命令を持つCPUを搭載したシステムでは,それら拡張命令に最適化されたアプリケーションを利用すると,普通に動作させるよりも高いパフォーマンスを得られた。CUDA 2.0によるアクセラレーションというのはまさにこれと同じで,GeForce 8以降のGPUを搭載し,CUDA 2.0対応ドライバがセットアップされた環境で,最適化済みアプリケーションを利用すると,高いパフォーマンスを期待できるようになる。

 

image

CUDA 2.0ベースの並列コンピューティング処理として,一般のPCユーザーに最も身近なものは,おそらくビデオストリーム(≒ビデオファイル)のトランスコード(≒エンコード)だろう

image

以前から「RapiHD」と紹介されていたトランスコードソフトの名称は「Badaboom」になった。GeForce GTX 280搭載環境で5倍速のH.264トランスコードを見せつけた同ソフトは,2008年8月発売予定

 では,どんなアプリケーションの高速化が期待できるかといえば,おそらく最も期待されているのはビデオのトランスコード(≒エンコード)処理だろうと,前出のCUDA開発担当ディレクター,Milner氏は述べる。そして,Editor’s Dayでは,CUDA 2.0ベースのビデオトランスコードソフト「Badaboom」の動作デモが公開された。

 最初のデモは「1280×720ドット/30fpsの高解像度MPEG-2ムービーをiPhone向けのH.264ムービーに変換する」もので,リアルタイム再生の最大5倍速でエンコード可能なさまを見せつけた。見た目に衝撃的だったのはプレビュー画面で,デモでは,エンコード中のフレームをDirectX 10フレームバッファとして出力していたのだが,そのプレビュー画面のフレームレートが150fpsをマークしていたのだ。エンコード中のプレビューといえば,紙芝居状態のコマ送りというのが見慣れた情景だが,今回のデモでは,プレビューも5倍速の早送り状態で,コマ落ちなく表示されていたのである。

 

image

GeForce GTX 280を利用すると,Core 2 Quad/3GHzの約10倍高速にエンコード可能とNVIDIAは主張する。GeForce 9600 GTでも,リアルタイム再生の2倍速処理が可能な点に注目

 ちなみに右のスライドは,NVIDIAが示した実験データ。2時間分の1280×720ドット/30fpsムービーを,さまざまな環境でエンコードしたときの所要時間を示したものだ。ここでもリアルタイムの約4倍速エンコードが達成されたことが示されている。

 なお,Elemental Technologiesの実装では,一度に複数のビデオストリームをトランスコード可能というのが実に面白い。この場合,GPU内の演算リソースは二つのビデオストリームを処理することになるため,それぞれのエンコード時間は2倍に延びる。しかし,リアルタイム再生比5倍速でエンコードできれば,2ストリーム同時でも2.5倍速。これなら,十分に試す価値がある。
 ハイエンドで,かつ世代の新しいGeForceであればあるほど高速にトランスコードできるのはいうまでもないが,NVIDIAの実験によると,GeForce 9世代のミドルクラスGPUである,GeForce 9600シリーズでも,リアルタイム再生の2倍速で処理可能だそうだ。また,Elemental Technologiesの実験では,同一ストリームのエンコードで比較した場合,GeForce GTX 280はGeForce 8800 GTXの1.65倍高速とのこと。

 ところで,Elemental TechnologiesはAdobe Systems製の業務用ビデオ編集ソフト「Adobe Premiere Pro」用のRapiHDプラグインも開発中として,こちらのデモも公開した。
 1440×1080ドット/25MpsのMPEG-2ストリームをH.264へトランスコードするとき,Adobe Premiere Pro内蔵のエンコーダでは毎秒6fps程度のエンコードソフトになるという。これに対して同社のRapiHDプラグインでは,同条件にてリアルタイム再生の2倍速処理を行えることが実演された。

 

image
image

Adobe Premiere Pro用プラグインとして提供される予定のプロフェッショナル向けH.264トランスコーダも開発中。高解像度ビデオもリアルタイム再生の2倍速変換が可能と証明してみせた

 

 現在,RapiHDのH.264エンコーダはベースラインとメインのプロファイルに対応しており,近い将来,ハイプロファイルへの対応も行うとのこと。また,将来的にはマルチGPU(マルチCUDA)への対応も行っていきたいと,Elemental Technologiesは述べていた。

 

 

「アナタの寝ているGeForce,貸してください」Folding@Homeは数十PFLOPS時代に突入する

 

 PCやPLAYSTATION 3などに向けたクライアントが無償提供されている「Folding@Home」プロジェクトだが,このたびCUDA 2.0版クライアントの提供が発表された。

 

image

スタンフォード大学のVijay Pande教授

 タンパク質はその折りたたみ(Folding)構造の違いで果たす機能が違ってくる。タンパク質の異常な折りたたみがアルツハイマー病や癌の原因だとも考えられており,このタンパク質の折りたたみ構造の謎を知ることが,治療や新薬の開発,もっといえば生命の謎に近づけるとされている。このタンパク質の折りたたみ構造の解析を,世界中の空いているコンピュータを使って分散実行させて行おうとしているのがスタンフォード大学が推し進めているFolding@Homeというプロジェクトだ。

 

image

NVIDIA側の実験では,GeForce GTX 280を利用したFolding@Homeパフォーマンスは,PLAYSTATION 3の約5倍だったという

image

現時点で,Folding@Homeに参加している全世界のコンピューティングパワーの合計は約1.9PFLOPS

 現在,Folding@Homeに参加している世界中のコンピュータの演算能力の合計は約1.9PFLOPS(PetaFLOPS)。GeForce GTX 280は1TFLOPS弱(933GFLOPS)とされていることもあり,スタンフォード大学教授で,Folding@Homeの父と呼ばれているVijay Pande氏は「CUDAベースのクライアントがリリースされることで,さらにコンピューティングパワーが引き上げられることを見込んでいる」と期待を寄せる。

 前述したように,GeForce 8以上は世界中に7000万個あるとされ,仮にそれらすべての平均演算能力を100GFLOPSとして単純計算すると,7000PLOPSもの演算能力が世界で眠っていることになる。もちろん,これは捕らぬ狸の何とやらだが,Pande教授は「その0.1%でも参加してくれれば7PFLOPSになる。1%なら70PFLOPSだ」と述べ,Folding@Homeが,CUDA 2.0によって数十PFLOPS時代に突入する近い将来をを予感。また,「今やFLOPS,すなわち浮動小数点演算が無料の時代に来ている。この時代では,現在のアルゴリズムの高速化に満足しているだけではいけない。新しいソフトウェアパラダイムの模索をして,この膨大な計算能力を有効に使うことを考えなければ」と結んでいた。
 GPGPU(≒CUDA)によって提供される,膨大な並列コンピューティング性能を効果的に生かすテーマの探求こそが,先端ソフトウェア技術者に課せられた責務といったところなのだろう。

 

image

ゲームをプレイしたりしていないときのGeForceをFolding@Homeに参加させれば,数百PFLOPSに到達できるかも? だけど消費電力の観点からすればあまりエコではなかったりも?

image

実際に実動デモが公開されたCUDA 2.0版Folding@Home。これはGeForce GTX 200シリーズのグラフィックスカードが発売された後,間もなく提供される予定だそうだ

 

 マルチコアCPUが台頭してきたとき,既存のアルゴリズムを加速するため,マルチスレッド化への改修が主に行われた。しかし,今回のGPGPUへのステップアップではまったく新しいソフトウェアパラダイムが誕生するかもしれないし,いや,逆にむしろ生み出さなければならないのだ。

 

 

CUDA 2.0で加速するさまざまなアプリケーション 検索や医療分野でGeForceが活躍!?

 

 そのほかEditor’s Dayでは,CUDA 2.0で可能になる(かもしれない)身近なアプリケーションやサービスが,Milner氏の口から語られた。

 一つは新しい検索エンジンの可能性について。
 GPUのデータ並列コンピューティングパワーを使えば,テキストの検索が数十倍から数百倍加速されるのはもちろんだが,写真や動画の検索に新しい可能性を見出せるという。

 例えば現在の写真や映像の検索はキーワード(=単語)ベースだ。ある人物の写真や動画を検索したい場合,その人名で探すのが今までのやり方である。その点,GPGPU(CUDA)ならば動画のデコードと画像認識を超高速に行うことが出来るため,例えば,ある人物の顔写真をキーにして,その顔を含む動画を手元のPCやインターネットから検索することも現実レベルで可能だというのだ。

 

image

Barack Obama氏の演説ムービーを,氏の写真から探せるようになる――これが,GPGPUが可能にする次世代型映像検索の形

 現在でも動画のデコードは可能だし,顔認識もCPUで行えるが,その実効速度がCUDAベースのGPGPUで数十倍から数百倍になることによってさらに上の次元のサービスが可能になるというわけ。もちろんインターネットの検索エンジンでそうした高度な映像をキーにした検索サービスを提供するにはサーバー側にCUDAベースのGPGPUソリューションを実装する必要があるが,自分のPC内で検索するということであれば現実味はさらに増すだろう。
 検索は写真でなくてもいい。例えば「こんな写真(風景)だった」とおぼろげながらに覚えている漠然とした色分布を適当なペイントソフトで図版として描いて,これをキーにして検索をかければ,その色分布に近い写真や動画を見つけることが出来るかもしれない。

 

image

「三次元超音波スキャンの可視化を,GPGPUならばCPUの20倍高速化できる」とTechniScan Medical Systems

 またNVIDIAは,GPGPUがが,医療の分野にも革新をもたらすとしている。
 妊婦の胎児の成長の様子や人体内部の様子を調べるのには人体に安全な超音波CTスキャンが有効だが,CUDA 2.0ベースのGPGPUなら,超高解像度の三次元超音波スキャンの可視化を,CPUの20倍高速化可能だと,同システムを開発しているTechniScan Medical Systemsが確認したという。
 このほか,新薬開発や,衣服のデザイン,数値計算,ボリュームレンダリングなどにも,CUDAベースのGPGPUは有用とのことだ。

 

image

悪性腫瘍など特定のタンパク質に対して,どんな薬物が有効なのかを分子レベルでシミュレーションできる「AutoDock」において,GPGPUは従来の12倍高速化できたという

image

衣服の動きから,着心地を検証したりできるシステムに,CUDA 2.0から物理エンジンを実装すれば,フルリアルタイムでできるようになるとして,アパレル業界も注目する

 

image

GeForce GTX 200シリーズがGPGPUモードでFP64に対応したこともあり,数値計算ソフトもGPGPU対応へ動き出した。MathWorksによると,GeForce 8800 GTXはCore 2 Duo/2.40GHzの17倍高速という

image

CTスキャンのような医療データから,工業デザインデータ,地理学/地質学データなど,多様な応用先のあるボリュームレンダリング(※無数の断面図から立体を再構築する技術)。GPGPUのアプローチで同機能を利用するシステムも開発されている

 

 

CUDA 2.0のリリースによって異種混合マルチGPUが意味を持ち始める

 

 「研究者のためのもの」だったCUDA 1.1に対して,一般ユーザーやゲーマーにも分かりやすい形で利益をもたらせてくれるため,アプリケーションやゲームだけでなく,GeForce 8以降の人気までもを加速させる可能性を秘めているCUDA 2.0。SLIだと,異なる世代のGeForceは組み合わせられないが,CUDA 2.0なら,「新しい世代のGeForceにレンダリング,手持ちの古いGeForceにCUDA 2.0」といった具合で任せることができる。このメリットは大きい。

 また,グラフィックス機能統合型チップセットのグラフィックス機能を利用する,Hybrid SLIのGeForce Boostも,チップセット側のGeForceをCUDAで利用する場合には,意味を持ちそうだ。現在のところGeForce Boostは,ローエンド環境にフォーカスされており,ハイエンドGPUとの組み合わせは「無意味」としてサポートされていないが,今後“CUDA Boost”として利用できるようになれば,意味が出てくるだろう。

 そして何より,物理シミュレーション,それもゲームプレイ物理までもをGPUにやらせるというのは非常に興味深いテーマだ。3Dゲームにとって物理シミュレーションは,3Dグラフィックスと並んで重要な要素なので,GeForceはゲーマーにとって,1粒で2度美味しいGPUに進化する可能性がある。

 

image

「ハードウェアアクセラレーションに対応する」点で,HavokよりもPhysXが決定的に優れるとNVIDIAは位置づける。HavokとAMD,そしてHavokの背後にいるIntelと,三つ巴の戦いが始まる?

 では,このままNVIDIAの独走が始まるのかというと,そうはなりそうにない。ライバル達が黙って見ているわけはないからだ。
 NVIDIAへの対抗策として,AMDとHavokは,両社が提携して本格的な物理シミュレーションのアクセラレートシステムを開発すると発表した(関連記事)。
 言うまでもなく,Havokと旧AGEIAはライバルで,AMDのグラフィックス部門にとってNVIDIAはライバル。しかも,Havokは今やIntelの子会社なので,AMDと提携しつつ,裏でIntel製CPUや,NVIDIAやAMD対抗となるメニーコアベースのGPU「Larrabee」(開発コードネーム)に向けて,自社の物理エンジン最適化を進めているのはまず間違いない。複雑に絡み合ったライバル関係が構築されており,従来型の“後出しじゃんけん式”の戦いとは違った,面白いことになると思われる。,

 CUDA 2.0を皮切りに,GPGPUソリューションは,ゲーマーを含む一般PCユーザーの身近な存在になっていくだろう。しかし勢力図が落ち着くまでは,もう一波乱ありそうだ。

 

  • 関連タイトル:

    GeForce GTX 200

  • この記事のURL:
line
4Gamer.net最新情報
トピックス
スペシャルコンテンツ
注目記事ランキング
集計:04月23日〜04月24日
タイトル評価ランキング
87
82
NieR:Automata (PS4)
70
FINAL FANTASY XV (PS4)
2016年10月〜2017年04月