Skip to content

Commit

Permalink
update the project status
Browse files Browse the repository at this point in the history
  • Loading branch information
jmitrevs committed Nov 5, 2024
1 parent d422659 commit fabcf8c
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 16 deletions.
19 changes: 13 additions & 6 deletions docs/setup.rst
Original file line number Diff line number Diff line change
Expand Up @@ -43,23 +43,30 @@ version can be installed directly from ``git``:
Dependencies
============

The ``hls4ml`` library depends on a number of Python packages and external tools for synthesis and simulation. Python dependencies are automatically managed
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 <https://pypi.org/project/tensorflow/>`_ (version 2.4 and newer) and `QKeras <https://pypi.org/project/qkeras/>`_ are required by the Keras converter.
* `TensorFlow <https://pypi.org/project/tensorflow/>`_ (version 2.8 to 2.14) and `QKeras <https://pypi.org/project/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 <https://pypi.org/project/onnx/>`_ (version 1.4.0 and newer) is required by the ONNX converter.

* `PyTorch <https://pytorch.org/get-started>`_ 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.
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
* 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.

* Vitis HLS 2022.2 or newer is required for synthesis for Xilinx FPGAs using the ``Vitis`` backend.
* oneAPI 2024.1 to 2025.0 with the FPGA compiler and recent Intel/Altara Quartus for Intel/Altera FPGAs using the ``oneAPI`` backend.

* Intel Quartus 20.1 to 21.4 for the synthesis for Intel FPGAs
Catapult HLS 2024.1_1 or 2024.2 can be used to synthesize both for ASICs and FPGAs.


Quick Start
Expand Down
34 changes: 24 additions & 10 deletions docs/status.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ A list of supported ML frameworks, HLS backends, and neural network architecture
ML framework support:

* (Q)Keras
* PyTorch (limited)
* (Q)ONNX (in development)
* PyTorch
* (Q)ONNX

Neural network architectures:

Expand All @@ -32,7 +32,9 @@ HLS backends:

* Vivado HLS
* Intel HLS
* Vitis HLS (experimental)
* Vitis HLS
* Catapult HLS
* oneAPI (experimental)

A summary of the on-going status of the ``hls4ml`` tool is in the table below.

Expand All @@ -46,42 +48,54 @@ A summary of the on-going status of the ``hls4ml`` tool is in the table below.
- Vivado HLS
- Intel HLS
- Vitis HLS
- Catapult HLS
- oneAPI
* - MLP
- ``supported``
- ``limited``
- ``in development``
- ``supported``
- ``supported``
- ``supported``
- ``supported``
- ``supported``
- ``supported``
- ``experimental``
* - CNN
- ``supported``
- ``limited``
- ``in development``
- ``supported``
- ``supported``
- ``supported``
- ``supported``
- ``supported``
- ``supported``
- ``experimental``
* - RNN (LSTM)
- ``supported``
- ``supported``
- ``N/A``
- ``in development``
- ``supported``
- ``supported``
- ``N/A``
- ``supported``
- ``supported``
- ``experimental``
* - GNN (GarNet)
- ``supported``
- ``in development``
- ``N/A``
- ``N/A``
- ``N/A``
- ``N/A``
- ``N/A``
- ``N/A``


Other feature notes:

* ``hls4ml`` is tested on Linux, and supports
* Vivado HLS versions 2018.2 to 2020.1
* Intel HLS versions 20.1 to 21.4
* Vitis HLS versions 2022.2 to 2024.1
* Catapult HLS versions 2024.1_1 to 2024.2
* oneAPI versions 2024.1 to 2025.0

* Windows and macOS are not supported
* BDT support has moved to the `Conifer <https://github.com/thesps/conifer>`__ package

Expand Down

0 comments on commit fabcf8c

Please sign in to comment.