Use kernel accelerators in PYNQ embedded device


I have created a design for an ultra96 board and then I have used Vitis to create an accelerated application which gives me an accelerated kernel (.xclbin).

From Alveo examples I have seen that I can load a xclbin like Overlay but I think that is not the correct path for an embedded device because an Alveo board has Shell and Dynamic Region and what I am loading is the Dynamic Region, Shell always stays static.

For an embedded device what do I need to do? Do I need to load created “static” bitstream using Vitis that is usually embedded inside the BOOT.bin using Overlay and then store the created accelerated kernel in /usr/lib so XRT is in charge of loading the kernel in runtime without loading it using Overlay?


Hi, we are not using XRT to download overlay; from your hardware project, you can get the bit, and the hwh files. Use those as the overlay files to download the overlay.

from pynq import Overlay
_ = Overlay('youapp.bit')

That is a well supported flow. *.xclbin may still needed by XRT since metadata are read from it. I usually just put the xclbin inside the same folder as the executable.