ホスト アプリケーションのカスタム プロファイリング - 2021.2 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2022-03-29
Version
2021.2 Japanese

ホスト アプリケーションからのすべての XRT 関連動作は、OpenCL API 呼び出しまたは XRT API 呼び出しのいずれかを使用して、プロファイリングのために自動的にトラックされます。ただし、XRT 関連イベント以外のホスト アプリケーションをプロファイルして、ユーザー指定の動作またはイベントに基づいてイベント データを取得することもできます。

ヒント: これらの機能は、機能とパフォーマンスのベースライン で説明されるようにデザイン プロセスの初期段階で使用でき、ザイリンクス デバイス ハードウェアで実行する関数を分離する前でも使用できます。
この機能には、次の 2 種類のカスタム プロファイリングがあります。
[User range]
指定した開始時刻と終了時刻をコード範囲全体でプロファイルします。これにより、ホスト アプリケーションで動作が発生する期間が取得されます。
[User events]
タイムライン内のイベントをマークします。ユーザー イベントは、発生した時点でタイムライン波形に追加されます。

user_rangeおよび user_event データは、Profile Summary および Timeline Trace レポートに取り込まれ、Vitis アナライザーに表示されます。次の図に示すように、Profile Summary には、特定のイベントの発生回数と範囲が表示されます。[User Ranges] の表には、ホスト コード内のユーザー定義の範囲の最小/最大/平均/合計の時間も表示されます。Timeline Trace レポートには、ホスト コードの user_range エレメントが別の行に表示され、user_event マーカーはタイムラインの特定のポイントに追加されます。

図 1. プロファイル サマリの [User Ranges] の表

カスタム プロファイリングを使用するには、ホスト アプリケーションのソース コードとビルド プロセスをいくつか変更する必要があります。次で説明するように、コード内で C または C++ API を使用する必要があります。また、ホスト アプリケーションをリンクするときに、xrt_coreutil ライブラリを含める必要もあります。

ヒント: user_range および user_event の例は、https://github.com/Xilinx/Vitis_Accel_Examples/blob/master/host/debug_profile/src/host.cpp のホスト コードに記載されています。