AMDの日本法人である日本AMDは2008年12月16日,都内で
「ATI Stream」に関する報道関係者向け説明会を開催した。
ATI Streamは,AMD製のGPUを汎用コンピューティングに用いるときのブランドで,従来は,同社製のHPC(High Performance Computing)向け演算カード「FireStream」シリーズに特化して展開されていたもの。先にリリースされたドライバスイート「ATI Catalyst 8.12」で,ATI Radeon HD 4800/4600シリーズから利用可能になり,ようやく一般のPCユーザーが使えるところへ下りてきたというのは,
12月11日の記事でお伝えしているとおりだ。
将来的にはAIや物理エフェクトなどで,ゲームに利用される可能性もあるが,いまのところそういった動きはなし。AMDサイドも現状では,ビデオのトランスコードや再生時のアップスケールなど,動画処理を中心に訴求しているというのも,
既報のとおりである。
Jason Yang氏
|
だが,ATI Streamでサポートされる予定の
「OpenCL」についてはアップデートがあった。標準化団体
「Khronos Group」(クロノス・グループ)にAMD側の代表として参加し,OpenCLの策定にもかかわっているJason Yang(ジェイソン・ヤン)氏が飛び入りで参加し,OpenCLに向けたAMDの取り組みを説明したのだ。そこで今回は,「そもそもOpenCLとは何モノで,いったい何をもたらすのか」を中心に,説明会の要点をかいつまんで紹介していきたい。
オープンプラットフォームを
志向するAMDのGPGPU
「ベンダ依存だった規格はすべて消えていった。生き残れるのは業界標準だけ」とMakedon氏。暗に,「CUDAも同じ道を辿る」とほのめかしていた
|
|
説明会ではまず,「ATI Radeon HD 4800」シリーズの発表時に来日したTerry Makedon(テリー・マケドン)氏が登壇。AMDの新しいキーワードである「Fusion」を引き合いに出し,「CPUとGPUを一緒に使って問題を解決することが,まさにFusionだ。FusionはAMDのアイデンティティだ」と述べ,すでに存在するx86ベースの開発環境に加え,汎用GPUコンピューティング環境としてのATI Streamが存在することの意義を強調する。
そのうえで,「PCの環境はオープンなものだ」とMakedon氏。規格がベンダ依存だったがゆえに,PC業界のスタンダードにはならなかった規格,RambusメモリやNVIDIAのCg,3dfxのGlide――Glideを憶えている人はベテランPCゲーマーだろう――などの名を挙げ,「PCの世界では,業界標準しか生き残れない」と強調。従来同様,AMDはGPGPUでも,業界標準のみをサポートしていく姿勢をあらためて明確にした。
Buckingham氏は,AMDが計画する今後のGPGPUサポート計画を披露。OpenCL,DirectX,OpenGLといった業界標準APIの上に,ATI Stream SDKでサポートしてきた開発言語「Brook+」を乗せていくことを考えているようだ
|
|
続いて説明に当たったのは,同じくAMD本社から本説明会のために来日したEd Buckingham(エド・バッキンガム)氏。Buckingham氏も,「GPGPUは将来,オープンスタンダードな技術になるということを強調したい。特定の1社の(GPUの)ためにアプリケーションを作るのではなく,どのベンダの製品でも動くということでプログラミングの効率を圧倒的に上げることができる」とし,Khronos Groupで規格が策定されたOpenCLの重要性を強調する。
OpenCLは
「Open Computing Language」の略で,AMDやIntel,NVIDIAなどが加盟する標準化団体であるKhronos Groupが策定した,CPU&GPUコンピューティングのためのAPI(Application Program Interface)。要するに,ハードウェアの違いを吸収し,さまざまなベンダのCPUやGPU上で動作するコンピューティング環境である。
Buckingham氏は,Khronos GroupにNVIDIAも参加していることを挙げる。「彼らも,オープンスタンダードがなければGPGPUを数値計算には使えないと考えている。プロプライエタリ(※編柱:proprietary。ここでは『オープンでない』の意)は今後の道筋ではないのだ」。
AMDの「OpenCL担当」が語る
OpenCLの概要
そして,最後に登壇したのが,「休暇で日本にいたので,無理矢理連れてきた(笑)」(Makedon氏)というJason Yang氏である。
Yang氏はCTOオフィス(Office of the CTO)に所属する博士で,おもにHPC分野の調査を担当しているという。グラフィックス技術の祭典であるSIGGRAPHにおいて,並列コンピューティングをテーマにしたセッションを行ったことなどもあり,AMDでHPC分野のスペシャリストとして活動しているようだ。
さて,現時点でGPGPU,もしくはGPUコンピューティングというと,NVIDIA製GPUを使う場合はCUDA,AMD製GPUを使う場合はATI Stream SDKがサポートするBrook+を使って開発を行う必要がある。また,開発されたアプリケーションもベンダ固有になってしまう。つまり,開発言語,アプリケーションともにベンダに強く依存しているわけだが,これはあまりに不自由である。
そこでKhronos Groupは,GPUハードウェアを抽象化し,ベンダ依存を解消することを目的に規格を策定した。それがOpenCLで,「OpenCL上でアプリケーションを一度書けば,いろいろなデバイスで動かすことができる。デバイスを変えてもコードの変更は必要ない」(Yang氏)というわけだ。
OpenCLのプラットフォームモデル。ホスト上に載っている演算エンジン(Compute Unit)はGPUでもCPUでも何でもよく,OpenCL上では区別されない
|
また,先ほど筆者がOpenCLを「さまざまなベンダのCPUやGPU上で動作するコンピューティング環境」と紹介したように,OpenCLは必ずしも,GPUコンピューティング専用というわけではない。計算を行うエンジンはGPUでもCPUでも,何でも構わないのだ。「OpenCL上ではCPUやGPUの区別はなく,システムになにが載っているのかは知る必要がない」(Yang氏)。OpenCL上のアプリケーションは,OpenCLを通じて演算を行うエンジンの能力を知り,その能力に合わせて動作するといった形を取る。
ハードウェアの抽象化はローレベルだが,デバイスに依存しないアプリケーションが作成できるというのが,OpenCLの特徴
|
ただし,OpenCLのハードウェアの抽象化は,それほどレベルが高いものでもない。「デベロッパは必要に応じてハードウェアにアクセスできる。パフォーマンスの能力を限界まで引き出すにはそのほうが都合がいいからだ。また,CPUとGPUのインタラクションを効率的に行うためにも,ハードウェアの抽象化はローレベルのほうがいい」とYang氏は述べる。
その意味でOpenCLは,「ドライバとアプリケーションの中間に入る薄い皮のようなもの」と考えると分かりやすいかもしれない。ハードウェアを抽象化して隠蔽してくれるが,必要に応じてハードウェアの機能にアクセスすることもできるわけだ。
このほかOpenCLの特徴としては,OpenGL(Open Graphics Library,クロスプラットフォームの3DグラフィックスAPI)との連携や,将来的にはモバイルデバイスも視野に入っていることが挙げられる。
抽象度が低いということは,アプリケーション開発が困難という意味にもつながるのだが,そこには,それこそBrook+,あるいはCUDAといった抽象度の高い開発環境が存在している。AMDとNVIDIAはいずれも,OpenCLのサポートを表明しているので,こうした開発環境は,将来的にOpenCLの上に載るのではなかろうか。
実際,前出のBuckingham氏は「2009年第1四半期に予定しているATI Stream SDK 1.4では,Brook+を進化させ,新しい機能を追加する予定だ」としており,デュアルGPUソリューションのサポートや,OpenCL 1.0のサポートをを開始すると予告する。バージョン1.4がどのようなものになるかは注目だろう。
CPUで動作するOpenCLのデモ。数千のパーティクルを処理するもので,1/2/4コアで切り替えて動作させられるが,コードの変更は必要ないとYang氏
|
ゲームにおける物理シミュレートのハードウェアアクセラレーションは,利用できる環境(=グラフィックスカード)の限られることが普及の妨げになっていることは疑いない。その点,OpenCLのような,ベンダに依存しないレイヤーが普及することで,物理シミュレーションを活用するゲームデベロッパの数が増え,ゲームタイトルの数も増えていくというゲーマー的にうれしい展開もあり得る。
もっとも,ここまであえて触れてこなかったが,今後,DirectXにGPGPUをサポートするレイヤー「DirectX Compute Shader」が組み込まれる予定だ。OpenCLがDirectXに先行する形にはなったが,ゲームデベロッパはDirectXの対応を待っている段階かもしれない。ことWindows上ではOpenCLが現在のOpenGLのような位置づけ――使用するゲームタイトルもあるが多くはない――というマイナーなポジションに落ち着く可能性が決して低くない。もっとも,Compute Shaderが動作するのはDirectX 10/11対応ハードウェアに限られることから,Windows XPがまだしばらく生き残るようであれば,Windows XP上でも動作するOpenCLの存在は重要となるかもしれない。
今後は,GPGPUの標準化の第一歩を記したOpenCLを受けてDirectXがどうなるのか,そのあたりにも注目しておくといいのではないだろうか。
本稿の主旨からはやや離れるので余談になるが,ArcSoftは,ATI Stream対応版の同社製マルチメディアプレイヤーソフト「TotalMedia Theatre」が,フルHD解像度へのアップスケールを実現したと発表。10月下旬時点では720pまでだったので,1か月前後でATI Stream版の最適化にこぎ着けたことになる。なお同ソフトは,2009年1月のCESで発表され,日本語版も1月中に登場する見込みだ
|
|