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.