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

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

6.3.1. エンキューされたカーネルおよび自動実行カーネルのプロファイリング

完了時にプロファイラー・データを自動的に生成するエンキューされたカーネルとは異なり (コンパイラー・フラグが設定されている場合)、自動実行カーネルは終了しません。 したがって、clGetProfileDataDeviceIntelFPGAホスト・ライブラリー呼び出しで、カーネルをプロファイルするタイミングを明示的に指定する必要があります。プロファイラー・データはすべて、profile.monファイルへ出力されます。ホスト・ライブラリー呼び出しで収集されるデータは、自動実行のプロファイル・データのスナップショットになります。

次は、clGetProfileDataDeviceIntelFPGAホスト・ライブラリー呼び出しのコード例です。

cl_int clGetProfileDataDeviceIntelFPGA (cl_device_id device_id,
                                        cl_program program,
                                        cl_bool read_enqueue_kernels,
                                        cl_bool read_auto_enqueued,
                                        cl_bool clear_counters_after_readback,
                                        size_t param_value_size,
                                        void *param_value,
                                        size_t *param_value_size_ret,
                                        cl_int *errcode_ret);

以下が詳細です。

  • read_enqueue_kernelsパラメーターは、エンキューされたカーネルをプロファイリングします。このリリースにおいてこのパラメーターは無効です。
  • read_auto_enqueuedパラメーターは、自動実行カーネルをプロファイリングします。
  • 以下は今後のリリースにおけるプレースホルダー・パラメーターです。
    • clear_counters_after_readback
    • param_value_size
    • param_value
    • param_value_size_ret
    • errcode_ret
注: このホスト・ライブラリー呼び出しは、自動実行カーネルのみをポートしています。read_enqueue_kernelsパラメーターにTRUEを入力できますが、ブール値は無視されます。これは、エンキューされたカーネルがプロファイリングされないという意味ではありません。コンパイラーのprofileフラグがエンキューされたカーネルを含むように設定されている場合、通常通り実行の終わりにプロファイル・データはキャプチャーされます。唯一の違いは、clGetProfileDataDeviceIntelFPGAホスト・ライブラリー呼び出しは、エンキューされたカーネルに対し自動的に行われるプロファイリングとは別に、エンキューされたカーネルをプロファイリングしないことです。

clGetProfileDataDeviceIntelFPGAホスト・ライブラリー呼び出しは、成功時にCL_SUCCESSを返します。それ以外の場合は、次のエラーのいずれかを返します。

  • デバイスが有効なデバイスではない場合はCL_INVALID_DEVICE
  • プログラムが有効なプログラムではない場合はCL_INVALID_PROGRAM
注意:
clGetProfileDataDeviceIntelFPGAホスト・ライブラリー呼び出しは、与えられたデバイスで与えられたプログラムのプログラミング操作をトリガーしません。ホスト・ライブラリー呼び出し時にプログラムがまだデバイスにプログラミングされていない場合、ホスト・ライブラリー呼び出しはCL_INVALID_PROGRAMエラーを返します。
表 3.   clGetProfileDataDeviceIntelFPGA ホスト・ライブラリー呼び出しパラメーターの組み合わせ
  read_auto_enqueued
エンキューされたカーネルのみをプロファイリング
注: 実行が完了すると、自動的にプロファイル情報を出力します。
False
自動実行カーネルのみをプロファイリング True
エンキューされたカーネルと自動実行カーネルの両方をプロファイリング True