インテル® FPGA SDK for OpenCL™プロ・エディション: プログラミング・ガイド

ID 683846
日付 4/01/2019
Public
ドキュメント目次

6.8. 徐々に速度低下するOpenCLシステムのデバッグ

ホスト・アプリケーションのループがイベントを解放しないまま作成を続けると、OpenCLシステムが実行中に徐々に遅くなることがあります。 この速度低下を緩和するには、ホスト・アプリケーションがスケジューリングや時間のプロファイリングに不要になったcl_eventオブジェクトを解放する必要があります。
OpenCLシステムに多数の不要なイベントが存在するために速度低下が発生しているかどうかを確認するには、コンテキストのコールバック警告またはエラーを出力するコンテキスト・コールバック関数を、次のコード例に示すように定義します。
void oclContextCallback (const char *errinfo, const void *, size_t, void *) {
  printf ("Context callback: %s\n", errinfo);
}
int main(){
  …
  // Create the context.
  context = clCreateContext (NULL, num_devices, device, &oclContextCallback, NULL, &status);
  …
}
システムで発生しているイベント数が、イベント・オブジェクトのしきい値制限である1000を超えると、コールバック関数は次の警告メッセージを出力します。
[Runtime Warning]: Too many 'event' objects in the host. This causes deterioration in runtime performance.