ハードウェア イベント トレース - 2023.2 日本語

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語

アクセラレータ システム構成内では、ハードウェア イベントもプロファイルできます。特に、プラットフォーム接続および PE インターフェイスの AXI4 ポート上のハードウェア イベントは、タイムライン トレースとして取り込んで表示できます。

次の図は、2 つの CU を持つアクセラレータの例で、各 CU はチェーン内の 3 つの PE のパイプラインです (mmultincr_10incr_20)。この図に示すように、行はトポロジ的に編成され、パイプラインの順序に従ってイベントのシーケンスを表示します。

図は、1 つの計算呼び出しの実行を示しています。最初の 2 行は、HBM バンクから読み出される 2 つの入力引数を示しています。DATA_COPY および SEQUENTIAL アクセス マクロを使用することで、データ ムーバー (dm_8 および dm_9) がこのデータを mmult PE にストリーミングしてから実行できるようになります。次に、mmult は後続の incr_10 PE に接続されたストリームに書き込み、その後 incr_20 PE に接続された別のストリームに書き込みます。この PE は最終的に出力データ ムーバー ストリームをトリガーし、結果を HBM バンクに書き込みます。

図 1. ハードウェア イベント トレース

VSC モードでのプロファイリングは、次の設定でイネーブルにできます。

  1. アクセラレータ クラスには、次のマクロが必要です。
    1. PROFILE_KERNEL ("PE function names"): すべての PE 実行の開始と停止のトレースをイネーブルにします。
    2. PROFILE_PORT("PE argument names"): PE 引数の AXI ポートのプロファイルをイネーブルにします。
    3. キーワード all は、すべての PE またはすべてのポートのプロファイルに使用できます。
      注記: 多数の AXI ポート (すべての PE 引数およびプラットフォーム ポート接続) を持つアクセラレータで all を使用すると、Vivado で配線問題が発生し、デザインのタイミング クロージャが達成できなくなります。この場合、必要に応じて特定のポートにハードウェア トレースを作成することをお勧めします。
    4. これらのマクロを変更すると、Vivado 配置配線を含むすべての Vitis コンパイルとリンクがトリガーされます。
  2. ハードウェア トレースは、xrt.ini ファイルのこの設定でイネーブルにできます。
    [Debug]
    device_trace=[fine|coarse]