build 前需自行下载安装 Vivado HLS 等厂商综合工具,否则无法综合;示例模型通过 fetch_example_model 联网下载到当前工作目录;综合可能耗时数分钟,需耐心等待。
pip install hls4ml
pip install hls4ml[profiling]README 未说明具体 FPGA 型号或资源要求;综合需本地安装 Xilinx Vivado HLS 或 Vitis HLS 等厂商工具,README 未提及 CPU/GPU 或显存要求。
把 Keras 等框架的模型转成 HLS 固件,在 FPGA 上做超低延迟推理
把 Keras、PyTorch、ONNX 训练好的神经网络模型自动转成 FPGA 可综合的 HLS 代码,方便在硬件上做低延迟推理。
核心能力
- 将开源 ML 框架模型转换为可配置的 HLS 工程
- 支持 Vivado、Vitis、Intel HLS、Catapult 等多种后端
- 提供示例模型下载与配置打印,快速上手转换
- 支持 CNN、二值/三值网络、SNN 等模型类型
- 可读取 Vivado 综合报告查看资源与时序
容易踩的坑
- v1.3.0iris 1.3.0最新正式版2026-03-20 · 2026-03-20 14:59 UTC
The major changes compared to v1.2.0 are:
- AI Engine (AIE) Backend support as external plugin by @dimdano in https://github.com/fastmachinelearning/hls4ml/pull/1390
- ☢️ Libero backend for rad-hard PolarFire line of FPGAs by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/1240
- Einsum and EinsumDense for oneAPI by @laurilaatu in https://github.com/fastmachinelearning/hls4ml/pull/1424
- vivado/vitis support sample broadcasting merge ops by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/1426
- pytest based synthesis tests by @marco66colombo in https://github.com/fastmachinelearning/hls4ml/pull/1257
The full list of changes is:
- Bump version to 1.2.0 and switch to ruff for formatting by @JanFSchulte in https://github.com/fastmachinelearning/hls4ml/pull/1395
- AI Engine (AIE) Backend support as external plugin by @dimdano in https://github.com/fastmachinelearning/hls4ml/pull/1390
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/fastmachinelearning/hls4ml/pull/1397
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/fastmachinelearning/hls4ml/pull/1399
- Update funding section in README.md by @bo3z in https://github.com/fastmachinelearning/hls4ml/pull/1403
- Add NGT logo to README by @jmduarte in https://github.com/fastmachinelearning/hls4ml/pull/1404
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/fastmachinelearning/hls4ml/pull/1402
- Manually increment checkout to version v6 by @JanFSchulte in https://github.com/fastmachinelearning/hls4ml/pull/1405
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/fastmachinelearning/hls4ml/pull/1408
- Backend predict hook by @dimdano in https://github.com/fastmachinelearning/hls4ml/pull/1409
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/fastmachinelearning/hls4ml/pull/1411
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/fastmachinelearning/hls4ml/pull/1414
- pytest based synthesis tests by @marco66colombo in https://github.com/fastmachinelearning/hls4ml/pull/1257
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/fastmachinelearning/hls4ml/pull/1416
- Remove parametrized fixtures from pytests for pytest 9 compatability by @JanFSchulte in https://github.com/fastmachinelearning/hls4ml/pull/1417
- Bump upload-artifact version by @JanFSchulte in https://github.com/fastmachinelearning/hls4ml/pull/1413
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/fastmachinelearning/hls4ml/pull/1420
- allow partial config def by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/1419
- Add keras3 environment in tests by @marco66colombo in https://github.com/fastmachinelearning/hls4ml/pull/1412
- ☢️ Libero backend for rad-hard PolarFire line of FPGAs by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/1240
- minor fixes to CONTRIBUTING.md by @jmitrevs in https://github.com/fastmachinelearning/hls4ml/pull/1423
- Einsum and EinsumDense for oneAPI by @laurilaatu in https://github.com/fastmachinelearning/hls4ml/pull/1424
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/fastmachinelearning/hls4ml/pull/1425
- Add LHC trigger use case context to README by @siddardhadesu in https://github.com/fastmachinelearning/hls4ml/pull/1418
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/fastmachinelearning/hls4ml/pull/1430
- hgq2 homogeneous quant fix by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/1427
- Da custom layer by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/1429
- Fix Keras v3 model conversion in numerical profiling by @Abubakar-rashid in https://github.com/fastmachinelearning/hls4ml/pull/1421
- [pre-commit.ci] pre-commit autoupdate b
- v1.2.0hyacinth 1.2.02025-11-03 · 2025-11-03 20:19 UTC
查看更新说明
The major changes compared to v1.1.0 are:
- Added a front end for Keras v3 by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/1116
- Distributed Arithmetic strategy implementations for Dense, Conv1/2D, and EinsumDense, and HGQ2 suport by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/1191
- A PyTorch extension API by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/1247
- A new infrastructure for saving/loading hls4ml models by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/1158
- Support for splitting the model graph into a multi graph to reduce HLS synthesis time by @dimdano in https://github.com/fastmachinelearning/hls4ml/pull/1174
- Bidirectional RNN layer support for Keras frontend and Vitis backend by @enlupi in https://github.com/fastmachinelearning/hls4ml/pull/1310
The full list of changes is:
- Update docs for v1.1.0 by @JanFSchulte in https://github.com/fastmachinelearning/hls4ml/pull/1234
- update release version in README by @JanFSchulte in https://github.com/fastmachinelearning/hls4ml/pull/1235
- Fix year/version in
READMEandCITATION.cffby @jmduarte in https://github.com/fastmachinelearning/hls4ml/pull/1236 - Simple PyTorch extension API by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/1247
- Add support for TimeDistributed layer by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/1177
- Remove calls to remove_node(..., rewire) as the parameter was deprecated by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/1250
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/fastmachinelearning/hls4ml/pull/1251
- Use unique name for hls4ml layer in pytorch extension api test by @JanFSchulte in https://github.com/fastmachinelearning/hls4ml/pull/1255
- Fix logic in oneAPI transorm types to not convert a variable twice by @jmitrevs in https://github.com/fastmachinelearning/hls4ml/pull/1253
- oneAPI backend update: report by @enlupi in https://github.com/fastmachinelearning/hls4ml/pull/1222
- Fix handling mutiple outputs in onnx by @jmitrevs in https://github.com/fastmachinelearning/hls4ml/pull/1263
- docs: Update Quickstart example to use Vitis backend by @nikiburggraf in https://github.com/fastmachinelearning/hls4ml/pull/1258
- Control where TB writes output (stdout, file, or both) by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/1249
- pyupgrade target version update by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/1274
- Add accumulator precision when plotting the model information by @GiuseppeDiGuglielmo in https://github.com/fastmachinelearning/hls4ml/pull/1282
- Add a vertical line for x = 1 = 2^0 in the box plots by @GiuseppeDiGuglielmo in https://github.com/fastmachinelearning/hls4ml/pull/1281
- Fix concat3d when axis=3 /-1 by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/1285
- Infrastructure for saving/loading hls4ml models by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/1158
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/fastmachinelearning/hls4ml/pull/1301
- Support cloning up to 7 times by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/1299
- Keras v3 Support by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/1116
- Round inputs for dense unrolled RNN tests to make pytests more stable by @JanFSchulte in https://github.com/fastmachinelearning/hls4ml/pull/1284
- Change default part to agilex 7, turn of hyper-optimized handshaking, pass clock period by @jmitrevs in https://github.com/fastmachinelearning/hls4ml/pull/1304
- Add support for einsum operation to pytorch parser (requires 1116) by @JanFSchulte in https://github.com/fastmachinelearning/hls4ml/pull/1273
- Fix SeLU lambda precision (Follow-up to #1287) by @valerioedu in https://github.com/fastmachinelearning/hls4ml/pull/1298
- Fix parsing ein
- v1.1.0gladiolus 1.1.02025-03-17 · 2025-03-17 16:51 UTC
查看更新说明
What's Changed
The major changes compared to v1.0.0 are:
- A new FIFO depth optimizer for the Vitis backend by @steltze in https://github.com/fastmachinelearning/hls4ml/pull/1037
- Expansion of the oneAPI backend by adding depthwise convolution and RNN State and Activation Quantizers by @laurilaatu in https://github.com/fastmachinelearning/hls4ml/pull/1131 and https://github.com/fastmachinelearning/hls4ml/pull/1195
- A new general transpose implementation for vivado/vitis by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/1124, adapted for oneAPI by @jmitrevs in https://github.com/fastmachinelearning/hls4ml/pull/1165
- New depthwise 1D and 2D implementations for the resource strategy for io_stream by @steltze in https://github.com/fastmachinelearning/hls4ml/pull/1079
The full list of changes is:
- Don't overwrite already set accum_t, fix pointwise output resolution by @jmitrevs in https://github.com/fastmachinelearning/hls4ml/pull/1146
- Split hgq tests and isolate qkeras tests to make tests run in under 1h by @JanFSchulte in https://github.com/fastmachinelearning/hls4ml/pull/1153
- Depthwise convolution for oneAPI by @laurilaatu in https://github.com/fastmachinelearning/hls4ml/pull/1131
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/fastmachinelearning/hls4ml/pull/1159
- Fix Vivado Accelerator missing partition factor variable by @bo3z in https://github.com/fastmachinelearning/hls4ml/pull/1160
- Bug fixes for channel-last conversions in pytorch by @JanFSchulte in https://github.com/fastmachinelearning/hls4ml/pull/1161
- Support Constant nodes in pytorch parser by @JanFSchulte in https://github.com/fastmachinelearning/hls4ml/pull/1123
- oneAPI 2025.0 include changes by @laurilaatu in https://github.com/fastmachinelearning/hls4ml/pull/1149
- Update Torch profiler by @jicampos in https://github.com/fastmachinelearning/hls4ml/pull/1156
- Add general transpose for vivado/vitis by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/1124
- remove np.float_ (deprecated in numpy>=2.0) by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/1172
- add check for no inputs in insert_node by @jmitrevs in https://github.com/fastmachinelearning/hls4ml/pull/1170
- added check for conv implementation by @jicampos in https://github.com/fastmachinelearning/hls4ml/pull/1155
- Lazy converter imports and migrate to pyproject.toml by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/1094
- Fix pytorch upsample parsing by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/1186
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/fastmachinelearning/hls4ml/pull/1182
- Fixes for quantised RNNs in data type inconsistencies by @bo3z in https://github.com/fastmachinelearning/hls4ml/pull/1171
- Support multiple outputs in pytorch parser by @JanFSchulte in https://github.com/fastmachinelearning/hls4ml/pull/1151
- general transpose for oneAPI by @jmitrevs in https://github.com/fastmachinelearning/hls4ml/pull/1165
- add option to not write tar.gz for oneAPI and Quartus by @jmitrevs in https://github.com/fastmachinelearning/hls4ml/pull/1189
- Fix paths to weights in build_lib.sh for VivadoAccelator backend by @JanFSchulte in https://github.com/fastmachinelearning/hls4ml/pull/1198
- Fix link to FAQ in README.md by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/1201
- Update pull request template by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/1202
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/fastmachinelearning/hls4ml/pull/1199
- oneAPI RNN State and Activation Quantizers by @laurilaatu in https://github.com/fastmachinelearning/hls4ml/pull/1195
- put
code_gen.hin custom namespace by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/1104 - Fix typo in pyproject.toml by @JanFSchulte in https://github.com/fastmachine
- v1.0.0foxglove 1.0.02024-12-09 · 2024-12-09 22:47 UTC
查看更新说明
What's Changed
hls4ml v1.0.0 "foxglove" introduces several significant improvements:
- A new QONNX frontend by @jmitrevs introduced in https://github.com/fastmachinelearning/hls4ml/pull/979
- The ability for hls4ml to automatically infer the precision of data types by @vloncar introduced in https://github.com/fastmachinelearning/hls4ml/pull/855
- The addition of an experimental backend for Intel oneAPI by @jmitrevs introduced in https://github.com/fastmachinelearning/hls4ml/pull/955
- The addition of a backend for Siemens Catapult by @dgburnette in https://github.com/fastmachinelearning/hls4ml/pull/956
- Added support for HGQ proxy models by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/914
- An API for hardware-aware optimization by @bo3z in https://github.com/fastmachinelearning/hls4ml/pull/768 and https://github.com/fastmachinelearning/hls4ml/pull/809
The full list of other improvements and fixes is:
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/fastmachinelearning/hls4ml/pull/949
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/fastmachinelearning/hls4ml/pull/953
- hls4ml Optimization API [Part 1] by @bo3z in https://github.com/fastmachinelearning/hls4ml/pull/768
- QKeras support for RNN layers by @laurilaatu in https://github.com/fastmachinelearning/hls4ml/pull/856
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/fastmachinelearning/hls4ml/pull/962
- Try to fix sphinx problem by restricting tensorflow-model-optimization by @jmitrevs in https://github.com/fastmachinelearning/hls4ml/pull/967
- Bump pre-commit/action from 3.0.0 to 3.0.1 by @dependabot in https://github.com/fastmachinelearning/hls4ml/pull/968
- Change fractional (and others) to be a property, move quantizers by @jmitrevs in https://github.com/fastmachinelearning/hls4ml/pull/964
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/fastmachinelearning/hls4ml/pull/969
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/fastmachinelearning/hls4ml/pull/971
- vitis backend tarball fix by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/972
- remove special vitis version of nnet_dense_resource.h by @jmitrevs in https://github.com/fastmachinelearning/hls4ml/pull/975
- Allow Vitis synthesis tests by @jmduarte in https://github.com/fastmachinelearning/hls4ml/pull/927
- Fix cleanup of synthesis tests (leftover from 927) by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/989
- Fix sphinx by pinning tensorflow<=2.15 by @jmduarte in https://github.com/fastmachinelearning/hls4ml/pull/992
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/fastmachinelearning/hls4ml/pull/984
- add clock uncertainty configuration option by @jmitrevs in https://github.com/fastmachinelearning/hls4ml/pull/870
- Stage initial set of changes for the Catapult backend by @dgburnette in https://github.com/fastmachinelearning/hls4ml/pull/956
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/fastmachinelearning/hls4ml/pull/999
- fix unwanted tested file change in #956 by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/1000
- Fix SR backend synth missing variables by @bo3z in https://github.com/fastmachinelearning/hls4ml/pull/993
- Upsampling support for PyTorch models by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/977
- Split fpga_types into separate files by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/998
- Support negative_slope in quantized_relu by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/987
- Group more tests per YAML to reduce the number of envs created by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/996
- Automatic precision inference by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/855
- Remo
- v0.8.1edelweiss 0.8.12023-12-19 · 2023-12-19 21:00 UTC
查看更新说明
What's Changed
- Fix for #905 by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/906
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/fastmachinelearning/hls4ml/pull/921
- Fix logos in README.md by @vloncar in https://github.com/fastmachinelearning/hls4ml/pull/930
- Fix writer precision when fp bits >= 14 by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/909
- Let repack_stream optimizer inheirt original precision by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/907
- Update A3D3 grant no. by @schsu in https://github.com/fastmachinelearning/hls4ml/pull/941
- Add precision inherition for when generating stream clone by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/911
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/fastmachinelearning/hls4ml/pull/942
- Quartus multi out with stream fix by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/908
- Fix profiling for Keras LSTM layers. by @Landay7 in https://github.com/fastmachinelearning/hls4ml/pull/940
- Fix for multiple inputs that may get out of order by @jmduarte in https://github.com/fastmachinelearning/hls4ml/pull/937
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/fastmachinelearning/hls4ml/pull/944
- Bump actions/upload-artifact from 3 to 4 by @dependabot in https://github.com/fastmachinelearning/hls4ml/pull/943
- better repalce_node fn by @calad0i in https://github.com/fastmachinelearning/hls4ml/pull/934
- bump to 0.8.1 by @jmitrevs in https://github.com/fastmachinelearning/hls4ml/pull/945
New Contributors
- @schsu made their first contribution in https://github.com/fastmachinelearning/hls4ml/pull/941
- @Landay7 made their first contribution in https://github.com/fastmachinelearning/hls4ml/pull/940
Full Changelog: https://github.com/fastmachinelearning/hls4ml/compare/v0.8.0...v0.8.1
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
A package for machine learning inference in FPGAs. We create firmware implementations of machine learning algorithms using high-level synthesis (HLS). We translate traditional open-source machine learning package models into HLS that can be configured for your use-case!
hls4ml is designed for ultra-low-latency inference on FPGAs. While it has strong roots in high-energy physics applications (e.g., L1 trigger systems at the CERN Large Hadron Collider), it has also been adopted across diverse scientific and industrial domains. Example use cases include control systems for quantum computing, feedback loops in nuclear fusion, low-power environmental monitoring on satellites, and biomedical signal processing (e.g., arrhythmia classification).
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 out to us through the discussions tab.
Documentation & Tutorial
For more information visit the webpage: https://fastmachinelearning.org/hls4ml/.
For introductory material on FPGAs, HLS and ML inferences using hls4ml, check out the video.
Detailed tutorials on how to use hls4ml's various functionalities can be found here.
Installation
pip install hls4ml
To install the extra dependencies for profiling:
pip install hls4ml[profiling]
Getting Started
Creating an HLS project
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 the configuration to see some default parameters
print(config)
# Convert it to an HLS project
hls_model = hls4ml.converters.keras_v2_to_hls(config)
# Print full list of example models if you want to explore more
hls4ml.utils.fetch_example_list()
Building a project
We will build the project using Xilinx Vivado HLS, which can be downloaded and installed from here. Alongside Vivado HLS, hls4ml also supports Vitis HLS, Intel HLS, Catapult HLS and Altera HLS IP Gen. The target backend can be changed using the backend argument when building 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')
FAQ
The list of frequently asked questions and common HLS synthesis issues can be found here.
Citation
If you use this software in a publication, please cite the software
@software{fastml_hls4ml,
author = {{FastML Team}},
title = {fastmachinelearning/hls4ml},
year = 2026,
publisher = {Zenodo},
version = {v1.3.0},
doi = {10.5281/zenodo.1201549},
url = {https://github.com/fastmachinelearning/hls4ml}
}
the first publication:
@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"
}
and the latest overview paper:
@article{Schulte:2025mai,
author = "Schulte, Jan-Frederik and others",
title = "{hls4ml: A Flexible, Open-Source Platform for Deep Learning Acceleration on Reconfigurable Hardware}",
eprint = "2512.01463",
archivePrefix = "arXiv",
primaryClass = "cs.AR",
reportNumber = "FERMILAB-PUB-25-0890-CSAID-ETD-PPD",
year = "2026",
doi = "10.1145/3801979",
journal = "ACM Trans. Reconfigurable Technol. Syst.",
volume = "19",
pages = "19",
}
Additionally, if you use specific features developed in later papers, please cite those as well. For example, CNNs:
@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"
}
Distributed arithmetic:
@misc{Sun:2025,
title={da4ml: Distributed Arithmetic for Real-time Neural Networks on FPGAs},
author={Chang Sun and others},
year={2025},
eprint={2507.04535},
archivePrefix={arXiv},
primaryClass={cs.AR},
url={https://arxiv.org/abs/2507.04535},
}
binary/ternary networks:
@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"
}
Spiking Neural Networks (SNNs):
@misc{dillon2026spikingneuralnetworkinference,
title={Spiking Neural Network inference on FPGAs with hls4ml},
author={Barry M. Dillon},
year={2026},
eprint={2606.10008},
archivePrefix={arXiv},
primaryClass={cs.NE},
url={https://arxiv.org/abs/2606.10008},
}
Acknowledgments
If you benefited from participating in our community, we ask that you please acknowledge the Fast Machine Learning collaboration and particular individuals who helped you in any publications. Please use the following text for this acknowledgment:
We acknowledge the Fast Machine Learning collective as an open community of multi-domain experts and collaborators. This community and <names of individuals>, in particular, were important for the development of this project.
Funding
We gratefully acknowledge previous and current support from the U.S. National Science Foundation (NSF) Harnessing the Data Revolution (HDR) Institute for Accelerating AI Algorithms for Data Driven Discovery (A3D3) under Cooperative Agreement No. PHY-2117997, U.S. Department of Energy (DOE) Office of Science, Office of Advanced Scientific Computing Research under the Real‐time Data Reduction Codesign at the Extreme Edge for Science (XDR) Project (DE-FOA-0002501), DOE Office of Science, Office of High Energy Physics Early Career Research Program (DE-SC0021187, DE-0000247070), the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation program (Grant No. 772369 and 966696), and the Eric & Wendy Schmidt Fund for Strategic Innovation through the CERN Next Generation Triggers project under grant agreement number SIF-2023-004.