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
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
Metadata Files
README.md
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
- Repositories: 1
- Profile: https://github.com/nycu-pcs-lab
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
- actions/checkout v3 composite
- ad-m/github-push-action master composite
- jmduarte/sphinx-action main composite
- actions/checkout v3 composite
- pre-commit/action v3.0.0 composite
- actions/checkout v3 composite
- actions/upload-artifact v3 composite
- pypa/gh-action-pypi-publish release/v1 composite
- actions/checkout v3 composite
- actions/upload-artifact v3 composite
- jmduarte/sphinx-action main composite
- actions/checkout v3 composite
- continuumio/miniconda latest build
- 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