AI Engine (AIE) Backend support as external plugin #1390
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR introduces a generic external backend and writer plugin system for hls4ml. The first concrete implementation is support for the AMD AI Engine (AIE), provided through a separate plugin package, aie4ml (to be published soon). The changes to hls4ml itself are minimal, as the main AIE functionality, including the AIEBackend and AIEWriter, lives in the companion repository https://github.com/dimdano/aie4ml .
Unlike the existing FPGA backends, the AIE backend does not rely primarily on HLS flows. However, it still benefits from
hls4ml
’s common infrastructure (model parsing, quantisation, graph optimisation, etc.), and may also support deploying subgraphs of a model to HLS, complementing the AIE execution through the PL.The backend is discovered automatically through the
hls4ml.backends
entry-point group (or via theHLS4ML_BACKEND_PLUGINS
environment variable), so onceaie4ml
is installed,"AIE"
appears inhls4ml.backends.get_available_backends()
and can be selected just like built-in toolflows.A few notes on
aie4ml
aie4ml
produces ready-to-compile AMD AIE projects, which can be compiled directly with AMD Vitis.aie4ml
tool is that such layers can be very large, while compilation/synthesis times are much shorter than traditional FPGA HLS flows.aie4ml
automatically scales designs across the AIE array and can produce optimized implementations that often reach close to theoretical peak performance. This enables high throughput, especially for large models.pip
and maintained independently of the mainhls4ml
repo. For details on supported features, current limitations, and usage instructions, please refer directly to theaie4ml
repository.Authored by: @dimdano (
aie4ml
)Type of change
Tests
Verified that
get_available_backends()
lists "AIE" whenaie4ml
is installed.Checklist
pre-commit
on the files I edited or added.