PR
図1 Khronos Group, PresidentのNeil Trevett氏
図1 Khronos Group, PresidentのNeil Trevett氏
[画像のクリックで拡大表示]
図2 OpenCLの策定スケジュール。ドラフト仕様は完成し,ボード会員からの承認を待っている段階にある。2009年に適合性試験のプログラムを発表し,2009年中に対応製品が登場することを期待しているとする
図2 OpenCLの策定スケジュール。ドラフト仕様は完成し,ボード会員からの承認を待っている段階にある。2009年に適合性試験のプログラムを発表し,2009年中に対応製品が登場することを期待しているとする
[画像のクリックで拡大表示]
図3 OpenCLが採用したメモリ・モデル。GPUだけでなく,それ以外のプログラマブルなアクセラレータにも適用できるようにした
図3 OpenCLが採用したメモリ・モデル。GPUだけでなく,それ以外のプログラマブルなアクセラレータにも適用できるようにした
[画像のクリックで拡大表示]
図4 OpenCL Working Groupの参加メンバー
図4 OpenCL Working Groupの参加メンバー
[画像のクリックで拡大表示]

 ハードウエア・アクセラレータのAPIの標準化団体である米Khronos Groupは,策定中の新しいAPI「OpenCL」(open compute language)の概要を明らかにした(Khronos GroupのWebサイト内のOpenCLのページ)。米国時間の2008年11月17日にKhronos Groupは,高性能コンピュータ関連のイベント「SC08」に合わせてテキサス州オースチンで説明会を開いた。「現在はドラフト仕様をボード・メンバーに送り,その承認を待っている段階。これが順調に進めば2008年12月に発表できるだろう」(Khronos Group, PresidentのNeil Trevett氏,図1)。

 OpenCLは,グラフィックス描画LSI(以下,GPU)などのプログラマブルなハードウエア・アクセラレータに汎用計算を実行させるためのAPIである。米Apple Inc.が2008年6月に「Mac OS X」の次期版「Snow Leopard(開発コード名)」でOpenCLに対応すると表明したときにその名前が表舞台に登場した(Tech-On!の関連記事1)。Khronos Groupはその発表から1週間後に,「Compute Working Group」と呼ぶ新しいワーキング・グループを設置すると発表し,Apple社が提案したOpenCLを基に仕様策定の議論を進めてきた(Tech-On!の関連記事2)。

「Appleの提案を基に徹底的に議論した」

 現在のドラフト仕様は,「Apple社の提案にそのままハンコを押したものではない。半導体メーカーやソフトウエア・メーカーなどの参加企業が集まって徹底的に議論し,注意深く改良してきた」(Trevett氏)ものだという(図2)。例えば,Khronos Groupは当初,GPUを汎用計算に用いる,いわゆる「GPGPU」(general purpose computation on GPU)のAPIとしてOpenCLを考えていたが,DSPやマイクロプロセサ「Cell Broadband Engine」を汎用計算のアクセラレータとして用いるといった,ヘテロジニアス構成のシステム一般に適用できるように変更した(図3)。こうした検討の過程でAPIの名称をOpenCLに決定し,ワーキング・グループの名称も「OpenCL Working Group」に変えた。

 OpenCLは,ホスト(CPU)と計算エンジン(GPUなどのアクセラレータ)で構成する並列計算システムを想定する。ホストがアクセラレータ用のプログラムを指定し,そのプログラムが処理するデータをアクセラレータのメモリに転送することでアクセラレータに処理を実行させる。OpenCLでは,アクセラレータへのデータ転送やアクセラレータ用プログラムの指定といったホスト用プログラムの記述方法や,アクセラレータ用プログラムの記述方法,アクセラレータ用実行ライブラリのAPIなどを定義する。プログラムはC言語で記述する。アクセラレータを提供する半導体メーカーらがこのAPIに対応するコンパイラや実行ライブラリを用意すれば,一度OpenCLを使って作成したソース・コードを,複数のメーカーの,異なるアーキテクチャのアクセラレータで実行できるようになる(説明会のプレゼンテーション資料)。

 グラフィックス描画用APIである「OpenGL」との親和性を高めた点も特徴とする。例えばOpenGLを使ってGPUが描画した画像データに対する後処理をOpenCLでGPUが行うといった場合に,一度ホストのメモリにデータを書き戻す必要がないようにした。OpenGLの処理とOpenCLの処理がデータを共有できるようにすることで実現する。

日本から3社がワーキング・グループに参加

 OpenCL Working Groupの参加メンバーは立ち上げ当初より増加した。説明会でKhronos Groupが示した資料では,Barco社,Broadcom社,Electronic Arts(EA)社,エイチアイ,Movidia社,TAKUMIなどの名前が新たに加わっていた(図4)。この資料には掲載されていないが,Khronos Groupによればソニー・コンピュータエンタテインメントも参加しているという。