As described in AI Engine-ML Kernel and Graph Programming Guide (UG1603) and 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/or specialized intrinsic functions that target the VLIW scalar and vector processors.
The AI Engine compiler produces ELF files that are run on 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, global memory, and the host application. 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 in a unified environment. The AI Engine code
can be developed in the Vitis environment, then linked
into the overall platform and project using either the command line or the IDE as
described in Building and Running the System, or in the Vitis Unified IDE as described in
Using the Vitis
Unified IDE in the Vitis Reference Guide (UG1702).
For v++ command usage on compiling AI Engine graphs, refer to
v++ Mode AI
Engine in the Vitis
Reference Guide (UG1702).