-
Notifications
You must be signed in to change notification settings - Fork 409
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
Providing support for Alveo boards #552
Providing support for Alveo boards #552
Conversation
Things that need to be improved: -added only alveo-u50 board (many others are present) -suboptimal v++ command call -project directory becomes crowded really easy
-Added line tto tests.
Changed IP instantiation name.
To include the missing JSON file
Thanks a lot for this! And thanks @Gabriele-bot for getting it rolling. I did a build today with the QKeras jet tagging example model targeting my U200, and it worked, which is awesome! I'll leave some more detailed review comments inline in the code. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
axi_stream_design.tcl
: now there are 4 copies of basically the same file, differing only by the device part (as far as I can tell). Can we reduce that to one copy with a paremeter? It will be better for maintenance. We could write the part into the project.tcl, for example. For the Python driver there's already just a single file.
hls4ml/backends/vivado_accelerator/vivado_accelerator_backend.py
Outdated
Show resolved
Hide resolved
hls4ml/backends/vivado_accelerator/vivado_accelerator_backend.py
Outdated
Show resolved
Hide resolved
hls4ml/backends/vivado_accelerator/vivado_accelerator_backend.py
Outdated
Show resolved
Hide resolved
hls4ml/templates/vivado_accelerator/alveo/python_drivers/axi_stream_driver.py
Show resolved
Hide resolved
@thesps Thanks a lot for the detailed suggestions. |
hls4ml/backends/vivado_accelerator/vivado_accelerator_backend.py
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the fixes, looks very nice now
Providing support for Alveo boards (fastmachinelearning#552) Co-authored-by: Sioni Summers <[email protected]> Co-authored-by: Gabriele-bot <[email protected]> Co-authored-by: Selwyn96 <[email protected]>
This PR provides backend support for Alveo boards (U50, U200, U250 and U280) by leveraging the VivadoAccelerator backend.
Reference: #496.
Changes:
In
hls4ml/templates/vivado_accelerator/alveo
Added RTL files which act as AXI stream to AXI master adapter for the Alveo boards.
The axi-stream tcl scripts for all boards.
The python drivers.
In
/hls4ml/backends/vivado_accelerator/vivado_accelerator_backend.py
Added a make_xclbin function that generates the xclbin container by linking the project and object files.
Tests
Modified the
test/hls4ml-keras-test.sh
script to test the functionality of the branch.A more comprehensive tutorial for training and deploying on the Alveo boards can be found at https://github.com/selwyn96/Alveo-tutorial
Slides
(https://docs.google.com/presentation/d/1D9tryRyFp6kSb2ytc8kBLJ-El4CB_giDGnOQ2lFuLzs/edit?usp=sharing)