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