OpenCLは、CPUやGPUなどを使って計算するためのAPIである。通常、GPUを使用する場合、それぞれの各GPU専用のAPIを使用してコードを書くことになるが、OpenCLを利用することにより、一つのコードからCPUやGPUといった処理を動かす対象に合わせたコードを生成することが可能となる。OpenCLは、CPU及びGPUに限らず、そのほかの演算装置も使用することが出来る。
OpenCLでは、実行時にコードをデバイスに合わせてビルドする。そのため、開発時には、OpenCLで動作させるコードは、そのままソースコードの状態でプログラム内に埋め込むことになる。外部に公開することが出来ないアルゴリズムの場合には暗号化して持つなどの工夫が必要。
並列化の手法としては、他に、OpenMPやMac OS X 10.6 (Snow Leopard) で搭載予定のGrand Central Dispatch (GCD) などがある。また、C++のライブラリとして、IntelのThread Building Blockがある。
なお、OpenCLはAppleが提案し、Khronos GroupがAPIの仕様などを決定している。仕様書などはKhronos GroupのWebサイトで公開されている。
目次