Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SR backend doesn't work with Vitis HLS #994

Open
4 tasks done
bo3z opened this issue Apr 10, 2024 · 0 comments
Open
4 tasks done

SR backend doesn't work with Vitis HLS #994

bo3z opened this issue Apr 10, 2024 · 0 comments
Labels

Comments

@bo3z
Copy link
Contributor

bo3z commented Apr 10, 2024

Prerequisites

Please make sure to check off these prerequisites before submitting a bug report.

  • Test that the bug appears on the current version of the master branch. Make sure to include the commit hash of the commit you checked out.
  • Check that the issue hasn't already been reported, by checking the currently open issues.
  • If there are steps to reproduce the problem, make sure to write them down below.
  • If relevant, please include the hls4ml project files, which were created directly before and/or after the bug.

Quick summary

When synthesising SR with Vitis HLS (2023), co-sim validation fails. The reason for this is that the look-up table constructor, which populates LUT stored in BRAM, is invoked correctly in C++ but not in HLS synthesis, leading to very small/random LUTs that are not sufficient and thus the difference between C++ and HLS simualation.

Possible fix

This is likely an issue in Vitis HLS and not hls4ml. I haven't tested with Vivado HLS as I do not have access to it. Possible fix is to explicitly write-out the LUTs (like it's done with weight arrays), avoiding the need for a constructor.

@bo3z bo3z added the bug label Apr 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant