hls4ml icon indicating copy to clipboard operation
hls4ml copied to clipboard

Vitis Accelerator IP Flow

Open steltze opened this issue 1 year ago • 2 comments

Vitis Accelerator based on the IP Flow for Zynq devices (in contrast to #991 ), similar to the Vivado Accelerator.

  • Inherits from the Vitis backend
  • Generates the AXI wrapper around the typical hls4ml IP and the test bench
  • Automatically creates a Vivado project with the block design, imports the IP, and generates the bitstream

Tested on

  • Vivado and Vitis HLS v2023.2
  • ZCU102 (pynq v3 ported on an ubuntu image) and PYNQ-Z2 (official v3.0.1 image) using AXI-Stream and io_stream and io_parallel with a small MLP
  • Tested the Vivado/VivadoAccelerator backends as well to check that nothing broke

To dos:

  • [ ] Integrate AXI-Master interface as an option
  • [x] Include tar generation with the bitstream, design files for pynq and the python driver for pynq
  • [x] Include FIFO Depth Optimization as a backend pass (similar to #1037 )

Type of change

  • [x] New feature (non-breaking change which adds functionality)

Tests

Pending unit tests

Test Configuration:

Checklist

  • [x] I have read the guidelines for contributing.
  • [x] I have commented my code, particularly in hard-to-understand areas.
  • [x] I have made corresponding changes to the documentation.
  • [ ] My changes generate no new warnings. Some warnings occur due to ap_axi_sdata.h
  • [x] I have installed and run pre-commit on the files I edited or added.
  • [x] I have added tests that prove my fix is effective or that my feature works.

steltze avatar Nov 20 '24 13:11 steltze

Hi @steltze The pre-commit fails because apparently you need to add hls4ml/backends/vitis_accelerator_ip_flow/supported_boards.json to the MANIFEST.in explicitly, similar to https://github.com/fastmachinelearning/hls4ml/blob/main/MANIFEST.in#L9 (no idea why that's necessary).

Did you also have a look at the comment from @DivineMK?

@nghielme are you happy with how your comments have been addressed?

We should be able to merge this soon, hopefully.

JanFSchulte avatar Jun 30 '25 15:06 JanFSchulte

Hi @JanFSchulte, I'll make sure to apply those changes and anything from @nghielme 's side since he has used this feature extensively.

There are a few open points that I will list once I start working on it again. Those points should probably be addressed in a different PR.

steltze avatar Jul 08 '25 12:07 steltze