両社の最新GPGPU戦略

今回は両社とも、新GPUの発表に伴って、GPUを活用した映像ファイルのエンコードやトランスコーディングのソリューションを訴求してきたことが興味深い。これは両社のそれぞれのGPUが、それぞれにGPGPU的に積極活用できることをアピールしたものだ。

NVIDIAは、同社のGPGPUプラットフォーム「CUDA2.0」によって提供される多様な並列コンピューティング・ライブラリを利用したアプリケーションの1つとして、動画エンコーダがアクセラレーションできることをアピールした。

NVIDIAが公開したのがElemental Technologiesと共同開発中のCUDA2.0ベースの「RapiHD」テクノロジーだ。現在、8月発売予定のスタンドアローンで使えるトランスコーディングソフト「Badaboom」と、Adobe Systems製の業務用ビデオ編集ソフト「Adobe Premiere Pro」用のRapiHDプラグインの開発を行っており、GeForce GTX 200シリーズの発表会ではその実動デモが行われた。

Badaboomは、1280×720ドット/30fpsの高解像度MPEG-2ムービーのiPhone向けのH.264ムービーへの変換を、リアルタイム再生の最大5倍速でエンコードすることが可能。また、RapiHDプラグインは、1440×1080ドット/25MpsのMPEG-2ストリームをH.264へトランスコードする際、リアルタイム再生の2倍速でエンコードが行えるとしている。

Elemental TechnologiesとNVIDIAが共同開発中のトランスコーディングソフト「Badaboom」

HD→SDのH.264トランスコーディングはリアルタイム再生の約5倍速で行える。これはデュアルコアCPUで行った場合の約18倍の速さに相当

RapiHDベースのGPGPUエンコーディング・エンジンはAdobe Premiere Pro用プラグインとしても提供予定。HD→HDの高解像度ビデオのトランスコーディングもリアルタイム再生の2倍速変換が可能であることをアピール

ATIは、Radeon HDシリーズでアクセラレーションされる「AVTインターフェース」(AMD Accelerated Video Transcoding Interface)と呼ばれるエンコーディング・エンジン向けのライブラリを公開するとしており、これを利用して開発されたエンコーディングアプリケーションがアクセラレーションされる仕組みだ。AVTインターフェースのライブラリそのものの実行は、CAL(AMD Compute Abstraction Layer)コードに変換され、これがドライバを通じてGPUを駆動することで実現される。

ATIが提唱するGPUによるビデオエンコーディング・ライブラリ・システム「AVT」の動作概念

Radeon HD 4800シリーズならばCore 2 Duo E8500の約19倍の速さでトランスコーディングがこなせるという

ただ、このAVTインターフェースはまだ開発中の模様で、Radeon HD 4800シリーズの発表会で公開されたPowerDirector7に含まれるGPGPUトランスコーディングエンジンは、Radeon HD 4800シリーズ専用のCALコードの直実行で動作しているとのことで、Radeon HD 3800シリーズ以前には対応していない。

とはいえ、現状のテストバージョンのパフォーマンスは非常に高く、1080pのフルHD動画のトランスコーディングを、Radeon HD 4800シリーズがCore 2 Duo E8500の19倍も速く行えたというデータが示されている。さらに同時に4ストリームの同時エンコードの実演デモも行われており、柔軟性の高さをアピールしていた。このRadeon HD 4800シリーズ対応のトランスコーディングエンジンの提供時期は明らかになっていないが、PowerDirector7ユーザーへは無償アップデートの形で提供されることだけは、開発元のサイバーリンクが確約している。PowerDirector7は日本でも知名度の高いソフトだけにその反響は大きいはずだ。

Radeon HD 4800シリーズ専用のPowerDirector7のバッチ・トランスコーディング。同時に4ストリームのエンコードを実行している様子

そして、さらに、ゲームユーザーにとって身近なGPGPUテーマといえば、「物理シミュレーション」ということになるだろう。

NVIDIAは、これについても、やはりCUDA2.0ベースで実現する。

NVIDIAは2008年2月に物理シミュレーションエンジン「PhysX」の開発元であるAGEIAを買収したが、このAGEIA PhysXをCUDA2.0を利用してGeForce 8000/9000/GTX 200シリーズでアクセラレーションする「CUDAソルバ」の提供を予定している。すでに関係者によるβテストが開始されており、PhysXベースのUnreal Engine3.0ベースのゲームや、ベンチマークソフトの3DMark Vantageの物理シミュレーション部分のアクセラレーションが実際に確認されている。このCUDA2.0によってPhysXがアクセラレーションされる仕組みに、NVIDIAは特に「GeForce PhysX」というブランドネームを与えている。

AGEIA PhysXは買収に伴ってNVIDIA PhysXに改称。右下のCUDA2.0によるCUDA SolverがPhysXのGPUアクセラレーションを実現する

Unreal Engine3.0は物理シミュレーションにPhysXを採用しているため、CUDAソルバ提供後は「Unreal TournamentIII」の物理シミュレーション部がアクセラレーションされる

GeForce PhysXに対応した発売予定タイトル群

