このページの本文へ

OpenCLでCUDAを追撃!? AMD「ATI Stream」が狙うものは

2008年12月17日 14時00分更新

文● 小西利明/トレンド編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

 GPUを強力な汎用並列プロセッサーとして活用する「GPGPU」技術が、コンピューティングの大きな潮流となっている。その流れの先頭にいるのが、米NVIDIA社の「NVIDIA CUDA」だ。広く普及したGeForce 9/GTXシリーズの存在と、「CUDA Zone」などでの多彩な関連情報やソフトウェアの提供により、HPC(High Performance Computing)分野に関わるソフトウェア開発者の支持を集めつつある。パソコン用のグラフィックスカードだけでなく、GPGPU専用カードやサーバーなども出荷されている。

ATI Streamに対応するGPGPU用カード「FireStream 9270」

ATI Streamに対応するGPGPU用カード「FireStream 9270」。NVIDIAのTeslaシリーズに対抗する製品だ

 その流れに対抗する米AMD社のGPGPU技術が、「ATI Stream」である。その鍵となるのは、標準化された汎用並列プログラミング規格「OpenCL」(Open Computing Language)だ。16日に行なわれた同社による説明会では、特にOpenCLによる利点が強調された。


RadeonでGPGPUを実現するATI Stream

 ATI StreamはAMD系GPUやGPGPU用カードを汎用並列プロセッサーとして利用するための技術である。パソコン用GPUの「Radeon HD 4000」シリーズを初めとして、グラフィックワークステーション用の「FireGL」、GPGPU用カード「FireStream」シリーズなどが対応している。

 パソコンとRadeon HD 4000シリーズで利用するためには、「Catalyst 8.12」以降のRadeon用ドライバーソフトウェアのインストールが必要となる。またAMDでは、Radeon HD 4800/4600シリーズとATI Streamを使い、HDビデオの高速トランスコードを実現するソフト「ATI Avivo Video Converter」を無償で配布している。

ATI Avivo Video Converterは無料配布中

Streamの効果を体験できるビデオトランスコーダー「ATI Avivo Video Converter」は無料配布中

 ATI Streamでは、GPUハードウェアの上に「ATI Stream Compute Abstraction Layer」(CAL)と呼ばれるソフトウェア層が配置され、C言語ベースの高級言語「Brook+」を用いてプログラムを開発する。NVIDIA GPUとCUDAによる開発環境と、基本的な構造は似ている。

Streamの構造図

Streamの構造図。開発言語にはC言語ベースのBrook+を使用

 説明会では、ATI Streamに対応した米ArcSoft社のビデオアップスケーリング技術「SimHD」のデモが披露された。GPUの強力な演算能力を使い、DVD品質の映像をリアルタイムでHD品質に向上させる、いわゆる超解像技術を実現するものだ。

Streamを使った超解像技術「SimHD」のデモ。右がアップスケーリングされた映像で、左のDVD映像に対して大幅にシャープネスをかけたような印象

 AMDではそのほかにも、「Adobe Acrobat Reader」や「Photoshop CS4」、サイバーリンク「PowerDirector 7」などがATI Streamに対応、あるいはアップデートで対応するとしている。


切り札は「OpenCL」

 環境を整え、対応ソフトも登場しつつあるATI Stream。しかし、2006年の第1版提供開始以来、技術情報と対応ソフトウェアの蓄積が進んでいるCUDAに対して、GPGPU分野での実績では、AMDが後塵を拝しているのは否めない。

 だが、AMDでStreamなどソフトウェア面を担当するテリー・マケドン(Terry Makedon)氏は、「CUDAがGPGPUを支配していると言うのは時期尚早」と述べる。ATI Streamが先行するNVIDIA CUDAに追いつき追い抜く鍵が、GPGPU分野の標準化技術になると期待されている「OpenCL」の存在だ。

 CUDAはあくまでNVIDIA製GPUを対象にした技術だが、OpenCLは特定のGPUに依存しない、汎用的な並列プログラミング規格を目指している。さらにCUDAがあくまでGPUだけを対象としているのに対して、OpenCLではCPUでも利用できる。ハードウェアは抽象化されるため、クロスプラットフォームの開発環境を構築できる(パフォーマンスを重視して抽象化の程度は低いとしているので、実際にクロスプラットフォームでの移植が容易かどうかは別問題)。なによりOpenCLの標準化には、AMDだけでなくインテルやNVIDIAなども関わっている。並列コンピューティングに関わる主要なプレイヤーが集っているのが、OpenCLの大きな利点だ。

OpenCLとCUDAの違い

AMDによる、OpenCLとCUDAの違い

異種コンピューティング対応がOpenCLの特徴

CPUとGPUによる異種コンピューティング対応が、CUDAにはないOpenCLの特徴

 GPUだけでなくCPUでも利用できるというOpenCLの利点は、将来的にCPU内にGPUの並列プロセッサー機能を取りこもうとしているAMDとしては、非常に重要なものとなる。例え現時点でNVIDIA CUDAが先行していたとしても、将来OpenCLが並列プログラミング規格として主流になれば、NVIDIAやインテルより優れたOpenCL環境を実現するGPU(あるいはCPU)を提供することで、CUDAのアドバンテージを覆すことも不可能ではない、というわけだ。

 説明会の半分はOpenCLに関わる話で、AMDがOpenCLの普及に賭けていることが如実にうかがえた。マケドン氏は直接CUDAを批判はしないものの、たびたび「プロプライエタリなシステムが生き残ることはない」という言葉で、いずれは標準化されたOpenCLが主流になるという自信を示した。

独自仕様が業界標準規格に取って代わられた例

先行した特定ベンダーの独自仕様が、業界標準規格に取って代わられた例を示して、CUDAもOpenCL+DirectX 11に取って代わられるとしている

 とはいえ、ATI StreamがOpenCLに対応するのは、2009年第1四半期に投入予定の「ATI Stream SDK 1.4」からだ。OpenCLに頼るだけではなく、パソコン用GPUやGPGPU専用システムなどで実績を積む必要もある。

 性能面での優位性もアピールされた。例えば、GPGPU用カード「FireStream 9250」では、単精度浮動小数点演算ではGeForce GTX 200シリーズ並みの1TFlops、倍精度浮動小数点演算ではGTX 200をしのぐ200GFlopsの性能を発揮するなど、性能面でも優位にあるとした。ハイエンドの「FireStream 9270」では、単精度で1.2TFlops、倍精度で240GFlopsの性能を発揮するという。

AMDのGPGPU用カードとその性能

AMDのGPGPU用カードとその性能。倍精度浮動小数点演算能力の高さをアピールする

FireStream 9270を最大8基搭載するAprius社の並列演算サーバー「CA8000」。4Uラックマウントサイズで、8枚の9270により最大9.6TFlopsを実現

 いずれにせよ、AMDのGPGPUが広く受け入れられるには、OpenCLへの対応とその普及が欠かせない。CUDAとの勝負は2009年が本番になりそうだ。

■関連サイト

カテゴリートップへ

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン