AI エンジンのプロファイリング - 2023.2 日本語

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

Document ID
UG1076
Release Date
2023-12-04
Version
2023.2 日本語
次の表に、AI エンジンで使用可能な定義済みメトリクス セットの設定を、使用可能なカウンターに割り当てられる優先順に示します。xrt.ini ファイルでは、これらのメトリクス名はすべて小文字で、次のメトリクス セレクターのいずれかに割り当てられている必要があります。
  • tile_based_aie_metrics
  • graph_based_aie_metrics
表 1. heat_map メトリクス
メトリクス名 イベント ID 説明
Active Time 28 AI エンジンがイネーブルになってからアクティブであった時間。
Stall Time 22 AI エンジンがストールした時間。AI エンジン メモリ、ストリーム、カスケード、およびロック ストールが含まれます。
Vector Instruction Time 37 AI エンジンによりベクター プロセッサで命令を実行するのに費やされた時間。
Cumulative Instruction Time 32 AI エンジンによりロード/ストア、ストリームの取得/配置、ロックの取得/解放命令を実行するのに費やされた時間。
Active Utilization 派生 AI エンジンがアクティブに命令を実行しており、ストールしていない時間。アクティブ時間の割合で表されます。
Vector Instruction Utilization 派生 AI エンジンがベクター命令を実行している時間。アクティブな使用時間 (アクティブ - ストール) の割合で表されます。
これらのインジケーターは、AI エンジンにインプリメントされるカーネルの効率を理解するのに役立ちます。ストール時間とアクティブ時間を比較して、各 AI エンジンにデータ通信の問題があるかどうかを判断できます。
表 2. stalls メトリクス
メトリクス名 イベント ID 説明
Memory Stall Time 23 AI エンジンがメモリ ストールによりアクティブでなかった時間。
Stream Stall Time 24 AI エンジンがストリーム ストールによりアクティブでなかった時間。
Lock Stall Time 26 AI エンジンがロック ストール状態であった時間。
Cascade Stall Time 25 AI エンジンがカスケード ストール状態であった時間。
AI エンジンでは、ストールはさまざまな状況で発生します。
  • メモリ ストールは、1 つのコア、複数のコア、または DMA から同じメモリに対して複数のアクセスがあった場合に発生します。
  • ストリーム ストールは、ストリーム上のデータの生成と消費が同じレートでないために入力ストリームの不足または出力ストリームのオーバーフローが発生した場合に発生します。
  • カスケード ストールは、カスケード書き込みのレートがカスケード読み出しと同じレートでない場合に発生します。
  • ロック ストールは、ウィンドウ データ プロデューサーの反復レートがウィンドウ コンシューマーと同じ反復レートでない場合に発生します。
表 3. execution メトリクス
メトリクス名 イベント ID 説明
Vector Instruction Time 37 AI エンジンによりベクター命令 (ベクター プロセッサ命令およびベクター データのロード/ストア) に費やされた時間
Load Instruction Time 38 AI エンジンによりロード命令 (データをメモリからレジスタに移動) に費やされた時間
Store Instruction Time 39 AI エンジンによりストア命令 (データをレジスタからメモリに移動) に費やされた時間
Cumulative Instruction Time 32 AI エンジンによりメモリおよびストリーム アクセスおよびロックの取得/解放に費やされた時間
これらのインジケーターにより、カーネルの効率を見積もることができます。効率を上げるには、データ アクセスを最適化し、スカラー命令よりもベクター命令を優先し、ストリームへのアクセスには可能な限り 128 ビット アクセスを使用する必要があります。
表 4. floating_point メトリクス
メトリクス名 イベント ID 説明
Floating-Point Overflow Exception 50 AI エンジンにより生成された浮動小数点オーバーフロー例外の数
Floating-Point Underflow Exception 51 AI エンジンにより生成された浮動小数点アンダーフロー例外の数
Floating-Point Invalid Exception 52 AI エンジンにより生成された浮動小数点無効例外の数
Floating-point Divide by Zero Exception 53 AI エンジンにより生成された浮動小数点ゼロ除算例外の数
浮動小数点例外により、誤った結果が生成されます。例外が多すぎる場合や、1 つであってもコードの重要な領域で発生する場合は、浮動小数点アルゴリズムを記述し直す必要があります。
表 5. aie_trace メトリクス
メトリクス名 イベント ID 説明
AI Engine Trace Word Count 75 生成された AI エンジン トレースの数。
AI Engine Trace Stall Count 76 生成された AI エンジン トレース バック プレッシャー イベントの数。
Memory Module Trace Word Count 79 生成されたメモリ モジュール トレースの数。
Memory Module Trace Stall Count 80 生成されたメモリ モジュール トレース バック プレッシャー イベントの数。
これらのメトリクス、特にストール カウントは、AI エンジン イベントおよびメモリ モジュール イベントをプログラマブル ロジックに送信するのに適切なストリーム数を定義するのに役立ちます。
表 6. write_throughputs メトリクス
メトリクス名 イベント ID 説明
Active Time 28 AI エンジンがイネーブルになってからアクティブであった時間。
Stream Write Instruction Time 41 AI エンジンによりデータ ストリームに書き込み命令を実行するのに費やされた時間。
Cascade Write Instruction Time 43 AI エンジンによりカスケード ストリームで書き込み命令を実行するのに費やされた時間。
Stall Time 22 AI エンジンがストールした時間。AI エンジン メモリ、ストリーム、カスケード、およびロック ストールが含まれます。
Stream Write Throughput (MB/s) 派生 ストリーム ポートの書き込みスループット (MB/s)
Cascade Write Throughput (MB/s) 派生 カスケード ポートの書き込みスループット (MB/s)
これらのメトリクスは、システムの全体的な出力書き込みスループットを評価するのに有益です。
表 7. read_throughputs メトリクス
メトリクス名 イベント ID 説明
Active Time 28 AI エンジンがイネーブルになってからアクティブであった時間。
Stream Read Instruction Time 40 AI エンジンによりデータ ストリームに読み出し命令を実行するのに費やされた時間。
Cascade Read Instruction Time 42 AI エンジンによりカスケード ストリームに読み出し命令を実行するのに費やされた時間。
Stall Time 22 AI エンジンがストールした時間。AI エンジン メモリ、ストリーム、カスケード、およびロック ストールが含まれます。
Stream Read Throughput (MB/s) 派生 ストリーム ポートの読み出しスループット (MB/s)
Cascade Read Throughput (MB/s) 派生 カスケード ポートの読み出しスループット (MB/s)

これらのメトリクスは、システムの全体的な出力読み出しスループットを評価するのに有益です。