What's Changed
hls4ml v1.0.0 "foxglove" introduces several significant improvements:
- A new QONNX frontend by @jmitrevs introduced in #979
- The ability for hls4ml to automatically infer the precision of data types by @vloncar introduced in #855
- The addition of an experimental backend for Intel oneAPI by @jmitrevs introduced in #955
- The addition of a backend for Siemens Catapult by @dgburnette in #956
- Added support for HGQ proxy models by @calad0i in #914
- An API for hardware-aware optimization by @bo3z in #768 and #809
The full list of other improvements and fixes is:
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #949
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #953
- hls4ml Optimization API [Part 1] by @bo3z in #768
- QKeras support for RNN layers by @laurilaatu in #856
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #962
- Try to fix sphinx problem by restricting tensorflow-model-optimization by @jmitrevs in #967
- Bump pre-commit/action from 3.0.0 to 3.0.1 by @dependabot in #968
- Change fractional (and others) to be a property, move quantizers by @jmitrevs in #964
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #969
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #971
- vitis backend tarball fix by @calad0i in #972
- remove special vitis version of nnet_dense_resource.h by @jmitrevs in #975
- Allow Vitis synthesis tests by @jmduarte in #927
- Fix cleanup of synthesis tests (leftover from 927) by @vloncar in #989
- Fix sphinx by pinning tensorflow<=2.15 by @jmduarte in #992
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #984
- add clock uncertainty configuration option by @jmitrevs in #870
- Stage initial set of changes for the Catapult backend by @dgburnette in #956
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #999
- fix unwanted tested file change in #956 by @calad0i in #1000
- Fix SR backend synth missing variables by @bo3z in #993
- Upsampling support for PyTorch models by @vloncar in #977
- Split fpga_types into separate files by @vloncar in #998
- Support negative_slope in quantized_relu by @vloncar in #987
- Group more tests per YAML to reduce the number of envs created by @vloncar in #996
- Automatic precision inference by @vloncar in #855
- Remove unnecessary transposes related to conversion to channels_last format by @vloncar in #976
- Update pytest docker image to 0.5.4 by @jmitrevs in #1005
- Fix pre-commit warning and change '.h5' to '.keras' for written output by @jmitrevs in #1006
- Fix extension test for Keras v3 by @vloncar in #1009
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1007
- updated pytest docker image by @jmitrevs in #1017
- SepConv1d/2d for io_parallel with Latency strategy by @vloncar in #1012
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1021
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1023
- Latency Pooling Header Updates by @calad0i in #973
- Make im2col default option for quartus by @calad0i in #1010
- add protection for when kernel_quantizer is None by @jmitrevs in #997
- prevent test directory overwrites for activation by @jmitrevs in #1031
- Update Jenkinsfile to use new Docker image and Python 3.10 environment by @vloncar in #1033
- clean-up test ci yaml generater by @calad0i in #1036
- Add View to layer name map for pytorch parser by @JanFSchulte in #1039
- Add RNN support for Pytorch by @JanFSchulte in #850
- Add Vitis to pytorch API tests by @JanFSchulte in #1040
- clean up mult-dimensional dense by @jmitrevs in #1042
- Add namespaces and optional writer config by @vloncar in #986
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1044
- Add support for HGQ proxy model by @calad0i in #914
- Bug Fix for Operand Shape Mismatch in BatchNorm Fusion (PyTorch) by @sei-rquartiano in #1045
- remove precision settings that make pytest for batchnorm in pytorch fail by @JanFSchulte in #1053
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1047
- rm slow mnist training in test by @calad0i in #1018
- Add an optimizer to replace SeparableConv by Depthwise + Conv (pointwise) by @jmitrevs in #1022
- Add functionality to use granularity option also for pytorch models by @JanFSchulte in #1051
- Update pooling logic for Vivado, Vitis, and Catapult backends by @jmitrevs in #1056
- remove padding attribute by @jmitrevs in #1061
- Run long-running pytests out of the batch by @vloncar in #1062
- Fix tanh activiation in pytorch parser by @JanFSchulte in #1055
- make auto the default for layer config by @jmitrevs in #1016
- remove checks on 'padding' that were missed in previous PR by @jmitrevs in #1064
- Remove extras flow by @vloncar in #1067
- Expose alpha and theta type for parametrized activations by @jmitrevs in #1069
- Raise exception on compile errors by @vloncar in #1068
- update qkeras in Jenkinsfile by @jmitrevs in #1072
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1075
- hls4ml Optimization API [Part 2] by @bo3z in #809
- Hardcore weight txt path by @vloncar in #1089
- quote the ${WEIGHT_DIR} to handle special characters by @jmitrevs in #1091
- Beginnings of the oneAPI backend by @jmitrevs in #955
- update keras activation parsing, especially leaky relu by @jmitrevs in #1085
- Fix softmax parsing in pytorch and add test by @JanFSchulte in #1086
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1098
- Change indexing in filling result for io_parallel convolutions, Vitis by @jmitrevs in #1102
- Update QONNX parsing for 1.0 by @jmitrevs in #979
- remove incorrect input from Constant nodes by @jmitrevs in #1119
- add max_precision to onnx parser by @jmitrevs in #1113
- Add RF to config templates for "Merge" layers by @vloncar in #1121
- Add doc for HGQ by @calad0i in #1117
- Multi output fix 2 by @calad0i in #1103
- Make auto default precision for pytorch parser by @JanFSchulte in #1112
- remove incorrect setting of result_t by @jmitrevs in #1130
- Fix problem with scale being a multidimensional array. by @jurevreca12 in #1132
- Added support for QONNX
Resize
node ingestion and tested with tiny UNet model by @nghielme in #1122 - Update install_requires for 1.0.0 by @vloncar in #1136
- Pointwise Conv1D with code generation for "Latency" strategy (update of #811) by @jmduarte in #881
- Introduce optional description to layer attributes by @vloncar in #1127
- Qonnx warnings by @jmitrevs in #1142
- Fixes to parsing of pytorch models when using torch functionals by @JanFSchulte in #1143
- Update README.md for v1.0.0 by @bo3z in #1100
- Temporary workaround for QKeras installation by @vloncar in #1145
New Contributors
- @laurilaatu made their first contribution in #856
- @dgburnette made their first contribution in #956
- @sei-rquartiano made their first contribution in #1045
- @jurevreca12 made their first contribution in #1132
Full Changelog: v0.8.1...v1.0.0