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

Improving VitisBuild #27

Draft
wants to merge 6 commits into
base: dev
Choose a base branch
from
Draft

Conversation

bwintermann
Copy link

A lot of changes are necessary to make Multi-FPGA possible happen in VitisBuild. Since the aim is to improve this transformation in general, I'll make these changes on a separate branch so that we can all benefit from it before Multi-FPGA is fully merged.

Currently VitisBuild is a collection of string-concatinations that make certain assumptions of what the dataflow graph looks like. This very much made sense at the time because, as is officially mentioned as well, you usually want to integrate the stitched IP into your own custom design, so this step is not required for many users. However, to make it a viable tool for any user we want to be able to input an ONNX file and get a bitstream out of it. Both for Multi-FPGA and generally more complex dataflow graphs (for example multiple output heads etc.) this current flow won't work.

To fix this, I'll implement a new VitisBuild flow. One class keeps track of the configuration for a design. It can be used via it's method and avoids tedious string concatenation for it's user. The VitisLink transformation itself will be changed too. You start with an empty configuration and add components that are automatically connected via AXI streams. You pass what component you want to add, it will add it and return the new endpoint to attach new components to. This also has the benefit that measurement kernels, network communication kernels, etc. can all be included easily afterwards, without changing the entire build flow.

…ct/finn-plus into feature/vitis_build_improved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant