プロファイル サマリの解釈 - 2020.2 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2021-03-22
Version
2020.2 Japanese

プロファイル サマリには、ホスト アプリケーションおよびカーネルに関する有益な統計が多数含まれます。このレポートには、アプリケーションの機能的なボトルネックの概要が示されます。次の表に、プロファイル サマリ レポートの説明を示します。

Settings

レポートおよび XRT のコンフィギュレーション設定を表示します。

Summary

デバイスの実行時間、デバイスの消費電力を含む、サマリ統計を表示します。

Kernels & Compute Units

[Kernel Execution] セクションは、スケジューリングおよび実行されたすべてのカーネル関数のプロファイル データ サマリを表示します。

表 1. Kernel Execution
名前 説明
Kernel カーネル名
Enqueues カーネルがエンキューされる回数。カーネルが 1 回のみエンキューされる場合は、この後の統計はすべて同じです。
Total Time すべてのエンキューの合計実行時間 (OpenCL API 実行モデルで START から END まで測定) (ms)
Minimum Time すべてのエンキューの最短実行時間
Average Time カーネルの平均実行時間 (ms)

(合計時間) / (エンキュー数)

Maximum Time すべてのエンキューの最長実行時間 (ms)

[Top Kernel Execution] セクションは、最上位カーネル関数のプロファイル データ サマリを表示します。

表 2. Top Kernel Execution
名前 説明
Kernel カーネル名
Kernel Instance Address カーネル インスタンスのホスト アドレス (16 進数)
Context ID ホストのコンテキスト ID
Command Queue ID ホストのコマンド キュー ID
Device カーネルが実行されたデバイス名 (フォーマット:<device>-<ID>)
Start Time 実行の開始時間 (ms)
Duration 実行期間 (ms)

[Compute Unit Utilization] セクションは、デバイス上の計算ユニットすべてのサマリ プロファイル データを表示します。

表 3. Compute Unit Utilization
名前 説明
Compute Unit 計算ユニット名
Kernel 計算ユニットが関連付けられているカーネル
Device デバイスの名前 (フォーマット: <device>-<ID>)
Calls 計算ユニットが呼び出される回数
Dataflow Execution CU がデータフローを使用して実行されているかを指定
Max Parallel Executions データフロー領域での実行回数
Dataflow Acceleration データフロー実行によるパフォーマンスの向上
CU Utilization (%) カーネルの合計実行時間のうち CU で使用される時間の割合
Total Time すべての呼び出しの合計実行時間 (ms)
Minimum Time すべての呼び出しの最短実行時間 (ms)
Minimum runtime of all calls (合計時間) / (ワーク グループ数)
Maximum Time すべての呼び出しの最長実行時間 (ms)
Clock Frequency 該当アクセラレータに使用するクロック周波数 (MHz)

[Compute Unit Running Times & Stalls] セクションは、デバイス上の計算ユニットの実行時間およびストールのプロファイル サマリ データを表示します。

表 4. Compute Unit Running Times & Stalls
名前 説明
Compute Unit 計算ユニット名
Running Time 計算ユニットが実行される合計時間 (µs)
Intra-Kernel Dataflow Stalls (%) カーネル内ストリームにより計算ユニットがストールしている時間の割合。
External Memory Stalls (%) 外部メモリ アクセスにより計算ユニットがストールしている時間の割合
Inter-Kernel Pipe Stalls (%) カーネル間パイプ アクセスにより計算ユニットがストールしている時間の割合。

Kernel Data Transfers

[Data Transfer] セクションは、カーネルからグローバル メモリへのデータ転送を表示します。

表 5. Data Transfer
名前 説明
Compute Unit Port 計算ユニット/ポート名
Kernel Arguments このポートに接続されるカーネル引数のリスト
Device デバイス数 (フォーマット: <device>-<ID>)
Memory Resources このポートでアクセスされるメモリ リソース
Transfer Type カーネル データ転送のタイプ
Number of Transfers カーネル データ転送数 (AXI トランザクション数)
注記: printf 転送が含まれる場合があります。
Transfer Rate カーネル データ転送レート (MB/s)

転送レート = (合計バイト数) / (合計 CU 実行時間)

