一个用于在FPGA中进行机器学习推理的软件包。我们使用高级综合语言(HLS)创建机器学习算法的固件实现。我们将传统的开源机器学习包模型转换成可配置的HLS,以便于您的使用案例!
如果您有任何关于 hls4ml 的问题、评论或想法,或者只想向我们展示您如何使用 hls4ml,请通过 discussions 标签页面联系我们。
文档和教程
更多信息请访问网页:https://fastmachinelearning.org/hls4ml/
详细的关于如何使用 hls4ml
各种功能的教程可以在 这里 找到。
安装
pip install hls4ml
要安装用于分析的额外依赖项:
pip install hls4ml[profiling]
快速入门
创建一个 HLS 项目
import hls4ml
# 从我们的示例库中获取一个keras模型
# 这将下载我们的示例模型到您的工作目录,并返回一个示例配置文件
config = hls4ml.utils.fetch_example_model('KERAS_3layer.json')
# 您可以打印配置以查看一些默认参数
print(config)
# 将其转换为 hls 项目
hls_model = hls4ml.converters.keras_to_hls(config)
# 如果您想探索更多,可以打印出完整的示例模型列表
hls4ml.utils.fetch_example_list()
使用 Xilinx Vivado HLS 构建项目(从 这里 下载并安装后)
注意:目前不支持 Vitis HLS。建议使用 2018.2 至 2020.1 版本的 Vivado HLS。
# 使用 Vivado HLS 综合模型
# 这可能需要几分钟
hls_model.build()
# 如果需要,可以打印出报告
hls4ml.report.read_vivado_report('my-hls-test')
引用
如果在您的出版物中使用了此软件,请引用该软件
@software{fastml_hls4ml,
author = {{FastML Team}},
title = {fastmachinelearning/hls4ml},
year = 2023,
publisher = {Zenodo},
version = {v0.8.1},
doi = {10.5281/zenodo.1201549},
url = {https://github.com/fastmachinelearning/hls4ml}
}
和第一篇出版物:
@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"
}
此外,如果您使用了在后续论文中开发的特定功能,请引用这些论文。例如,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"
}
二进制/三进制网络:
@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"
}
致谢
如果您从参与我们的社区中受益,我们希望您在任何出版物中感谢 Fast Machine Learning 协作,以及特别帮助您的个人。 请使用以下文本进行致谢:
我们承认 Fast Machine Learning 集体是一个多领域专家和合作者的开放社区。这个社区,特别是<个人姓名>,对本项目的发展很重要。
资金
我们衷心感谢美国国家科学基金会(NSF)数据革命(HDR)研究所 加速数据驱动发现的AI算法(A3D3) 在合作协议 No. PHY-2117997 下的过去和现有支持,美国能源部(DOE)科学办公室,高级科学计算研究办公室的实时数据减少的极端边缘的联合设计项目(XDR)(DE-FOA-0002501),DOE科学办公室,高能物理早期职业研究计划 (DE-SC0021187, DE-0000247070),以及欧盟地平线2020研究和创新计划下的欧洲研究理事会(ERC)(Grant No. 772369) 的支持。