Status and Features
Status
The latest version (built from main
) is 1.2.0.dev73+ge51e9f51.
The stable version (released on PyPI) is 1.1.0.
See the Release Notes section for a changelog.
Features
A list of supported ML frameworks (Frontends), HLS backends, and neural network architectures, including a summary table is below. Dependencies are given in the Setup page.
Frontend support:
Keras
Keras v2
QKeras
HGQ
Keras v3
HGQ2
PyTorch
ONNX
QONNX
Neural network architectures:
Fully connected NN (multilayer perceptron, MLP)
Convolutional NN (1D and 2D)
Recurrent NN (RNN, LSTM, GRU)
GarNet
Einsum and EinsumDense (Einsum)
Multi-head attention (MHA) (experimental)
HLS backends:
Vivado HLS
Intel HLS
Vitis HLS
Catapult HLS
oneAPI (experimental)
A summary of the on-going status of the hls4ml
tool is in the table below.
Frontend/Backend |
MLP |
CNN |
RNN/LSTM/GRU |
GarNet |
Einsum |
MHA |
---|---|---|---|---|---|---|
Keras v2 |
✅ |
✅ |
✅ |
✅ |
❌ |
❌ |
QKeras |
✅ |
✅ |
✅ |
✅ |
N/A |
N/A |
HGQ |
✅ |
✅ |
N/A |
N/A |
N/A |
N/A |
Keras v3 |
✅ |
✅ |
✅ |
N/A |
✅ |
❌ |
HGQ2 |
✅ |
✅ |
N/A |
N/A |
✅ |
✅ |
Torch |
✅ |
✅ |
✅ |
❌ |
✅ |
❌ |
ONNX |
✅ |
✅ |
❌ |
❌ |
❌ |
❌ |
QONNX |
✅ |
✅ |
❌ |
N/A |
N/A |
N/A |
Vivado/Vitis HLS |
✅ |
✅ |
✅ |
❌ |
✅ |
✅ |
Intel HLS |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
Catapult HLS |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
oneAPI (experimental) |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
Other feature notes:
hls4ml
is tested on the following platforms. Newer versions might work just fine, but try at your own risk.Vivado HLS 2020.1. Older versions may work, but use at your own risk.
Intel HLS versions 20.1 to 21.4, versions > 21.4 have not been tested.
Vitis HLS versions 2022.2 to 2024.1. Versions > 2024.1 are less tested.
Catapult HLS versions 2024.1_1 to 2024.2
oneAPI versions 2024.1 to 2025.0. Any future versions are known to not work.
hls4ml
supports Linux [*] and requires python >=3.10. hls4ml does not require a specific Linux distribution version and we recommend following the requirements of the HLS tool you are using.Windows and macOS are not supported. Setting up
hls4ml
on these platforms, for example using the Windows Subsystem for Linux (WSL), should be possible, but we do not provide support for such use cases.BDT support has moved to the Conifer package
Example Models
We also provide and document several example hls4ml
models in this GitHub repository, which is included as a submodule.
You can check it out by doing git submodule update --init --recursive
from the top level directory of hls4ml
.