ハードウェアでの AI エンジンのプロファイリング - 2023.2 日本語

AI エンジン ツールおよびフロー ユーザー ガイド (UG1076)

Document ID
UG1076
Release Date
2023-12-04
Version
2023.2 日本語

AI エンジン イベントは、特定の時点におけるシステムの情報を示します。タイムスタンプ、タイプ、およびデータ値に関連付けられているイベントをペイロードと呼びます。ペイロードの解釈は、イベント タイプによって異なります。タイムスタンプを使用すると、イベントの順序付け、因果関係の計算、および一連のイベントの検証が可能になります。

イベント モデリングでは、AI エンジン アレイの重要なモジュールは、プロセッサ、DMA、ロック モジュール、メモリ、および I/O ストリームです。各モジュールは、イベント ジェネレーター/レスポンダーと見なすことができます。各モジュールは、イベントを受信し、そのイベントに応答します。応答として、新しいイベントが生成されることもあります。イベントは、イベント ジェネレーターに基づいて分類されます。タイムスタンプは、イベント定義に明示的には含まれません。各イベントは、そのイベントに関連付けられているペイロードに記述されます。各 AI エンジン、メモリ、DMA、またはロックは、AI エンジン配列内の列と行の 2 次元インデックス <col, row> を使用してアドレス指定できます。この後、AI エンジン イベントの一部を表で示します。

次の表に、AI エンジンで生成されるイベントとそれらの ID を示します。

表 1. AI エンジン および AI エンジン ML のイベント
イベント番号 AI エンジンのバージョン イベント名 説明
22 AI エンジン/AI エンジン ML Group Core Stall このイベントは、イベント番号 23 ~ 31 のイベントのいずれかまたはすべてでトリガーされます。
23 AI エンジン/AI エンジン ML Memory Stall コアがメモリ競合によりストールしたときに生成されるイベント。
24 AI エンジン/AI エンジン ML Stream Stall 入力にデータがないか、またはコアからストリーム出力にバック プレッシャーがあることが原因でコアがストールしたときに生成されるイベント。
25 AI エンジン/AI エンジン ML Cascade Stall 入力にデータがないか、またはコアからストリーム出力にバック プレッシャーがあることが原因でコアがストールしたときに生成されるイベント。
26 AI エンジン/AI エンジン ML Lock Stall ロックが既に取得されているためにコアがストールしたときに生成されるイベント。
28 AI エンジン/AI エンジン ML アクティブ コアのステートがディスエーブルからアクティブに変更されたときに生成されるイベント。
32 AI エンジン/AI エンジン ML Group Core Program Flow このイベントは、イベント番号 33 ~ 45 のイベントのいずれかまたはすべてでトリガーされます。
37 AI エンジン/AI エンジン ML Instr Vector AI エンジン コアがベクター命令を実行したときに生成されるイベント。
38 AI エンジン/AI エンジン ML Instr Load AI エンジン コアがロード命令を実行したときに生成されるイベント。
39 AI エンジン/AI エンジン ML Instr Store AI エンジン コアがストア命令を実行したときに生成されるイベント。
40 AI エンジン/AI エンジン ML Instr Stream Get AI エンジン コアがストリームから読み出し命令を実行したときに生成されるイベント。
41 AI エンジン/AI エンジン ML Instr Stream Put AI エンジン コアがストリームに書き込み命令を実行したときに生成されるイベント。
42 AI エンジン/AI エンジン ML Instr Cascade Get AI エンジン コアがカスケード ストリームから読み出し命令を実行したときに生成されるイベント。
43 AI エンジン/AI エンジン ML Instr Cascade Put AI エンジン コアがカスケード ストリームに書き込み命令を実行したときに生成されるイベント。
50 AI エンジン FP Overflow 浮動小数点オーバーフロー例外が発生したときに生成されるイベント。
50 AI エンジン ML FP Huge 丸め後の結果が、正規化された最大数よりも大きい (FP オーバーフローを含む)。
51 AI エンジン FP Underflow 浮動小数点アンダーフロー例外が発生したときに生成されるイベント。
51 AI エンジン ML Int FPP Zero 整数または浮動小数点ユニットの出力が 0 (FP Underflow/tiny を含む)。
52 AI エンジン FP Invalid 浮動小数点無効フロー例外が発生したときに生成されるイベント。
52 AI エンジン ML FP Invalid 無効な浮動小数点演算 (NaN 入力とゼロ除算を含む)。
53 AI エンジン FP Div by Zero 浮動小数点ゼロ除算フロー例外が発生したときに生成されるイベント。
53 AI エンジン ML FP Inf 浮動小数点の出力は無限大。

次の表に、AI エンジンのメモリ モジュールで生成されるイベントとそれらの ID を示します。

