アプリケーションでのプロファイリングのイネーブル - 2020.1 Japanese

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

Document ID
UG1393
Release Date
2020-08-20
Version
2020.1 Japanese

プロファイリングをイネーブルにし、アプリケーションの実行中にトレース データを収集するには、このタスク用にアプリケーションをインストルメント化する必要があります。追加のロジックをイネーブルにし、追加のデバイス リソースを使用して、ホストおよびカーネルの実行中の動作を記録する必要があります。

ヒント: プロファイリング データの収集は、アクセラレーション アプリケーションのビルド時のプロファイリングおよび最適化プロセスに重要ですが、追加のリソースを使用するので、パフォーマンスに影響します。最終的なプロダクション ビルドからは、これらのエレメントを忘れずに削除する必要があります。

デバイス バイナリ (xclbinxclbin) ファイルは、デフォルトでプロファイリング データを収集するよう設定されます。Vitis コンパイラでのリンク プロセスで --profile_kernel オプションを使用すると、カーネルに Acceleration Monitor および AXI Performance Monitor を追加することにより FPGA バイナリがインストルメント化されます。このオプションには、Vitis コンパイラ コマンド に説明されているように、datastall、および exec の 3 つのインストルメンテーション オプションがあります。

次に、v++ リンク コマンドに --profile_kernel を追加する例を示します。
v++ -g -l --profile_kernel data:all:all:all ...
ヒント: カーネル コードをソフトウェア エミュレーションまたはハードウェア エミュレーション用にコンパイルする際は、v++ -g (または --debug) オプションも使用してください。

ビルド プロセスでアプリケーションのプロファイリングをイネーブルにしたら、xrt.ini ファイルを編集して XRT でもデータ収集をイネーブルにする必要があります。詳細は、xrt.ini ファイル を参照してください。

次の xrt.ini ファイルでは、アプリケーションの実行時に最大限の情報が収集されます。
[Debug]
profile=true
power_profile=true
timeline_trace=true
data_transfer_trace=coarse
stall_trace=all
[Kernel Internals] データのプロファイリングをイネーブルにするには、xrt.ini[Emulation] セクションに debug_mode タグも追加する必要があります。
[Emulation]
debug_mode=batch
ライブ波形ビューアーを使用する場合は、debug_mode は次のようになります。
[Emulation]
debug_mode=gui
ヒント: ライブ波形ビューアーをイネーブルにしている場合は、ハードウェア エミュレーションの実行時にシミュレーション波形が開きます。

大量のトレース データを収集する場合は、Vitis コンパイラで --trace_memory オプションを指定し、xrt.initrace_buffer_size キーワードを追加する必要があります。

  • --trace_memory: プロファイリング データの収集に使用するメモリのタイプを示します (Vitis コンパイラの一般オプション を参照)。
  • trace_buffer_size: プロファイリング データの収集に使用するメモリの量を指定します。

連続トレース キャプチャをイネーブルにして、アプリケーションの実行中にデバイスのトレース データを継続的にオフロードすることもできます。このようにすると、アプリケーションまたはシステムがクラッシュした場合に、トレース データの一部にアクセスできるので、アプリケーションのデバッグに役立ちます。これをイネーブルにするには、xrt.ini ファイルに continuous_trace キーワードを追加します。