Profiling for Memory Modules - 2021.2 English

Versal ACAP AI Engine Programming Environment User Guide (UG1076)

Document ID
Release Date
2021.2 English

The following tables list the pre-defined metric set configurations available for memory modules.

Table 1. Conflicts
Metric Name Event ID Description
Memory Conflict 76 Time taken due to data memory conflicts on any of the 8 banks of the memory module.
Cumulative Memory Errors 86 Time taken due to ECC errors in any of the Data Memory banks, as well as the 2x MM2S and the 2x S2MM DMAs.

Memory conflicts happen when two memory chunks reside in the same memory bank and are accessed either by the same AI Engine (using the two read ports) or by two different AI Engines. A potential solution is to constrain the locations of these memories to different banks. In order to get more details about which bank is causing these conflicts, you should analyze the events from an Emulation-AIE simulation.

Table 2. DMA_locks
Metric Name Event ID Description
Cumulative DMA Activity 20 Time taken due to stalled lock acquires on both the MM2S and S2MM channels of the DMA.
Cumulative DMA Lock Count 43 Lock Stall count on the DMA channels.

The four DMA channels (2xS2MM and 2xMM2S) are driven by Buffer Descriptors (BDs). The Cumulative DMA Activity is a count of the time taken due to stalled lock acquire events on all channels. All these DMA events will help you understand why some connections through the device are slower than expected.

Table 3. DMA_stalls_s2mm
Metric Name Event ID Description
S2MM Channel 0 Stalls 33 Time S2MM channel 0 was stalled on lock acquire.
S2MM Channel 1 Stalls 34 Time S2MM channel 1 was stalled on lock acquire
Table 4. DMA_stalls_mm2s
Metric Name Event ID Description
MM2S Channel 0 Stalls 35 Time MM2S channel 0 stalled on lock acquire
MM2S Channel 1 Stalls 36 Time MM2S channel 1 stalled on lock acquire