The following tables list the pre-defined metric set configurations
available for memory modules. In the xrt.ini
file
all of these metric names should be in lower case and assigned to one of the
following metric selectors:
-
tile_based_aie_memory_metrics
-
graph_based_aie_memory_metrics
Table 1. conflicts
Metric Name |
Description |
Memory Conflict |
The time taken due to data memory conflicts
on any of the 8 banks of the memory module. Note: The hardware view is
8 banks of 128-bit width. The software view is 4 banks of
256-bit width.
|
Cumulative Memory Errors |
The 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 AI Engine
simulation.
Table 2. dma_locks
Metric Name |
Description |
Cumulative DMA Activity |
The time taken due to stalled lock
acquires on both the MM2S and S2MM channels of the
DMA. |
Cumulative DMA Lock Count |
The lock stall count on the DMA
channels. |
The four DMA channels (2xS2MM and 2xMM2S) are driven by buffer
descriptors. 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 |
Description |
S2MM Channel 0 Stalls |
The time S2MM channel 0 is stalled on lock
acquire. |
S2MM Channel 1 Stalls |
The time S2MM channel 1 is stalled on lock
acquire. |
Table 4. dma_stalls_mm2s
Metric Name |
Description |
MM2S Channel 0 Stalls |
The time the MM2S channel 0 stalled on lock
acquire. |
MM2S Channel 1 Stalls |
The time the MM2S channel 1 stalled on lock
acquire. |
Each AI Engine memory module contains two input streams to memory
map (S2MM) DMA, two memory map to output DMA streams (MM2S) channels. The s2mm_throughputs
and mm2s_throughputs
metrics profile the throughput of the S2MM and MM2S
DMA channels respectively.
Table 5. s2mm_throughputs of AI Engine
Metric Name |
Description |
DMA S2MM Channel 0 BD Packet Count |
The number of BD packets written over DMA S2MM
channel 0. |
DMA S2MM Channel 1 BD Packet Count |
The number of BD packets written over DMA S2MM
channel 1. |
DMA S2MM Channel 0 Throughput (MB/s) |
The throughput of DMA S2MM channel 0. |
DMA S2MM Channel 1 Throughput (MB/s) |
The throughput of DMA S2MM channel 1. |
The write_throughputs
metric
is deprecated, and s2mm_throughputs
is used
instead.
Table 6. mm2s_throughputs of AI Engine
Metric Name |
Description |
DMA MM2S Channel 0 BD Packet Count |
The number of BD packets written over DMA MM2S
channel 0. |
DMA MM2S Channel 1 BD Packet Count |
The number of BD packets written over DMA MM2S
channel 1. |
DMA MM2S Channel 0 Throughput (MB/s) |
The throughput of DMA MM2S channel 0. |
DMA MM2S Channel 1 Throughput (MB/s) |
The throughput of DMA MM2S channel 1. |
The
read_throughputs
metric is
deprecated, and
mm2s_throughputs
is used
instead.
Important: For both
mm2s_throughputs and s2mm_thoughputs this setting will override any AI Engine metric setting
since corresponding AI Engine metrics contribute to the throughput
calculation.
Table 7. s2mm_throughputs of AI Engine-ML
Metric Name |
Description |
DMA S2MM Channel Lock Stall Time/% |
The time DMA S2MM channel 0 is stalled on a
lock. This must be used with s2mm_throughputs in an AI Engine module. |
DMA S2MM Channel Lock Stall Time/% |
The time DMA S2MM channel 1 is stalled on a
lock. This must be used with s2mm_throughputs in an AI Engine module |
DMA S2MM Memory Backpressure Time/% |
The time DMA S2MM channel 0 is inactive due to
memory backpressure. This must be used with s2mm_throughputs in an AI Engine module. |
DMA S2MM Memory Backpressure Time/% |
The time DMA S2MM channel 1 is inactive due to
memory backpressure. This must be used with s2mm_throughputs in an AI Engine module. |
DMA S2MM Channel 0 Throughput (MB/s) |
The throughput of DMA S2MM channel 0. This
must be used with s2mm_throughputs in the AI Engine. |
DMA S2MM Channel 1 Throughput (MB/s) |
The throughput of DMA S2MM channel 1. This
must be used with s2mm_throughputs in the AI Engine. |
Note: These metrics are only available on AI Engine-ML
devices.
Table 8. mm2s_throughputs of AI Engine-ML
Metric Name |
Description |
DMA MM2S Stream Backpressure Time/% |
The time DMA MM2S channel 0 is inactive due to
stream backpressure. This must be used with mm2s_throughputs in an AI Engine module. |
DMA MM2S Stream Backpressure Time/% |
The time DMA MM2S channel 1 is inactive due to
stream backpressure. This must be used with mm2s_throughputs in an AI Engine module. |
DMA MM2S Memory Starvation Time/% |
The time DMA MM2S channel 0 is inactive due to
memory starvation. This must be used with mm2s_throughputs in an AI Engine module. |
DMA MM2S Memory Starvation Time/% |
The time DMA MM2S channel 1 is inactive due to
memory starvation. This must be used with mm2s_throughputs in an AI Engine module. |
DMA MM2S Channel 0 Throughput (MB/s) |
The throughput of DMA MM2S channel 0. This
must be used with mm2s_throughputs in the AI Engine. |
DMA MM2S Channel 1 Throughput (MB/s) |
The throughput of DMA MM2S channel 1. This
must be used with mm2s_throughputs in the AI Engine. |
Note: These metrics are only available on AI Engine-ML
devices.
Important: For both mm2s_throughputs and s2mm_thoughputs this setting will override any AI Engine-ML metric setting
since corresponding AI Engine-ML metrics contribute to the throughput
calculation.