ホスト アプリケーションからのすべての XRT 関連動作は、OpenCL API 呼び出しまたは XRT API 呼び出しのいずれかを使用して、プロファイリングのために自動的にトラックされます。ただし、XRT 関連イベント以外のホスト アプリケーションをプロファイルして、ユーザー指定の動作またはイベントに基づいてイベント データを取得することもできます。この機能には、次の 2 種類のカスタム プロファイリングがあります。
- [User range]
- 指定した開始時刻と終了時刻をコード範囲全体でプロファイルします。これにより、ホスト アプリケーションで動作が発生する期間が取得されます。
- [User events]
- タイムライン内のイベントをマークします。ユーザー イベントは、発生した時点でタイムライン波形に追加されます。
ヒント: これらの機能は、機能とパフォーマンスのベースライン で説明されるようにデザイン プロセスの初期段階で使用でき、ザイリンクス デバイス ハードウェアで実行する関数を分離する前でも使用できます。
カスタム プロファイリングを使用するには、ホスト アプリケーションのソース コードとビルド プロセスをいくつか変更する必要があります。次に説明するように、コード内で C または C++ API を使用する必要があります。また、ホスト アプリケーションをリンクするときに、xrt_coreutil
ライブラリを含める必要もあります。
- C/C++ API については次に説明しますが、https://github.com/Xilinx/XRT/blob/master/src/runtime_src/core/include/experimental/xrt_profile.hからも参照できます。
- C と C++ の両方に次を追加する必要があります。
#include xrt/core/include/experimental/xrt_profile.h
- ホスト コードをリンクする場合は、コンパイラのコマンドラインに
-lxrt_coreutil
を追加します。