Programming Versal AI Engines - 2023.2 English

Vitis Unified Software Platform Documentation: Application Acceleration Development (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 English

As described in AI Engine Kernel and Graph Programming Guide (UG1079), an AI Engine kernel is a C/C++ program that is written using the AI Engine API and specialized intrinsic functions that target the VLIW scalar and vector processors of AMD Versal™ AI Core devices.

The AI Engine compiler produces ELF files that are run on the AI Engine processors. Multiple AI Engine kernels are combined in an adaptive data flow (ADF) graph that consists of nodes and edges where nodes represent compute kernel functions, and edges represent data connections. The ADF graph is a static data flow graph with kernels operating in parallel on data streams. The ADF graph interacts with the PL kernels in the device binary (.xclbin), global memory, and the host application as previously described. The AI Engine compiler produces a libadf.a file containing the graph application, which can be linked with PL kernels and extensible platform by the Vitis compiler to produce the device binary.

As described in AI Engine Tools and Flows User Guide (UG1076), the AI Engine compiler (v++ or aiecompiler) is available as a standalone command, or as part of the Vitis unified IDE. The IDE provides a language sensitive editor, simulation, profiling, and debug of the component. The AI Engine component can be designed as a standalone component and integrated into a system project from the command line as described in Building and Running the System, or in the Vitis unified IDE as described in Using the Vitis Unified IDE.