ATI Streamとは?
ATI Streamについて、簡単に解説しておこう。
「ATI StreamはプラットフォームではなくGPGPUテクノロジの一形態である」とTerry Makedon氏(Software Product Management Manager, Graphics Product Group, AMD)は解説するが、広義としてはNVIDIA CUDAと同じような「GPUメーカーが提供する独自のGPGPUソリューション」ということになる。
ATI StreamではGPUハードウェアのネイティブな命令セットを抽象化するCAL(Compute Abstraction layer)を持ち、ここがドライバ部分に含まれることになる。
ATI Streamの開発キット「ATI Stream SDK」は2008年12月にリリースされるバージョン1.3を最新版としており、スタンフォード大学で開発されたGPGPU専用言語「Brook」のATI Stream向け拡張試用版「Brook+」を標準開発言語とする。NVIDIAのCUDAにもC言語をGPGPU向けに拡張した言語が含まれるが、ATI Streamにおいては、それがBrook+ということになる。Brook+もC言語にストリームデータ処理のための仕様拡張と関数を追加した仕様になっており、この点はCUDAとよく似ている。
プログラムは、このBrook+によってCALコードに変換されて初めて実行形態となる。
以前、ATI(AMD)がらみのGPGPU関連話題に上ったGPUネイティブ命令コードのClose To Metal(CTM)はGPUのローレベルにアクセスできたが、GPUごとのネイティブの仕様を理解する必要があったために、公開は一部のミドルウェアやアプリケーション開発者向けに留まる見込みだ。つまり、一般アプリケーション開発者はBrook+で開発することが基本スタイルになる。
階層図の右上端の「ツール、ライブラリ、ミドルウェア」があるが、半分ちょっとはCALに差し掛かっていて、残りはATI GPU HARDWAREに掛かっているが、これはソフトウェアの種類によってはCALを利用したり、CTMを利用したりすることがある……と言うことを指し示している。
さて、ここで気になるのは先代Radeon HD 3000の取り扱いだが、AMDは「Radeon HD 3000も見捨ててはいない」というコメントを筆者の取材に対して出している。Catalyst 8.12では、まだRadeon HD 3000シリーズはサポートしないが、将来的に対応させる予定だとのことだ。