合計 CU 実行時間は CU がアクティブな実行時間
Avg Bandwidth Utilization (%) カーネル データ転送の平均帯域幅

帯域幅使用率 (%) = (100 * 転送レート) / (0.6 * 論理的な最大レート)

Avg Size カーネル データ転送の平均帯域幅 (KB)

平均サイズ (KB) = (合計 KB) / (転送数)

Avg Latency カーネル データ転送の平均レイテンシ (ns)

[Top Data Transfer] セクションは、カーネルからグローバル メモリへの最上位データ転送を表示します。

表 6. Top Data Transfer
名前 説明
Compute Unit 計算ユニット名
Device デバイス名
Number of Transfers 書き込みおよび読み出しのデータ転送数
Avg Bytes per Transfer カーネル データ転送の平均バイト数

平均バイト数 = (合計バイト数) / (転送数)

Transfer Efficiency (%) カーネル データ転送の効率:

効率 = (平均バイト数) / min((メモリ バイト幅 * 256), 4096)

Total Data Transfer カーネルで転送された合計データ量 (MB):

合計データ量 = (書き込みの合計量) + (読み出しの合計量)

Total Write カーネルで書き込まれた合計データ量 (MB)
Total Read カーネルで読み出された合計データ量 (MB)
Total Transfer Rate 平均合計データ転送レート (MB/s):

合計転送レート = (合計データ転送) / (合計 CU 実行時間)

合計 CU 実行時間は CU がアクティブな実行時間

[Data Transfer Streams] セクションは、データ転送ストリームを表示します。

注記: この表は、ストリーム データがある場合にのみ表示されます。
表 7. Data Transfer Streams
名前 説明
Master Port マスター計算ユニットおよびポートの名前
Master Kernel Arguments このポートに接続されるカーネル引数のリスト
Slave Port スレーブ計算ユニットおよびポートの名前
Slave Kernel Arguments このポートに接続されるカーネル引数のリスト
Device デバイス数 (フォーマット: <device>-<ID>)
Number of Transfers ストリーム データ パケット数
Transfer Rate ストリーム データ転送レート (MB/s)

転送レート = (合計バイト数) / (合計 CU 実行時間)

合計 CU 実行時間は CU がアクティブな実行時間

Avg Size カーネル データ転送の平均帯域幅 (KB)

平均サイズ (KB) = (合計 KB) / (転送数)

Link Utilization (%) リンク使用率 (%):

リンク使用率 = 100 * (リンク Busy サイクル数 - リンク ストール サイクル数 - リンク Starve サイクル数) / (リンク Busy サイクル数)

Link Starve (%) リンク Starve の割合 (%):