表 2. AI エンジンのメモリ モジュールのイベント
イベント番号 AI エンジンのバージョン イベント名 説明
20 AI エンジン Group DMA Activity このイベントは、イベント番号 21 ~ 40 のイベントのいずれかまたはすべてでトリガーされます。
25 AI エンジン DMA S2MM 0 finished packet S2MM チャネル 0 が DMA パケットの転送を終了したときに生成されるイベント。
26 AI エンジン DMA S2MM 1 finished packet S2MM チャネル 1 が DMA パケットの転送を終了したときに生成されるイベント。
27 AI エンジン DMA MM2S 0 finished packet MM2S チャネル 0 が DMA パケットの転送を終了したときに生成されるイベント。
28 AI エンジン DMA MM2S 0 finished packet MM2S チャネル 1 が DMA パケットの転送を終了したときに生成されるイベント。
33 AI エンジン DMA S2MM 0 stalled lock acquire S2MM チャネル 0 がロック取得でストールしたときに生成されるイベント。
34 AI エンジン DMA S2MM 1 stalled lock acquire S2MM チャネル 1 がロック取得でストールしたときに生成されるイベント。
35 AI エンジン DMA MM2S 0 stalled lock acquire MM2S チャネル 0 がロック取得でストールしたときに生成されるイベント。
36 AI エンジン DMA MM2S 1 stalled lock acquire MM2S チャネル 1 がロック取得でストールしたときに生成されるイベント。
43 AI エンジン Group Lock このイベントは、イベント番号 44 ~ 75 のイベントのいずれかまたはすべてでトリガーされます。
76 AI エンジン Group Memory Conflict このイベントは、イベント番号 77 ~ 84 のイベントのいずれかまたはすべてでトリガーされます。
86 AI エンジン Group Errors このイベントは、イベント番号 87 ~ 100 のイベントのいずれかまたはすべてでトリガーされます。

次の表に、AI エンジン ML のメモリ モジュールで生成されるイベントとそれらの ID を示します。

表 3. AI エンジン ML のメモリ モジュールのイベント
イベント番号 AI エンジンのバージョン イベント名 説明
18 AI エンジン ML Group DMA Activity このイベントは、イベント番号 19 ~ 42 のイベントのいずれかまたはすべてでトリガーされます。
19、20 AI エンジン ML DMA S2MM (0,1) start task S2MM チャネル 0、1 が次のタスクを開始したときに生成されるイベント。
21、22 AI エンジン ML DMA MM2S (0,1) start task MM2S チャネル 0,1 が次のタスクを開始したときに生成されるイベント。
23、24 AI エンジン ML DMA S2MM (0, 1) finished BD S2MM チャネル (0, 1) が、BD の 1 回の呼び出しを完了。すべてのデータがメモリにプッシュされると、BD は完了。
25、26 AI エンジン ML DMA MM2S (0, 1) finished BD MM2S チャネル (0、1) が、BD の 1 回の呼び出しを完了。最後のワードがストリーム ポートにプッシュされる準備が整うと、BD は完了。
27、28 AI エンジン ML DMA S2MM (0, 1) finished task S2MM チャネル (0, 1) がタスクを完了 (すべての繰り返し BD が終了し、チャネルは次のタスクへ移動する準備が整った)。
29、30 AI エンジン ML DMA MM2S (0, 1) finished task MM2S チャネル (0, 1) がタスクを完了 (すべての繰り返し BD が終了し、チャネルは次のタスクへ移動する準備が整った)。
31、32 AI エンジン ML DMA S2MM (0, 1) stalled lock S2MM チャネル (0, 1) はロック要求 (取得) でストール。
33、34 AI エンジン ML DMA MM2S (0, 1) stalled lock MM2S チャネル (0, 1) はロック要求 (取得) でストール。
35、36 AI エンジン ML DMA S2MM (0, 1) stream starvation ストリーム入力にデータがないことから、S2MM チャネル (0, 1) はストール。
37、38 AI エンジン ML DMA S2MM (0, 1) stream backpressure ストリーム バック プレッシャーが原因で MM2S チャネル (0, 1) はストール。
39、40 AI エンジン ML DMA S2MM (0, 1) memory backpressure メモリへの書き込みで競合が発生することにより、S2MM チャネル (0, 1) はストール。
41、42 AI エンジン ML DMA MM2S (0, 1) memory starvation メモリへからの読み出しで競合が発生することにより、MM2S チャネル (0, 1) はストール。
43 AI エンジン ML Group Lock このイベントは、イベント番号 44 ~ 75 のイベントのいずれかまたはすべてでトリガーされます。
76 AI エンジン ML Group Memory Conflict このイベントは、イベント番号 77 ~ 84 のイベントのいずれかまたはすべてでトリガーされます。
86 AI エンジン ML Group Errors このイベントは、イベント番号 87 ~ 102 のイベントのいずれかまたはすべてでトリガーされます。

