ハードウェア イベント トレースの問題と解決方法 - 2022.1 日本語

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語

ハードウェア イベントは、デバイス FIFO またはグローバル メモリ バッファーにキャプチャされ、CPU に送り返され (オフロードされ) て、タイムライン トレースが生成されます。ハードウェア トレース イベントは、次の表に示すように、さまざまなシナリオでドロップされることがあります。

表 1. ハードウェア トレース イベントのシナリオ
表紙イメージ ソリューション
FIFO または DDR/HBM バッファーがいっぱいになると、それ以降のハードウェア トレース イベントはすべてドロップされます。

ランタイム警告を探し、xrt.ini 内のこの設定を使用して、より大きなバッファー サイズで再実行します。

trace_buffer_size=<size> (size はグローバル メモリ制限内に収まる必要あり) で指定します。

計算データ転送に同じグローバル メモリを使用すると、密集が発生し、ハードウェア トレース イベントがドロップされる可能性があります。

compute() IO が使用するのとは異なるリソースをオフロードに使用します。PROFILE_OFFLOAD を使用すると、アクセラレータ クラスでプロファイリング オフロード メソッドを指定できます。

PROFILE_OFFLOAD("FIFO" | "DDR[0-3]" | "HBM[0-31]" );

ヒント: これは、hw_emu のコンパイルをターゲットにする場合には使用できません。使用すると、プロファイリング ロジックの挿入エラーが発生します。sw_emu ターゲットの場合も無視されます。
アプリケーション テストで作成されたハードウェア イベントが多すぎる場合。

xrt.ini ファイルの次のいずれかの設定で生成されるハードウェア イベントの数を減らします。

  1. device_trace=coarse: ハードウェア イベントを最小限にして生成します。
  2. device_trace=fine: より多くのハードウェア イベントとより詳細な情報を生成します。
  3. stall_trace=true: 最多のハードウェア イベントを生成し、任意のサイズのバッファーをすばやく埋めることができます。使用しないようにしてください。