PYNQ for VCK5000, Versal Architecture

I have a vck5000 board, the specs can be found here: VCK5000 Versal Development Card for AI Engine
I had seen PYNQ supports alveo cards and resnet 50 models are being run on the card using pynq-dpu.
Can we do something similar for the vck5000 card, I could port the alveo image for the vck5000. I have all the bsp and xdc files of vck5000.
Please do share if it is possible or not

1 Like

I’d also be interested in this. Can anyone briefly explain what would be needed to use the AI engines with pynq? Maybe a similar interface to the PL where you can swap out overlays that are pre-compiled kernels?

1 Like

Hi,

For the current VCK5000 platform, the only point of access to the AI Engines is via the PL. So, potentially you could use PYNQ for Alveo. However, this is something that is not fully tested not officially supported.

For other Versal platforms, there is no easy way of controlling the AI Engines from the PS. The XRT Graph class has no Python bindings that I am aware of https://xilinx.github.io/XRT/master/html/xrt_native_apis.html#graph

Mario

Thanks. My understanding is that pynq’s job is to implement the python bindings for XRT, so it seems like this would be a fairly simple change if it’s just a matter of exposing the existing XRT API?

There may be other steps as well. For instance, we do not have a PYNQ image for any of the Versal development boards.

@nfrancque it would also be good if you can provide some context.

Sure, I am what you might call a “legacy” FPGA designer trying to find the simplest way to try out the AI engines on versal with the longer term goal of runtime swapping the PL along with AI tiles for specific applications. I am hoping that rather than learning all of the XRT stuff it would be easier to use pynq to manage swapping out different pipelines at runtime and I would only have to learn the programming details of the tiles at first, rather than everything at once. Those function calls in the XRT documentation look fairly simple, but getting to that point looks like a fair amount of work that can be abstracted out with pynq in the short term. Thanks!

Thank you for the follow up.

As I mentioned above. If you are targeting the VCK5000, you may may be able to use PYNQ as the AI Engines are not accessible from the x86 with the current platform. For any other edge development board, you will need to create a PYNQ SD card image to begin with then create the Python bindings for the AI Engine calls.

In this case, I think PYNQ may not be the best alternative for you.

Mario

Thanks, you may be right. Is there an intention to fully support versal in pynq at some point, though? It seems like it would be easier for Xilinx to sell devices if pynq could handle the majority of the details of loading the system.