Support for PYNQ v2.3 image


#1

PYQN image has been updated to v2.3. VTA.cmake does not seem to support it. I tried it w/ an Ultra96’s v2.3 image and it was not able to find sds_lib or dma.

The issue is probably related to the fact that https://github.com/Xilinx/PYNQ/tree/image_v2.1/sdbuild/packages/libsds was changed from xlnkutils to libcma in v2.3.


#2

Thank you for reporting the issue. We have a Ultra96 support that is currently WIP, but I can issue a patch to support v2.3 in the meantime.


#3

@thierry, thanks for the prompt reply. Is the Ultra96 support PYNQ based?


#4

@haowu80s yes the Ultra96 support is based on PYNQ-based image. For far we’ve been using a custom-built Linux image for testing, but we’ll need to test support for the image that Xilinx released on October 3rd.

Is that what you’ve been using as well?


#5

Yep. That’s what I’m trying to use.


#6

HI. Could you please advise what IDE do I need to work with VTA? Do I need full-scale Vivado IDE or maybe it’s possible to use Vivado HLS alone to flash the board?

https://www.xilinx.com/products/design-tools/vivado.html#buy

Regards


#7

@grwlf we describe the required IDE here: https://docs.tvm.ai/vta/install.html#vta-fpga-toolchain-installation

You can get the free edition to do compilation. In terms of flashing the board, there are no IDEs required, it’s all handled on-board.


#8

@haowu80s I’ve submitted a PR to bring support for PYNQ v2.3 https://github.com/dmlc/tvm/pull/1945

If you’re looking to build VTA for Ultra96, I will follow up with an update that allows us to build VTA and program it on Ultra96 sometime next week.

Thank you for your patience!


#9

I think the metal test (tvm/vta/tests/hardware/metal_test) was not ported to pynq v2.3 and I would like to know how to proceed.
The changes that were introduced in #1945 were:

  • Remove dependency to dma,sds lib. Instead, the cma lib is used
  • The XDEVCFG interface is deprecated so VTAProgram was removed

Problem 1:
Files that were not updated:

  • tvm/vta/python/vta/pkg_config.py
  • tvm/vta/tests/hardware/metal_test/Makefile

both still add sds_lib, libdma to ldflags

Problem 2:
tvm/vta/tests/hardware/common/test_lib.cc used by the VTA metal test still includes the VTAProgram call.
I haven’t found a replacement for this call. The pynq way is to flash the bitstream with the python overlay, but there is no C interface?.

Is there still demand for the metal test or is it already superseded by the python unit tests (tvm\vta\tests\python\unittest)?
I’d like to make a pull request for problem 1 if it’s not superseded.

PS:
To my understanding this is also the problem that another person reported (zkh2018) in the git issue #2650.