fastmachinelearning / hls4ml

Machine learning on FPGAs using HLS
https://fastmachinelearning.org/hls4ml
Apache License 2.0
1.17k stars 387 forks source link

Stage initial set of changes for the Catapult backend #956

Closed dgburnette closed 2 months ago

dgburnette commented 5 months ago

A# Description This is the initial merge of a Catapult backend for HLS4ML. This merge includes all of the python changes and the top-level template files but not the nnet_utils/* files at this point in time.

:memo: Please include a summary of the change.

  • Please also include relevant motivation and context.
  • List any dependencies that are required for this change.

Type of change

For a new feature or function, please create an issue first to discuss it with us before submitting a pull request.

Note: Please delete options that are not relevant.

Tests

:memo: Please describe the tests that you ran to verify your changes.

  • Provide instructions so we can reproduce.
  • Please also list any relevant details for your test configuration.

Test Configuration:

Checklist

jmitrevs commented 5 months ago

Based on our meeting, we have the following action items:

  1. In backends/catapult/passes, remove any passes that are not used.
  2. Also in backends/catapult/passes, note passes that are used but identical with what is used for Vivado. We will figure out how we want to handle those.
  3. Remove any build scripts or parts of build scripts that are not used. Remove references to Vivado.
  4. Put ac_types and other submodules in hls4ml/template/cataplult. (I think you can just do git submodule add in that directory)
  5. Add migrated nnet_utils to the template/catapult/nnet_utils. This includes some common utils and layer-specific utils. Do not include untested layers.
  6. All the layers that are included in nnet_utils should have corresponding tests in test/pytest. Generally this could be done by just enabling the catapult backend on already existing tests instead of writing new tests.