OpenCLのお勉強2

プログラムの流れ

まずOpenCLコードを実行する前には次のことをする必要がある。

  • OpenCLバイスの一覧取得
  • コンテキスト(Context)の作成
  • 命令キュー(Command-queue)の作成

コンテキストはカーネルの実行やメモリオブジェクト、同期などの管理を行うもので、それにデバイスやデバイス上のメモリが割り当てられている。つまり、複数のデバイスでメモリを共有するのならば、そのデバイスは同じコンテキストになければならない。

そしてそののちに

各デバイスはおのおの命令キューを持っており、それぞれ非同期に動作している。そのため他のデバイスの実行終了を待つためには、イベントリストを作成する必要がある。