OpenCL 【Open Computing Language】
概要
OpenCL(Open Computing Language)とは、様々な種類のプロセッサや計算資源が混在する環境で並列処理を行なうための仕様を定めた規格の一つ。米アップル(Apple)社が提唱し、業界団体のクロノスグループ(Kronos Group)が仕様の策定や対応製品の認定などを行なっている。異種混在(ヘテロジニアス)の環境でチップごとの仕様の違いなどを吸収して、共通のAPIなどを用いて並列処理を行なうプログラムを記述できるようにするための枠組みを定めている。OpenCLに準拠した方法でプログラムを記述すれば、それぞれの実行環境に適した実行ファイルを生成できるようになる。
対象となるヘテロジニアスな環境とは、CellプロセッサのようにCPUの内部が異なる設計の複数のプロセッサコアで構成されている場合や、GPUやDSPなどCPU以外に特定の処理や演算に特化したプロセッサを搭載したシステムなどが該当する。
OpenCLは主にGPUで大量の数値演算を効率的に実行させるために利用され、GPU本来の目的であるグラフィックス処理だけでなく、科学技術計算や物理シミュレーションなど汎用の計算処理にGPUの演算能力を活用するGPGPU(General Purpose GPU)の有力な実装方式の一つである。
OpenCL自体が正式に対応しているプログラミング言語はC言語とC++言語だが、ラッパーライブラリなどを通じてC#やJava、JavaScript、Python、Rubyなど他の言語から利用することもできる。主に米インテル(Intel)社や米AMD社、英ARM社などが推進しており、パソコン向けのGPU製品やスマートフォンのGPU内蔵型プロセッサ(SoC)などで利用できる。
(2022.6.16更新)