Analyzing the Automated Status Output
In Vitis Analyzer, you can analyze the AI Engine status output that is automatically generated as follows:
- Open the run summary file,
xrt.run_summary
, with the following command:vitis_analyzer -a xrt.run_summary
- In Vitis Analyzer, click Set Compile Summary in the summary view to set
the AI Engine
compile summary, as shown below.
- In the prompted dialog box, click the ... button, and select the AI Engine compile summary, such as
./Work/graph.aiecompile_summary
.The summary data displays in Vitis Analyzer.
-
Click Graph or Array to display the summary data as desired. Note that all stalls are shown in red.
-
At the bottom of the summary data, you can access the associated views related to the AI Engine status, some of which are defined as follows.
- Tile Status
- Shows AI Engine status,
including stream, cascade, lock stalls. Columns are explained as
follows:
- PC: Shows the current PC value. It can be cross-probed with source code by clicking it.
-
Status: Shows AI Engine status. It can be:
- Done
- All done.
- Memory Stall - South
- AI Engine stalled on accessing memory that is located south of the AI Engine. See Array view for the physical placement of AI Engine's and buffers.
- Memory Stall - West
- AI Engine stalled on accessing memory that is located west of the AI Engine.
- Memory Stall - North
- AI Engine stalled on accessing memory that is located north of the AI Engine.
- Memory Stall - East
- AI Engine stalled on accessing memory that is located east of the AI Engine.
- Lock Stall - South
- AI Engine stalled on acquiring lock of buffer, that is located south of the AI Engine.
- Lock Stall - West
- AI Engine stalled on acquiring lock of buffer, that is located west of the AI Engine.
- Lock Stall - North
- AI Engine stalled on acquiring lock of buffer, that is located north of the AI Engine.
- Lock Stall - East
- AI Engine stalled on acquiring lock of buffer, that is located east of the AI Engine.
- Stream Stall - Input Ch 0
- AI Engine stalled on reading from stream input channel 0.
- Stream Stall - Input Ch 1
- AI Engine stalled on reading from stream input channel 1.
- Stream Stall - Output Ch 0
- AI Engine stalled on writing to stream output channel 0.
- Stream Stall - Output Ch 1
- AI Engine stalled on writing to stream output channel 1.
- Cascade Stall - Input
- AI Engine stalled on reading from cascade input stream.
- Cascade Stall - Output
- AI Engine stalled on writing to cascade output stream.
- Debug Halt
- AI Engine stalled by enabling debug mode.
- ECC Error Stall
- AI Engine stalled when ECC error happens.
- ECC Scrubbing Stall
- AI Engine stalled on ECC Scrubbing error.
- Error Halt
- AI Engine stalled on error.
- Enabled
- AI Engine is enabled.
- Reset
- In reset.
Figure 1. Stalls and Status in the Graph View
- DMA Status
- Shows the Memory module DMA channel status in the design. This is an internal DMA channel control state machine which is asynchronous to application data movement and should not be used to determine if the channel is idle.
- Error Events
- Shows error events that have happened before the status was generated.
Further details are available in the following tables: Table 4, Table 1, and Table 2.Note: Error events are not available in the new Vitis IDE Analysis view. Please use
vitis_analyzer --classic
to view error events. - Buffers
- Shows buffer objects in the design with the
current status. Something to note:
-
Lock Status: Lock status of
the buffer object:
- Acquired for read: The buffer has been acquired for read by the consumer kernel.
- Released for read: The buffer has been released for read by the producer kernel.
- Acquired for write: The buffer has been acquired for write by the producer kernel.
- Released for write: The buffer has been released for write by the consumer kernel.
-
Lock Status: Lock status of
the buffer object:
For information on how to analyze the stalls, see AI Engine Stall Analysis in Vitis Analyzer.
Analyzing the Manual Status Output
After manually generating the AI Engine status, as described in Generating AI Engine Status, you can analyze the data in Vitis Analyzer as follows:
- After opening the Vitis Analyzer, click on
- In the prompted window, set the following options.
-
Xbutil JSON File:
Select the JSON file that was manually generated with the
xbutil
command. For example, select the fileaie_status_xbutil.json
file. -
AI Engine Compile Summary: Select
the AI Engine compile summary file. For example:
./Work/graph.aiecompile_summary
- Run Summary: The run summary to be written. The run summary can be used to reload the analysis next time by or .
-
Xbutil JSON File:
Select the JSON file that was manually generated with the
For details in the view in Vitis Analyzer, see Analyzing the Automated Status Output. For information on how to analyze the stalls, see AI Engine Stall Analysis in Vitis Analyzer.