OpenCL仕様書でた

http://www.khronos.org/opencl/
CPUとかGPUとかだんだん区別がなくなってとにかくメニーコアな時代の実行環境か。
個々の実装の差異を吸収するために抽象化されているが、それでもC言語(C99)をベースにするのでかなり低レベルなもの。
自分の理解としてはヘテロでメニーコアの時代のOSのシステムコールみたいなもの。
Cの関数が実行の単位としてキューに積むと、なんかスケジューリングされてたくあんあるコアのどれかで実行されるような感じかな。
C99ベースといっても関数ポインタの使用には制限がつくらしい。

仕様書は300ページあってまだほとんど見ていないが、acknolodgementsのリストをながめると

などの他に
ARM, Qualcomm, Freescale, TI, Renesas, Nokia, Symbian
など携帯電話関連の会社も入っている。
OpenGLに対するOpenGL ESのような小さいデバイス向けのものも視野に入っているようだ。
そう遠くない将来で組み込み機器でもヘテロなメニーコア。


追記。
仕様書のイントロダクションところからちょっと拾って訳してみた。(超意訳)

OpenCLは種類の異なる(ヘテロな)プロセッサ間の並列演算のためのAPIクロスプラットフォームプログラミング言語から構成される。

OpenCL標準 は

  • データとタスクの両方の並列プログラミングモデルをサポートする。
  • 並列化のために拡張したISO C99のサブセットを活用する。
  • IEE754にもとづく数値演算処理を定義する。
  • ハンドヘルドと組み込みデバイスのためのコンフィギュレーションプロファイルを定義する。
  • OpenGL, OpenGL ESや他のグラフィックスAPIと効果的に連携できる。