The following list details the four types of performance counters:
- Runtime event performance counters for the AI Engine modules
- Runtime memory counters for memory modules
- Runtime interface counters for AI Engine-PL interface tiles
- Runtime memory counters for memory tiles (AI Engine-ML only)
You can configure performance counters to track a variety of events in the AI Engine, the memory module, and the interface tile. Various features like error-correction code (ECC) scrubbing, event trace and profiling can use these performance counters. Performance counters count occurrences of a given event in a profile configuration. The profile feature offers several different configurations of these performance counters. Configurations can be dynamically applied at runtime to collect various profiling statistics.
When using performance counters, no changes are required in the PS host code. Performance counters can be configured, read, and collected at runtime while the design executes in hardware. The following table lists the number of performance counters that are available for different configurations.
| Event Trace Used? | Counters Available for Profiling | |||
|---|---|---|---|---|
| Core Module | Memory Module | PL Interface | Memory Tile (AI Engine-ML) | |
| No | 3 | 2 | 2 | 4 |
| Yes | 2 | 1 | 2 | 3 |
When performance counters are used for event trace and profiling in the same execution, allocated performance counters cannot meet the requirements of all the requested features at the same time. The following warning messages indicate this situation.
- AI Engine
- AI Engine Memory
- Interface Tile
- Memory Tile (AI Engine-ML and AI Engine-ML v2)
All the chosen metric sets must be grouped in the xrt.ini file under the [Debug] and
[AIE_profile_settings] keywords in the XRT flow. In
the XSDB flow, metric sets must be specified as flags when using aieprofile.