The Vitis design execution model has multiple considerations that impact how the AI Engine graph is loaded onto the board, run, reset, and reloaded. Depending on the needs of the application you have a choice of loading the AI Engine graph at board boot up time, or using the PS host application. In addition, you can also control running the graph as soon as the graph is loaded or defer it to a later time. You also have the option of running the graph infinitely or for a fixed number of iterations or cycles.
AI Engine Graph Load and Run
The AI Engine graph can be loaded and
run immediately at boot, or it can be loaded by the host PS application.
Additionally, you also have the option of deferring the running of the graph after
the graph has been loaded using the graph.run()
host
API XRT call. By default, the AMD platform management controller (PMC) loads and runs the
graph. However the v++ --package.defer_aie_run
option will let you defer the graph run until after the graph has been loaded using
the graph.run()
API call. The following table
lists the deployment options.
Host Control | Run Forever |
---|---|
Specify v++
--package.defer_aie_run to stop the AI Engine from starting at
boot-up. |
Enable it in the PDI and let the graph run forever. |
Enable the graph from the PS program using
graph.run()
|
AI Engine Run Iterations
The AI Engine graph can run for a
limited number of iterations or infinitely. By default, the graph runs infinitely.
You can use the graph.run(run_iterations)
or
graph.end(cycles)
to limit the number of
graph runs to a specific number of iterations or for a specific number of cycles.
See Run-Time Graph Control API in
AI Engine Kernel and Graph Programming
Guide
(UG1079).