Setup and Quick Start

Getting started with hls4ml is very easy. There are several installation options available and once installed, it takes only a few lines of code to run your first synthesis.

Installation

The latest release of hls4ml can be installed with pip:

pip install hls4ml

If you want to use our profiling toolbox, you might need to install extra dependencies:

pip install hls4ml[profiling]

hls4ml is also available as a conda package in the conda-forge repository. To install, run:

Warning

Version of hls4ml available on conda-forge is outdated, we recommend installing with pip to get the latest version.

conda install -c conda-forge hls4ml

Development version

hls4ml is rapidly evolving and many experimental features and bugfixes are available on the development branch. Development version can be installed directly from git:

pip install git+https://github.com/fastmachinelearning/hls4ml@main

Dependencies

The hls4ml library requires python 3.10 or later, and depends on a number of Python packages and external tools for synthesis and simulation. Python dependencies are automatically managed by pip or conda.

  • TensorFlow (version 2.8 to 2.14) and QKeras are required by the Keras converter. One may want to install newer versions of QKeras from GitHub. Newer versions of TensorFlow can be used, but QKeras and hl4ml do not currently support Keras v3.

  • ONNX (version 1.4.0 and newer) is required by the ONNX converter.

  • PyTorch package is optional. If not installed, the PyTorch converter will not be available.

Running C simulation from Python requires a C++11-compatible compiler. On Linux, a GCC C++ compiler g++ is required. Any version from a recent Linux should work. On MacOS, the clang-based g++ is enough. For the oneAPI backend, one must have oneAPI installed, along with the FPGA compiler, to run C/SYCL simulations.

To run FPGA synthesis, installation of following tools is required:

  • Xilinx Vivado HLS 2018.2 to 2020.1 for synthesis for Xilinx FPGAs using the Vivado backend.

  • Vitis HLS 2022.2 or newer is required for synthesis for Xilinx FPGAs using the Vitis backend.

  • Intel Quartus 20.1 to 21.4 for the synthesis for Intel/Altera FPGAs using the Quartus backend.

  • oneAPI 2024.1 to 2025.0 with the FPGA compiler and recent Intel/Altera Quartus for Intel/Altera FPGAs using the oneAPI backend.

Catapult HLS 2024.1_1 or 2024.2 can be used to synthesize both for ASICs and FPGAs.

Quick Start

For basic concepts to understand the tool, please visit the Concepts chapter. Here we give line-by-line instructions to demonstrate the general workflow.

import hls4ml

# Fetch a keras model from our example repository
# This will download our example model to your working directory and return an example configuration file
config = hls4ml.utils.fetch_example_model('KERAS_3layer.json')

# You can print it to see some default parameters
print(config)

# Convert it to a hls project
hls_model = hls4ml.converters.keras_to_hls(config)

# Print full list of example model if you want to explore more
hls4ml.utils.fetch_example_list()

After that, you can use Vivado HLS to synthesize the model:

# Use Vivado HLS to synthesize the model
# This might take several minutes
hls_model.build()

# Print out the report if you want
hls4ml.report.read_vivado_report('my-hls-test')

Done! You’ve built your first project using hls4ml! To learn more about our various API functionalities, check out our tutorials here.

If you want to configure your model further, check out our Configuration page.

Existing examples

  • Training codes and examples of resources needed to train the models can be found in the tutorial.

  • Examples of model files and weights can be found in example_models directory.

Uninstalling

To uninstall hls4ml:

pip uninstall hls4ml

If installed with conda, remove the package with:

conda remove hls4ml