In the Vitis application acceleration development flow, kernels (or compiled Xilinx object (.xo) files) are the processing elements executing in the PL region of the Xilinx device. The Vitis software platform supports kernels written in C/C++, RTL, or OpenCL C/C++. Regardless of source language, all kernels have the same properties and must adhere to same set of requirements.
Kernels can be defined as software controllable, or non-software controlled. This means that the kernel is controlled through software such as the host application, or is un-managed by software and is instead data driven.