qkeras
finn
qkeras | finn | |
---|---|---|
3 | 4 | |
522 | 666 | |
1.1% | 3.2% | |
6.6 | 9.7 | |
about 2 months ago | 2 days ago | |
Python | Python | |
Apache License 2.0 | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
qkeras
-
How to build FPGA-based ML accelerator?
I would check out hls4ml. It's an open source project made by/for people at CERN to convert neural networks created in Python using QKeras (a quantization extension of Keras) into HLS, with Vivado HLS being the most well supported. There are some caveats though, and a fellow student and I have had trouble getting the generated HLS to match the Keras model and be feasible to synthesize, but it seems to work well for smaller neural networks.
-
FPGA Neural Network
For quantization-aware training, there's also a tool we integrate with called qkeras: https://github.com/google/qkeras/tree/master/qkeras
-
[D] How to Quantize a CNN; And how to deal with a professor...
Brevitas appears to be what you're looking for. I haven't used that but developed something similar myself for a previous project. You could take a look at https://github.com/google/qkeras too
finn
-
Hi, What could be the best HLS tool for implementing neural networks on FPGA
FINN - https://github.com/Xilinx/finn
-
Can anyone tell if Xilinx's FINN (from Xilinx's research lab) is restricted for use only to xilinx based FPGAs?
Seems fine to use on other FPGAs, there are some clauses you need to abide by. https://github.com/Xilinx/finn/blob/main/LICENSE.txt
-
Sub ms - 3ms Latency Vision task on FPGA
It really depends on the type of data you are using. There may (or may not) be some trade offs and sacrifices. There are frameworks which can basically translate your neural network information from a high level python code into equivalent HLS code which is optimized for low latency when inferred on FPGAs. Some frameworks which might be useful for you to explore are hls4ml and finn. These are some frameworks which can achieve low latency inference of neural networks on FPGAs using Xilinx Vitis HLS. These are what I found when I did a similar experiment but with much lower latency target (a few hundred ns) and a very simple MLP with 1D signal as input which was a year ago. Not sure if there are better alternatives available as of 2023. But conceptually all these work on the primary principle of having a supporting framework/methodology to first quantize the network and limit the precision of data to fixed point. The HLS then produced will also be a result of the framework applying dataflow techniques such that the resulting HLS code will produce an RTL which has the best overall latency.
What are some alternatives?
model-optimization - A toolkit to optimize ML models for deployment for Keras and TensorFlow, including quantization and pruning.
hls4ml - Machine learning on FPGAs using HLS
intel-extension-for-pytorch - A Python package for extending the official PyTorch that can easily obtain performance on Intel platform
aimet - AIMET is a library that provides advanced quantization and compression techniques for trained neural network models.
conifer - Collect and revisit web pages.
horovod - Distributed training framework for TensorFlow, Keras, PyTorch, and Apache MXNet.
d2l-en - Interactive deep learning book with multi-framework code, math, and discussions. Adopted at 500 universities from 70 countries including Stanford, MIT, Harvard, and Cambridge.
Keras - Deep Learning for humans
conifer - Fast inference of Boosted Decision Trees in FPGAs
route-bender-4000