次の表に、AI エンジンで使用可能な定義済みメトリクス セットの設定を、使用可能なカウンターに割り当てられる優先順に示します。
xrt.ini
ファイルでは、これらのメトリクス名はすべて小文字で、次のメトリクス セレクターのいずれかに割り当てられている必要があります。-
tile_based_aie_metrics
-
graph_based_aie_metrics
メトリクス名 | イベント 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 エンジンにデータ通信の問題があるかどうかを判断できます。
メトリクス名 | イベント ID | 説明 |
---|---|---|
Memory Stall Time | 23 | AI エンジンがメモリ ストールによりアクティブでなかった時間。 |
Stream Stall Time | 24 | AI エンジンがストリーム ストールによりアクティブでなかった時間。 |
Lock Stall Time | 26 | AI エンジンがロック ストール状態であった時間。 |
Cascade Stall Time | 25 | AI エンジンがカスケード ストール状態であった時間。 |
AI エンジンでは、ストールはさまざまな状況で発生します。
- メモリ ストールは、1 つのコア、複数のコア、または DMA から同じメモリに対して複数のアクセスがあった場合に発生します。
- ストリーム ストールは、ストリーム上のデータの生成と消費が同じレートでないために入力ストリームの不足または出力ストリームのオーバーフローが発生した場合に発生します。
- カスケード ストールは、カスケード書き込みのレートがカスケード読み出しと同じレートでない場合に発生します。
- ロック ストールは、ウィンドウ データ プロデューサーの反復レートがウィンドウ コンシューマーと同じ反復レートでない場合に発生します。
メトリクス名 | イベント ID | 説明 |
---|---|---|
Vector Instruction Time | 37 | AI エンジンによりベクター命令 (ベクター プロセッサ命令およびベクター データのロード/ストア) に費やされた時間 |
Load Instruction Time | 38 | AI エンジンによりロード命令 (データをメモリからレジスタに移動) に費やされた時間 |
Store Instruction Time | 39 | AI エンジンによりストア命令 (データをレジスタからメモリに移動) に費やされた時間 |
Cumulative Instruction Time | 32 | AI エンジンによりメモリおよびストリーム アクセスおよびロックの取得/解放に費やされた時間 |
これらのインジケーターにより、カーネルの効率を見積もることができます。効率を上げるには、データ アクセスを最適化し、スカラー命令よりもベクター命令を優先し、ストリームへのアクセスには可能な限り 128 ビット アクセスを使用する必要があります。
メトリクス名 | イベント 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 つであってもコードの重要な領域で発生する場合は、浮動小数点アルゴリズムを記述し直す必要があります。
メトリクス名 | イベント 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 エンジン イベントおよびメモリ モジュール イベントをプログラマブル ロジックに送信するのに適切なストリーム数を定義するのに役立ちます。
メトリクス名 | イベント 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) |
これらのメトリクスは、システムの全体的な出力書き込みスループットを評価するのに有益です。
メトリクス名 | イベント 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) |
これらのメトリクスは、システムの全体的な出力読み出しスループットを評価するのに有益です。