For edge DPU, Vitis AI offers the advanced
low-level C++/Python programming APIs. It consists of a comprehensive set of APIs that
can flexibly meet the diverse requirements under various edge scenarios. For example,
low-level API dpuSetTaskPriority()
can be used to
specify the scheduling priority of DPU tasks so that different models can be scheduled
under the dedicated priorities. dpuSetTaskAffinity()
can
be used to dynamically assign DPU tasks to desired DPU cores so that the users can
participate in DPU cores' assignment and scheduling as required. Meanwhile, such
advanced APIs bring forward compatibility so that DNNDK legacy projects can be ported to
Vitis platform without any modifications to the
existing source code.
Vitis AI advanced low-level C++ APIs are
implemented within runtime library libn2cube
for edge
DPU and are exported within header file n2cube.h
, which
represents in header file dnndk.h
. Hence the users only
need to include dnndk.h
at the source code.
In the meantime, the users can adopt the suited low-level Python APIs in module n2cube,
which are equivalent wrappers for those C++ APIs in library libn2cube
.
With Python programming interface, the users can reuse the Python code developed during
model training phase and quickly deploy the models on edge DPU for evaluation purpose.