リンク Starve の割合 = 100 * (リンク Starve サイクル数 / (リンク Busy サイクル数)

Link Stall (%) リンク ストールの割合 (%):

リンク ストールの割合 = 100 * (リンク ストール サイクル数 / (リンク Busy サイクル数)

Host Data Transfers

[Top Memory Writes] セクションは、 PCI Express® リンクを介したホストとデバイス メモリ間のすべての書き込み転送のプロファイル データを表示します。

表 8. Top Memory Writes
名前 説明
Buffer Address バッファーのアドレス ロケーション
Context ID ホスト上での OpenCL コンテキスト ID
Command Queue ID ホスト上での OpenCL コマンド キュー ID
Start Time 書き込み操作の開始時間 (ms)
Duration 書き込み操作の時間 (ms)
Buffer Size 転送されたデータ量 (KB)
Writing Rate データ転送レート (MB/s):

(バッファー サイズ)/(時間)

[Top Memory Reads] は、 PCI Express® リンクを介したホストとデバイス メモリ間のすべての読み出し転送のプロファイル データを表示します。

表 9. Top Memory Reads
名前 説明
Buffer Address バッファーのアドレス ロケーション
Context ID ホストのコンテキスト ID
Command Queue ID ホストのコマンド キュー ID
Start Time 読み出し操作の開始時間 (ms)
Duration 読み出し操作の時間 (ms)
Buffer Size 転送されたデータ量 (KB)
Reading Rate データ転送レート (MB/s):

(バッファー サイズ) / (時間)

[Data Transfer] セクションは、ホストからグローバル メモリへのデータ転送を表示します。

表 10. Data Transfer
名前 説明
Context:Number of Devices コンテキスト ID およびコンテキスト内のデバイス数
Transfer Type カーネル ホスト転送のタイプ
Number of Buffer Transfers ホスト バッファー転送数
注記: printf 転送が含まれる場合があります。
Transfer Rate ホスト データ転送レート (MB/s)

転送レート = (合計バイト数) / (合計時間 (µs))

Avg Bandwidth Utilization (%) ホスト バッファー転送の平均帯域幅:

帯域幅使用率 (%) = (100 * 転送レート) / (論理的な最大レート)

Avg Size ホスト バッファー転送の平均サイズ (KB)

平均サイズ (KB) = (合計 KB) / (転送数)

Total Time ホスト バッファー転送の合計時間 (ms)
Avg Time ホスト バッファー転送の平均時間 (ms)

API Calls

ホスト アプリケーションで実行されるすべての OpenCL ホスト API 関数呼び出しのプロファイル データを表示します。上部には、合計時間に対する API 呼び出しの時間の割合が棒グラフで示されます。

表 11. API Calls
名前 説明
API Name API 関数の名前 (例: clCreateProgramWithBinaryclEnqueueNDRangeKernel)
Calls ホスト アプリケーションからこの API が呼び出された回数
Total Time すべての呼び出しの合計実行時間 (ms)
Minimum Time すべての呼び出しの最短実行時間 (ms)
Average Time 平均時間 (ms)

(合計時間) / (呼び出し回数)

Maximum Time すべての呼び出しの最長実行時間 (ms)

Device Power

デバイスの電源のプロファイルを表示します。

表 12. Device Power
名前 説明
Power Used By Platform データセンター アクセラレータ カードの 3 つの電源レールのグラフを表示します。
  • 12V 補助電源
  • 12V PCIe
  • 内部電源
カードの時間の経過に伴う消費電力を示します。
Temperature 温度測定値が 0 以外のデバイスごとに 1 つのチャートが作成されます。温度センサーごとに 1 行ずつ表示されます。単位は ℃ です。
Fan Speed ファン速度が 0 以外のデバイスごとに、1 つのチャートが作成されます。ファン速度は RPM 単位で測定されます。

Kernel Internals

[CU Runtime and Stalls] セクションは、計算ユニットの実行時間 (µs) と、ストール時間の実行時間に対する割合を表示します。

ヒント: [Kernel Internals] タブでは時間が µs でレポートされますが、ほかのプロファイル サマリ レポートでは時間が ms でレポートされます。
表 13. CU Runtime and Stalls
名前 説明
Compute Unit 計算ユニットのインスタンス名
Running Time CU の合計実行時間 (µs)
Intra-Kernel Dataflow Stalls (%) カーネル間のデータ ストリーミング中にストールした時間の実行時間に対する割合
External Memory Stalls (%) CU 外のメモリ転送でストールした時間の実行時間に対する割合
Inter-Kernel Pipe Stalls (%) CU 外とのデータ ストリーミング中にストールした時間の実行時間に対する割合

[CU Port Data Transfers] セクションは、計算ユニットの特定のポートでのデータ転送を表示します。

表 14. CU Port Data Transfers
名前 説明
Port 計算ユニットのポート名
Compute Unit 計算ユニットのインスタンス名
Write Time ポート上でのデータ書き込み合計時間 (µs)
Outstanding Write (%) 実行時間で書き込み処理に使用された割合
Read Time ポート上でのデータ読み出し合計時間 (µs)
Outstanding Read (%) 実行時間で読み出し処理に使用された割合

[Functional Port Data Transfers] セクションは、計算ユニットの関数ポートのデータ転送を表示します。

表 15. Functional Port Data Transfers
名前 説明
Port ポート名
Function 関数名
Compute Unit 計算ユニット名
Write Time ポートに待機中の書き込みがあった合計時間 (µs)
Outstanding Write (%) ポートに待機中の書き込みがあった時間の割合
Read Time ポートに待機中の読み出しがあった合計時間 (µs)
Outstanding Read (%) ポートに待機中の読み出しがあった時間の割合

[Functions] セクションは、計算ユニットの実行時間およびストールを表示します。

表 16. Functions
名前 説明
Compute Unit 計算ユニット名
Function 関数名
Running Time 関数が実行される合計時間 (ms)
Intra-Kernel Dataflow Stalls カーネル内ストリームにより関数がストールしている時間の割合 (ms)
External Memory Stalls 外部メモリ アクセスにより関数がストールしている時間の割合 (ms)
Inter-Kernel Pipe Stalls カーネル間パイプ アクセスにより関数がストールしている時間の割合 (ms)

Shell Data Transfers

[DMA Data Transfer] セクションは、DMA データ転送を表示します。

表 17. DMA Data Transfer
名前 説明
Device デバイス数 (フォーマット: <device>-<ID>)
Transfer Type データ転送のタイプ
Number of Transfers データ転送数 (AXI トランザクション数)
Transfer Rate データ転送レート (MB/s):

転送レート = (合計バイト数) / (合計時間 (µs))

Total Data Transfer 転送されるデータの合計量 (MB)
Total Time データ転送の合計時間 (ms)
Avg Size データ転送の平均サイズ (KB)

平均サイズ (KB) = (合計 KB) / (転送数)

Avg Latency データ転送の平均レイテンシ (ns)

DMA バイパスおよびグローバル メモリからグローバル メモリへのデータ転送については、上記の [DMA Data Transfer] 表を参照してください。

NoC Counters

[NoC Counters] には、[NoC Counters Read] および [NoC Counters Write] が表示されます。これらのセクションは、0 以外の NoC カウンター データがある場合にのみ表示されます。

各セクションには、転送レートと遅延の折れ線グラフとサマリ データを含む表があります。グラフには複数の NoC カウンターを含めることができるため、表の [Chart] 列のチェック ボックスを使用してカウンターのオン/オフを切り替えることができます。

デザインによっては、NoC カウンターを CU ポートに関連付けることができます。この場合、CU ポートが表に表示され、選択すると、システム ダイアグラム、プロファイル サマリ、および CU ポートを選択可能なオブジェクトとして含むその他のビューにクロスプローブされます。

表 18. NoC Counters Read or Write
名前 説明
Name NoC ポート名
Traffic Class トラフィック クラスのタイプ
Requested QoS QoS (MB/s): 要求されたサービス品質 (MB/s)
Min Transfer Rate 最小データ転送レート (MB/s)
Avg Transfer Rate 平均データ転送レート (MB/s)
Max Transfer Rate 最大データ転送レート (MB/s)
Avg Size データ転送の平均サイズ (KB)

平均サイズ (KB) = (合計 KB) / (転送数)

[Min Latency] データ転送の最小レイテンシ (ns)
[Avg Latency] データ転送の平均レイテンシ (ns)
[Max Latency] データ転送の最大レイテンシ (ns)

AI Engine Counters

AI エンジン カウンターは、0 以外の AI エンジン カウンター データがある場合に表示されます。AI エンジン カウンターの設定に互換性がない場合、このセクションには、設定がパフォーマンス プロファイリングをサポートしていないことを示すメッセージが表示されます。

このセクションには、アクティビティ時間と使用率の折れ線グラフとサマリ データを含む表があります。使用率チャートは、ストール プロファイリングが有効になっている場合にのみ使用できます。

グラフには複数の AI エンジン カウンターを含めることができるため、表の [Chart] 列のチェック ボックスを使用してカウンターのオン/オフを切り替えることができます。

タイルは、AI エンジン アレイ ビューおよびグラフ ビューにクロスプローブできるようになります。

表 19. AI Engine Counters
名前 説明
Tile AI エンジン タイル [列、行]
Active Time (ms) このタイルがアクティブだった時間 (ms)
Stall Time (ms) このタイルがアクティブでも停止していた時間 (ms)
Stall Time (%) このタイルがアクティブでも停止していた時間の割合 (%)
Active Utilization (ms) このタイルがアクティブでも停止していなかった時間 (ms)
Active Utilization (%) このタイルがアクティブでも停止していなかった時間の割合 (%)
Clock Frequency (MHz) AI エンジン タイルに使用されるクロックの周波数 (MHz)