The AI Engine simulator can detect memory violations at runtime.
By specifying the --enable-memory-check
option,
aiesimulator
can detect memory violations and
show messages, such as:
4040800 ps [ERROR] tl.aie_logical.aie_xtlm.math_engine.array.tile_32_1.cm.proc: dme_lda_e_out access out of boundary! address = 0x3b000 prog_cntr = 0x00001101000000
4040800 ps [ERROR] tl.aie_logical.aie_xtlm.math_engine.array.tile_32_1.cm.proc: dmo_lda_e_out access out of boundary! address = 0x3b010 prog_cntr = 0x00001101000000
The memory violations can be shown in the Vitis IDE by opening the run summary. The Memory Violations tab shows the tile in which the violation occurred. Click the PC values of the violations to cross probe with the source code to determine where the issue may originate. Below is one example of memory violations:
Figure 1. Memory Violations