Performance Metrics ビューでは、ロック ストールを解析する必要があるかどうかを判断できます。Vitis IDE でロック ストールを解析するには、次の手順に従います。
- Trace ビューを選択します。
-
Lock
Stalls ビューを選択します。ヒント: Stalls ビューは、Trace ビュー、Graph ビュー、および Array ビューで表示されます。図 1. Trace ビューのロック ストール各ストールには、次の情報が表示されます。
- NAME
- ロック ストールには、LS_<NUM> という名前が付けられます。番号は、ストールのすべてのタイプの間で固有です。発生した順番に番号が付けられます。
- Stalled Tile
- ストールしたカーネルが存在する AI エンジン タイル。
- Stalled Kernel
- ストールしたカーネル。
<Kernel_function_name>.<Schedule_ID>.<Graph_instance_name>
という名前です。_main
と表示されることもあり、その場合はクロスプローブして実際のカーネル関数を見つける必要があります。 - Start (ps)
- ストールの開始時間。
- Duration (ps)
- ストール時間の長さ。
- PC
- ストールが発生したときのプログラム カウンター。
- Type
- ストールしたカーネルが試みている操作 (バッファーの読み出し (Read) または書き込み (Write))。
- Buffer
- ストールしたカーネルが読み出しまたは書き込みしようとしているバッファー。
- Stalled Port
- ストールしたカーネルのバッファーを読み出しまたは書き込みしようとしているポート。
- Lock Holder
- バッファーのロックを保持しているソース。
- Related Stall
- ストールを発生させる可能性のあるほかのストール。 ヒント: 緑色でハイライトされている項目は、ほかのビューにクロスプローブできます。
- ストールの 1 つの行を選択します。Trace ビューのそのストールの開始に移動します。ストールを右クリックして Filter
Trace をクリックすると、ストールに関連する信号をフィルターできます。Trace ビューに、ストールに関連する信号が表示されます。関連しない信号は非表示になります。デザインが大きい場合は、トレースを調べる方が簡単です。ヒント: Filter Trace でストールに関連する信号が表示されないことがあります。
- Trace ビューは、タイムラインにロック ストールを表示するのに使用できます。特定のロック ストールに対し、書き込みロックおよび読み出しロックが割り当てられたときに表示できます。ストールの位置およびストール前後のイベントから、ストールの原因を解析できます。たとえば、書き込みロックが既に割り当てられており、ロック タイプが Read の場合、バッファーがプロデューサーにより解放されていないことを示します。コンシューマーは、それが読み出し可能になるのを待っている状態です。このプロデューサーは、Lock Holder に示されています。
- 以前にフィルターされたトレースをクリアするには、右クリックして Clear All Filters をクリックします。
- 通常、Graph ビューでストール パスの全体図を表示すると有益です。Graph ビューを選択し、ドロップダウン リストから Tile View をクリックします。Graph ビューの Tile ビューには、グラフが AI エンジン タイル別に表示されます。
- Stalls ビューが表示されていない場合は、ドロップダウン リストから Lock Stalls を選択し、解析するストールを選択します。Graph ビューの Tile ビューに関連するパスがハイライトされます。
- ストールが発生しているパスは赤で示されます。ストールが発生しているソースへのパスが白で示されます。
- PC 値をクリックします。ソース コードが開き、ストールが発生した行が示されます。
次の表に、ロック ストールが発生する状況と可能なソリューションを示します。
ソース | ターゲット | デスティネーション | ストール タイプ | 可能なソリューション |
---|---|---|---|---|
AI エンジン カーネル | 同期ウィンドウのロック | AI エンジン カーネル | ロック ストール |
|
AI エンジン カーネル | 非同期ウィンドウのロック (window_acquire および window_release API) |
AI エンジン カーネル | ロック ストール |
|
PL インターフェイス | ウィンドウのロック | AI エンジン カーネル | ロック ストール |
|
AI エンジン | ウィンドウのロック | PL インターフェイス | ロック ストール |
|
注記: DMA ロック ストールは、Vitis IDE のロック ストール解析には含まれません。