プロファイルには、アプリケーション層での実行のさまざまなフェーズのタイムライント レースも表示されます (図を参照)。これは Vitis Analyzer の [SystemCompile] に表示されます。これらのタイムライン トレースの行については、次で説明します。
- [Send body]: 各ボックスは、送信ラムダ関数でユーザーが作成したコードの実行も含め、送信反復の開始と終了をキャプチャします。
- [Receive body]: 各ボックスは、ユーザーが記述したコードを含め、受信反復の開始と終了をキャプチャします。この例では、受信反復は、送信反復と比較すると非常に高速 (図の中では小さい) です。
- [Compute]: 各ボックスは、アプリケーションが結果 (C++ future での get()) を受信するまで、計算呼び出しの開始をキャプチャします。
- [Input transfers]: これらは、各計算ジョブの入力データ転送です。この例では、これらは HBM メモリ バンクへの書き込みです。
- [CU-pipeline]: アプリケーション層は、複数のソフトウェア ジョブ パイプライン (通常は効率的な実行のため、ハードウェア内の CU 数よりも多い) を維持します。各行は別々のソフトウェア パイプラインで、このパイプラインでの送信の開始からハードウェアによるジョブの完了まで、すべてのジョブ実行をキャプチャします。
- [Detail]: この行は、実行モデルの重要なイベント (主に開始信号の発行と各計算呼び出しの完了の受信) をいくつかキャプチャします。
- [Output transfers]: 各計算ジョブの出力データ転送です。この例では、HBM メモリ バンクから読み出されるデータです。
図 1. アプリケーション タイムライン