From fabcf8c97295b34a2662dfa2f4a1602ff889f43c Mon Sep 17 00:00:00 2001 From: Jovan Mitrevski Date: Mon, 4 Nov 2024 20:15:38 -0600 Subject: [PATCH] update the project status --- docs/setup.rst | 19 +++++++++++++------ docs/status.rst | 34 ++++++++++++++++++++++++---------- 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/docs/setup.rst b/docs/setup.rst index a735281c3f..d083e07c71 100644 --- a/docs/setup.rst +++ b/docs/setup.rst @@ -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 `_ (version 2.4 and newer) and `QKeras `_ are required by the Keras converter. +* `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. +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 diff --git a/docs/status.rst b/docs/status.rst index 4ff4d33282..5d3f3591f2 100644 --- a/docs/status.rst +++ b/docs/status.rst @@ -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: @@ -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. @@ -46,35 +48,44 @@ 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: @@ -82,6 +93,9 @@ Other feature notes: * 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 `__ package