The simplest form of tracing is to use a formatted printf()
statement in the code for printing debug
messages. Visual inspection of intermediate values, addresses, etc. can help you
understand the progress of program execution. No additional include files are
necessary for using printf()
other than standard
C/C++ includes (stdio.h). You can add printf()
statements to your code to be processed during
simulation, or hardware emulation, and remove them or comment them out for hardware
builds.
Adding printf
statements to your
AI Engine kernel code will increase the
compiled size of the AI Engine program. Be
careful that the compiled size of your kernel code does not exceed the per-AI Engine processor memory limit of 16 KB.
aiesimulator --profile
command to enable
the printf()
execution during a simulator run. If
--profile
is not specified, the printf()
function is ignored.A separate driver and binary is used for this functionality to allow the main
simulator to remain as fast as possible. Using the debug simulator driver produces a
per-tile profile report under the output directory which gives detailed cycle-level
statistics of kernel execution. In addition, using the --profile
option generates a run_summary file that is written to the ./aiesimulator_output folder that can be viewed as described in
AI
Engine Tools and Flows User Guide (UG1076).