Deploying the System - 2021.1 English

Versal ACAP AI Engine Programming Environment User Guide (UG1076)

Document ID
UG1076
Release Date
2021-07-19
Version
2021.1 English

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 Xilinx® 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.

Table 1. Deploying the AI Engine Graph
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.