次の表に、AI エンジン ML のメモリ タイルで生成されるイベントとそれらの ID を示します。

表 4. AI エンジン ML のメモリ タイルのイベント
イベント番号 AI エンジンのバージョン イベント名 説明
21、22 (N=0,1) AI エンジン ML DMA_S2MM_Sel<N>_start_task 選択された S2MM チャネルは、タスク キューにある次のタスクを開始。
23、24 (N=0,1) AI エンジン ML DMA_MM2S_Sel<N>_start_task 選択された MM2S チャネルは、タスク キューにある次のタスクを開始。
25、26 (N=0,1) AI エンジン ML DMA_S2MM_Sel<N>_finished_BD 選択された S2MM チャネルは、BD の 1 回の呼び出しを完了。すべてのデータがメモリにプッシュされると、BD は完了。
27、28 (N=0,1) AI エンジン ML DMA_MM2S_Sel<N>_finished_BD 選択された 6 つの MM2S チャネルのうちの 1 つが、BD の 1 回の呼び出しを完了。最後のワードがストリーム ポートにプッシュされる準備が整ったとき、BD は完了。
29、30 (N=0,1) AI エンジン ML DMA_S2MM_Sel<N>_finished_task 選択された S2MM チャネルがタスクを完了 (すべての繰り返しが終了し、チャネルは次のタスクへ移動する準備が整った)。
31、32 (N=0,1) AI エンジン ML DMA_MM2S_Sel<N>_finished_task 選択された MM2S チャネルがタスクを完了 (すべての繰り返しが終了し、チャネルは次のタスクへ移動する準備が整った)。
33、34 (N=0,1) AI エンジン ML DMA_S2MM_Sel<N>_stalled_lock 選択された S2MM チャネルは、ロック要求 (取得) でストール。
35、36 (N=0,1) AI エンジン ML DMA_MM2S_Sel<N>_stalled_lock 選択された MM2S チャネルは、ロック要求 (取得) でストール。
37、38 (N=0,1) AI エンジン ML DMA_S2MM_Sel<N>_stream_starvation ストリーム入力にデータがないことから、選択された S2MM チャネルはストール。
39、40 (N=0,1) AI エンジン ML DMA_MM2S_Sel<N>_stream_backpressure ストリーム バック プレッシャーが原因で、選択された MM2S チャネルはストール。
41、42 (N=0,1) AI エンジン ML DMA_S2MM_Sel<N>_memory_backpressure メモリへの書き込み、または隣接メモリへのストライド書き込みで競合が発生することにより、選択された S2MM チャネルはストール。
43、44 (N=0,1) AI エンジン ML DMA_MM2S_Sel<N>_memory_starvation メモリからの読み出し、または隣接メモリに対するストライド読み出しで競合が発生することにより、選択された MM2S チャネルはストール。
80+4*N (N=0..7) AI エンジン ML Port_Running_<N> モニター ポート <N> の場合、イベントは実行状態のときにアサートされる。マスター TVALID が High、スレーブ TREADY が High のときに実行。
81+4*N (N=0..7) AI エンジン ML Port_Stalled_<N> モニター ポート <N> の場合、イベントはストール状態のときにアサートされる。マスター TVALID が High、スレーブ TREADY Low のときにストール。
82+4*N (N=0..7) AI エンジン ML Port_TLAST_<N> モニター ポート <N> の場合、TLAST が High のときにイベントはアサートされる。

次の表に、AI エンジン インターフェイスで生成されるイベントとそれらの ID を示します。

表 5. AI エンジン インターフェイスのイベント
イベント番号 AI エンジンのバージョン イベント名 説明
74 AI エンジン Port_Idle_0 指定の PLIO ポートがアイドル状態のときに生成されるイベント。
75 AI エンジン Port_Running_0 指定の PLIO ポートが実行中に生成されるイベント。
76 AI エンジン Port_Stalled_0 指定の PLIO ポートがストール中に生成されるイベント。
77 AI エンジン Port_TLAST_0 指定の PLIO ポートが TLAST 信号を送信中に生成されるイベント。

次の表に、AI Engine ML インターフェイスで生成されるイベントとそれらの ID を示します。

表 6. AI エンジン ML インターフェイスのイベント
イベント番号 AI エンジンのバージョン イベント名 説明
77 AI エンジン ML Port_Idle_0 指定の PLIO ポートがアイドル状態のときに生成されるイベント。
78 AI エンジン ML Port_Running_0 指定の PLIO ポートが実行中に生成されるイベント。
79 AI エンジン ML Port_Stalled_0 指定の PLIO ポートがストール中に生成されるイベント。
80 AI エンジン ML Port_TLAST_0 指定の PLIO ポートが TLAST 信号を送信中に生成されるイベント。