ATIは、物理シミュレーションに関してはPhysXのライバルともいえるHAVOK社のHavok物理シミュレーションを、Radeon HD 4800シリーズなどでアクセラレーションさせる技術開発を行う予定であると、2008年の6月にアナウンスした。ただ、まだ発表だけであり、どのような仕組みかは全く明らかになっていない。

ちなみにHAVOKは2007年9月にIntelに買収されており、Intelの子会社のHAVOKが、IntelのライバルにあたるAMD(ATI)と技術提携するというのは、業界動向としても興味深い話ではある。

突然発表されたAMD(ATI)とHAVOKの技術提携。何がどうなるのかは全く不明。まさに声明発表といった風情

物理シミュレーションのGPUアクセラレーションについては「NVIDIA & PhysX 対 ATI & Havok」という図式になりつつある

ATIは「CPUメーカー(AMD)のグラフィックスプロセッサ部門」という立場もあって「GPUをグラフィックス以外のコンピューティング用途に活用する」というGPGPUプラットフォームの整備には、なんとなく消極的だったような印象を受ける。AMDはCPUとGPUの統合に積極的であるため、GPU単体だけを高性能汎用コンピューティングリソースとして積極アピールすることが、なんとなくCPUを自己否定しているようで心苦しい部分もあったのではないか。その心苦しさの一端が見られるのが、前出の「GPUによる動画エンコードがCPUの19倍高速」という比較グラフだ。対比先のCPUがIntel製CPUなのだ。このグラフにAMDのCPUを持ってくると「AMDのCPUは遅い」といっているようなイメージになるため避けたのだろう。

少々余談が過ぎたので話を戻すと、いずれにせよ、ATIは、ここにきて動画エンコード、物理シミュレーションという二大メジャー級GPGPUテーマが取り沙汰されるようになってから、急に激しい準備(根回し?)やブランディングの発表を行っているように見受けられる。

前編でも少し触れたように、ATIはGPGPU開発言語としてスタンフォード大学が開発したベクトル拡張版C言語ともいえる「Brook」のATI独自拡張仕様版、「Brook+」を2007年末よりリリースしているが、残念ながらこれで商業GPGPUアプリケーションが書かれているという話はまだ聞こえてこない。NVIDIAのCUDAプラットフォームがプロフェッショナルビジネスシーンやアカデミックシーンで積極導入されているのとはとても対照的だ。

ATIの考えるGPGPUエコシステムの概念図。自社技術であるはずのCALやBrook+は小さく扱い、オープンスタンダードなOpenCLや次世代DirectXをATIのGPGPUプラットフォームの標準として行きたいという意思表示にも見える

動画
ATIが今回公開したRadeon HD 4800シリーズ用のデモはGPGPUがテーマ。無数のカエルの労働者が自らの仕事をこなすために経路探索を行うが、その演算にRadeon HD 4800シリーズをGPGPU的に活用している。こちらもCALコードベースなのでRadeon HD 4800シリーズ専用になる (WMV形式 21.5MB 3分57秒)

Appleが提唱し、Khronosグループによりオープンプラットフォーム化が進められている、ストリーミングプロセッシングに適した拡張を施したC言語ベースのGPGPU開発プラットフォーム「OpenCL」、そしてデータパラレルコンピューティングに対応すると言われる「次世代DirectX」なども、GPGPUプラットフォームのスタンダードをかけて登場してくるが、ATIはそうした標準仕様の確立を待っているようにも見える。それまでは当面、技術力のあるソフトスタジオにCALベースで開発してもらうか(丁度PowerDirector7のGPUアクセラレーション・エンコーダがこのパターンだが)、あるいはAVTインターフェースやGPUアクセラレーション版HAVOKのような、特定用途のためのライブラリやミドルウェアをATIがイニシアチブを取って開発していくような方針になるのだろう。

CUDAのおかげでGPGPUプラットフォームの整備に先行している感もあるNVIDIAではあるが、それこそOpenCLや次世代DirectXなどの競合プラットフォームとの関係性をどう取っていくかが重要になってくるだろう。CUDAはNVIDIAのGPUをTESLAとして高く売るための要の技術であるために、NVIDIAとしてはCUDAの価値は落としたくないはずだからだ。

妊婦の胎児の成長の様子や人体内部の様子を調べるのには、人体に安全な超音波CTスキャンが有効だ。CUDAが、超高解像度の三次元超音波スキャンの可視化をCPUの20倍高速化出来ることが認められ、TechniScan Medical Systemsに採用された

MathWorksの数値計算システム「MATLAB」もCUDAへの対応を決定した。MathWorks社の実験では、Core 2 Duo 2.4GHzと比較して、GeForce 8800 GTXでのCUDAベースの実行で17倍のパフォーマンス向上を見せたとしている

プロフェッショナル用途のボリュームレンダリングを高速に実現するためには、非常に高価なボリュームレンダリング専用ハードウェアを必要としていた。この分野で名を馳せるdigisens社は3Dグラフィックスパイプラインではなく、あえてCUDAのアプローチでボリュームレンダリングを行う技術を開発した。digiens社の報告では、CUDAで実装したものが、デュアル Core Duo 2.3GHzのシステムの実行結果と比べ、50倍から70倍のパフォーマンスを記録したとしている

(トライゼット西川善司)