Vitis Analyzer can use the event trace from the AI Engine simulation to do stall analysis that shows an overview of the stall status in metrics. It also helps you determine where the stall has happened, and the possible causes.
If you are using Vitis Analyzer to do stall analysis, run the AI Engine simulator with
--online -wdb -ctf options to generate event trace information in the background:
aiesimulator --pkg-dir=./Work --online -wdb -ctf
Note: For more information about AI Engine stall analysis using Vitis Analyzer in the hardware emulation flow, refer to the Versal ACAP AI Engine Programming Environment User Guide (UG1076).
In Vitis Analyzer, the Performance Metrics view gives an overview of the stalls in the design:
Each tile shows percentages for each type of stall. From the metrics table, it can be seen that tile (24,0) has a large percentage of lock stall (98.896%), and tile (25,0) has a large percentage of stream stall (98.380%). These metrics indicate that the design is hanging, and that analysis is required.
In the Graph view of Vitis Analzyer, you can visualize the stalled path in the graph, which gives an indication of where the stall has happened in the design. By understanding the design behavior, it is also possible to estimate the cause of the hang.
For example, select the stream stall in Trace view, and switch to Graph view. In this design, kernel
k hangs in stream stall. The full destination port is
gr.k/in, which means that the destination kernel
k is not receiving data from the stream.