--profile オプション - 2021.1 Japanese

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

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

アプリケーションでのプロファイリングのイネーブル で説明するように、ランタイムの実行中にアプリケーション イベントとカーネル イベントのプロファイリングを有効にするための --profile オプションがいくつかあります。このオプションを使用すると、カーネルとホスト間のデータ トラフィック、カーネルの停止、カーネルと計算ユニット (CU) の実行時間のプロファイル データを取り込んだり、Versal AI エンジン の動作を監視したりできます。

重要: v++--profile オプションを使用するには、xrt.ini ファイルに profile=true を追加する必要もあります。xrt.ini ファイル を参照してください。
--profile コマンドは、コンフィギュレーション ファイルの [profile] セクション ヘッドの下で次のフォーマットを使用して指定できます。
[profile]
data=all:all:all           # Monitor data on all kernels and CUs
data=k1:all:all            # Monitor data on all instances of kernel k1
data=k1:cu2:port3          # Specific CU master
data=k1:cu2:port3:counters # Specific CU master (counters only, no trace)
stall=all:all              # Monitor stalls for all CUs of all kernels
stall=k1:cu2               # Stalls only for cu2
exec=all:all               # Monitor execution times for all CUs
exec=k1:cu2                # Execution tims only for cu2
aie=all                    # Monitor all AIE streams
aie=DataIn1                # Monitor the specific input stream in the SDF graph
aie=M02_AXIS               # Monitor specific stream interface

このコマンドには、次に示すさまざまなオプションを指定できます。

--profile.aie <arg>

ADF (Adaptive Data Flow) アプリケーションで AI エンジン ストリームのプロファイリングを有効にします。この場合、<arg> は次のとおりです。

<ADF_graph_argument|pin name|all>
  • <ADF_graph_argument>: ADF グラフ アプリケーションから引数名を指定します。
  • <pin_name>: AI エンジン カーネル上のポートを示します。
  • <all>: ADF アプリケーション内のすべてのストリーム接続を監視します。
たとえば、DataIn1 入力ストリームを監視するには、次のコマンドを使用します。
v++ --link --profile.aie:DataIn1

--profile.data <arg>

モニター IP を介してデータ ポートを監視します。このオプションは、リンク時には指定する必要があります。

<arg> は次のようになります。

[<kernel_name>|all]:[<cu_name>|all]:[<interface_name>|all](:[counters|all])
  • [<kernel_name>|all]: コマンドを適用する特定のカーネルを定義します。all キーワードを使用して、1 つのオプションで既存のカーネル、計算ユニット、インターフェイスすべてを監視できるよう設定することもできます。
  • [<cu_name>|all]: <kernel_name> が指定されている場合は、コマンドを適用する特定の CU を定義したり、カーネルのすべての CU に適用する必要があることを指定したりできます。
  • [<interface_name>|all]: カーネルまたは CU の特定のインターフェイスを定義して、データ アクティビティを監視するか、すべてのインターフェイスを監視します。
  • [<counters|all]: オプションの引数で、指定しない場合はデフォルトで all になります。大型デザインの場合は情報の収集を counters に制限できますが、all を指定して実際のトレース情報が収集されるようにすることもできます。

たとえば、k1 カーネルのすべての CU およびインターフェイスにデータ プロファイルを割り当てるには、次のコマンドを使用します。

v++ --link --profile.data:k1:all:all

--profile.exec <arg>

カーネルの実行時間を記録し、システム実行中に最小限のポート データ コレクションを示します。このオプションは、リンク時には指定する必要があります。

ヒント: カーネルの実行時間は、--profile.data または --profile.stall が指定さるとデフォルトで収集されます。--profile.execdata または stall が適用されていない CU すべてに指定できます。

exec プロファイルの構文は、次のとおりです。

[<kernel_name>|all]:[<cu_name>|all](:[counters|all])

たとえば、k1 カーネルの cu2 の実行をプロファイルするには、次のコマンドを使用します。

v++ --link --profile.exec:k1:cu2

--profile.stall

デバイス バイナリ (.xclbin) に停止監視ロジックを追加します。これには、カーネル インターフェイスに停止ポートを追加する必要があります。これには、コンパイルおよびリンクの両方で stall オプションを指定する必要があります。

stall プロファイルの構文は、次のとおりです。

[<kernel_name>|all]:[<cu_name>|all](:[counters|all])

たとえば、k1 カーネルの cu2 の停止を監視するには、次のコマンドを使用します。

v++ --compile -k k1 --profile.stall ...
v++ --link --profile.stall:k1:cu2 ...

--profile.trace_memory

ハードウェア ターゲット (-t=hw) をビルド際に、トレース データを取り込むのに使用するメモリのタイプおよび量を指定できます。この引数は、次のように設定できます。

<FIFO>:<size>|<MEMORY>[<n>]

プロファイルのトレース バッファー メモリのタイプを指定します。

FIFO:<size>
KB 単位で指定します。デフォルトは FIFO:8K です。最大値は 4G です。
Memory[<N>]
プラットフォームのメモリ リソースのタイプおよび数を指定します。ターゲット プラットフォームのメモリ リソースは、platforminfo コマンドで指定できます。サポートされるメモリ タイプは、HBM、DDR、PLRAM、HP、ACP、MIG、および MC_NOC などです。DDR[1] のように範囲で指定します。
重要: xrt.ini ファイル に説明するように、xrt.ini ファイルで [Debug] trace_buffer_size を使用します。