hls4ml-lfads

hls4ml for LFADs

https://github.com/nycu-pcs-lab/hls4ml-lfads

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.8%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

hls4ml for LFADs

Basic Info
  • Host: GitHub
  • Owner: nycu-pcs-lab
  • License: apache-2.0
  • Language: C++
  • Default Branch: version_240917
  • Size: 67.4 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 3
  • Releases: 0
Created over 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing License Citation

README.md

hls4ml

DOI License Documentation Status PyPI version Downloads conda-forge

A package for machine learning inference in FPGAs. We create firmware implementations of machine learning algorithms using high level synthesis language (HLS). We translate traditional open-source machine learning package models into HLS that can be configured for your use-case!

If you have any questions, comments, or ideas regarding hls4ml or just want to show us how you use hls4ml, don't hesitate to reach us through the discussions tab.

Documentation & Tutorial

For more information visit the webpage: https://fastmachinelearning.org/hls4ml/

Detailed tutorials on how to use hls4ml's various functionalities can be found here.

Installation

bash pip install hls4ml

To install the extra dependencies for profiling:

bash pip install hls4ml[profiling]

Getting Started

Creating an HLS project

```Python 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.fetchexamplemodel('KERAS_3layer.json')

You can print the configuration to see some default parameters

print(config)

Convert it to a hls project

hlsmodel = hls4ml.converters.kerasto_hls(config)

Print full list of example models if you want to explore more

hls4ml.utils.fetchexamplelist() ```

Building a project with Xilinx Vivado HLS (after downloading and installing from here)

Note: Vitis HLS is not yet supported. Vivado HLS versions between 2018.2 and 2020.1 are recommended.

```Python

Use Vivado HLS to synthesize the model

This might take several minutes

hls_model.build()

Print out the report if you want

hls4ml.report.readvivadoreport('my-hls-test') ```

Citation

If you use this software in a publication, please cite the software bibtex @software{fastml_hls4ml, author = {{FastML Team}}, title = {fastmachinelearning/hls4ml}, year = 2023, publisher = {Zenodo}, version = {v0.7.0}, doi = {10.5281/zenodo.1201549}, url = {https://github.com/fastmachinelearning/hls4ml} } and first publication: bibtex @article{Duarte:2018ite, author = "Duarte, Javier and others", title = "{Fast inference of deep neural networks in FPGAs for particle physics}", eprint = "1804.06913", archivePrefix = "arXiv", primaryClass = "physics.ins-det", reportNumber = "FERMILAB-PUB-18-089-E", doi = "10.1088/1748-0221/13/07/P07027", journal = "JINST", volume = "13", number = "07", pages = "P07027", year = "2018" } Additionally, if you use specific features developed in later papers, please cite those as well. For example, CNNs: bibtex @article{Aarrestad:2021zos, author = "Aarrestad, Thea and others", title = "{Fast convolutional neural networks on FPGAs with hls4ml}", eprint = "2101.05108", archivePrefix = "arXiv", primaryClass = "cs.LG", reportNumber = "FERMILAB-PUB-21-130-SCD", doi = "10.1088/2632-2153/ac0ea1", journal = "Mach. Learn. Sci. Tech.", volume = "2", number = "4", pages = "045015", year = "2021" } @article{Ghielmetti:2022ndm, author = "Ghielmetti, Nicol\`{o} and others", title = "{Real-time semantic segmentation on FPGAs for autonomous vehicles with hls4ml}", eprint = "2205.07690", archivePrefix = "arXiv", primaryClass = "cs.CV", reportNumber = "FERMILAB-PUB-22-435-PPD", doi = "10.1088/2632-2153/ac9cb5", journal ="Mach. Learn. Sci. Tech.", year = "2022" } binary/ternary networks: bibtex @article{Loncar:2020hqp, author = "Ngadiuba, Jennifer and others", title = "{Compressing deep neural networks on FPGAs to binary and ternary precision with HLS4ML}", eprint = "2003.06308", archivePrefix = "arXiv", primaryClass = "cs.LG", reportNumber = "FERMILAB-PUB-20-167-PPD-SCD", doi = "10.1088/2632-2153/aba042", journal = "Mach. Learn. Sci. Tech.", volume = "2", pages = "015001", year = "2021" }

Owner

  • Name: NYCU Parallel Computing System Lab
  • Login: nycu-pcs-lab
  • Kind: organization
  • Location: Taiwan

Our research enables efficient processing of emerging applications on parallel computing systems.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "Please cite the following works when using this software."
type: software
authors:
- given-names: "FastML Team"
title: "hls4ml"
version: "v0.7.0"
doi: 10.5281/zenodo.1201549
repository-code: "https://github.com/fastmachinelearning/hls4ml"
url: "https://fastmachinelearning.org/hls4ml"
keywords:
  - python
  - machine-learning
  - FPGA
  - physics
  - tensorflow
  - pytorch
  - onnx
  - qonnx
license: "Apache-2.0"
abstract: |
  hls4ml is an open-source software-hardware codesign workflow
  to interpret and translate machine learning algorithms for
  implementations in hardware, including FPGAs and ASICs.
references:
  - type: article
    title: "Fast inference of deep neural networks on FPGAs with hls4ml"
    authors:
    - family-names: "Duarte"
      given-names: "Javier"
    - family-names: "Han"
      given-names: "Song"
    - family-names: "Harris"
      given-names: "Philip"
    - family-names: "Jindariani"
      given-names: "Sergo"
    - family-names: "Kreinar"
      given-names: "Edward"
    - family-names: "Kreis"
      given-names: "Benjamin"
    - family-names: "Ngadiuba"
      given-names: "Jennifer"
    - family-names: "Pierini"
      given-names: "Maurizio"
    - family-names: "Rivera"
      given-names: "Ryan"
    - family-names: "Tran"
      given-names: "Nhan"
    - family-names: "Wu"
      given-names: "Zhenbin"
    journal: "JINST"
    volume: "13"
    start: "P07027"
    doi: "10.1088/1748-0221/13/07/P07027"
    year: "2018"
    number: "07"

GitHub Events

Total
  • Push event: 1
  • Pull request event: 1
  • Create event: 1
Last Year
  • Push event: 1
  • Pull request event: 1
  • Create event: 1

Dependencies

.github/workflows/build-sphinx.yml actions
  • actions/checkout v3 composite
  • ad-m/github-push-action master composite
  • jmduarte/sphinx-action main composite
.github/workflows/pre-commit.yml actions
  • actions/checkout v3 composite
  • pre-commit/action v3.0.0 composite
.github/workflows/pypi-publish.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/test-sphinx.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
  • jmduarte/sphinx-action main composite
.github/workflows/update-branch-on-pr.yml actions
  • actions/checkout v3 composite
test/docker/Dockerfile docker
  • continuumio/miniconda latest build
docs/requirements.txt pypi
  • h5py *
  • matplotlib *
  • numpy *
  • onnx >=1.4.0
  • pandas *
  • pyyaml *
  • seaborn *
  • setuptools_scm >=5
  • six *
  • sphinx >=3.2.1
  • sphinx_contributors *
  • sphinx_github_changelog *
  • sphinx_rtd_theme *
  • tensorflow *
  • toposort >=1.5.0
pyproject.toml pypi
setup.py pypi