Skip to content

Releases: Xilinx/brevitas

Release v0.10.2

19 Feb 16:37
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.10.1...v0.10.2

Release v0.10.1

15 Feb 11:50
Compare
Choose a tag to compare

Highlights

  • A2Q+ support paper
  • A2Q+ examples with CIFAR10 and Super Resolution
  • Support for concatenation equalization for weights and activations
  • Support for GPFQ + A2Q L1 Norm bound
  • Possibility to explicitly export Q node for weights in QCDQ export
  • Support for float16 and bfloat16 for QCDQ export
  • Support for Dynamic Activation Quantization for ONNX QDQ export
  • Support for channel-splitting paper
  • (Beta) Better compatibility with Huggingface accelerate and optimum
  • (Beta) Improved support and testing for minifloat quantization

What's Changed

Full Changelog: v0.10.0...v0.10.1

A2Q+ CIFAR10 model release

12 Feb 18:17
c78f974
Compare
Choose a tag to compare
Pre-release

This release contains training code and pre-trained weights to demonstrate accumulator-aware quantization (A2Q) on an image classification task. Code is also provided to demonstrate Euclidean projection-based weight initialization (EP-init) as proposed in our paper "A2Q+: Improving Accumulator-Aware Weight Quantization".

Find the associated docs at https://github.com/Xilinx/brevitas/tree/a2q_cifar10_r1/src/brevitas_examples/imagenet_classification/a2q.

A2Q+ model release

30 Jan 19:00
17fb49e
Compare
Choose a tag to compare
A2Q+ model release Pre-release
Pre-release

A2Q+ Super Resolution Experiments with Brevitas

This release contains training code and pre-trained weights to demonstrate accumulator-aware quantization (A2Q+) as proposed in our paper "A2Q+: Improving Accumulator-Aware Weight Quantization" on a super resolution task.

Find the associated docs at https://github.com/Xilinx/brevitas/tree/super_res_r2/src/brevitas_examples/super_resolution.

Release v0.10.0

08 Dec 16:36
Compare
Choose a tag to compare

Highlights

  • Support for PyTorch up to version 2.1 .
  • Support for GPTQ PTQ algorithm.
  • Support for GPFQ PTQ algorithm.
  • Support for SmoothQuant / activation equalization PTQ algorithm.
  • Support for MSE based scale and zero-point for weights and activations.
  • Support for row-wise scaling at the input of QuantLinear.
  • Support for quantization of a slice of a weight tensor.
  • End-to-end support for learned rounding in ImageNet PTQ.
  • End-to-end example training scripts for A2Q (low precision accumulation) over superresolution.
  • Experimental support for minifloats (eXmY quantization).
  • Experimental LLM PTQ flow with support for weight-only and weight+activation quantization, together with GPTQ, AWQ and SmoothQuant.
  • Experimental Stable Diffusion PTQ flow with support for weight-only quantization.
  • Deprecated FINN ONNX export flow.
  • Update custom value_trace FX tracer to latest FX.
  • New custom variant of make_fx tracer with support for custom torch.library ops through @Wrap annotation.

What's Changed

Read more

A2Q model release

20 Sep 16:07
acf1f5d
Compare
Choose a tag to compare
A2Q model release Pre-release
Pre-release

Integer-Quantized Super Resolution Experiments with Brevitas

This release contains scripts demonstrating how to train integer-quantized super resolution models using Brevitas.
Code is also provided to demonstrate accumulator-aware quantization (A2Q) as proposed in our ICCV 2023 paper "A2Q: Accumulator-Aware Quantization with Guaranteed Overflow Avoidance".

Find the associated docs at https://github.com/Xilinx/brevitas/tree/super_res_r1/src/brevitas_examples/super_resolution .

Release v0.9.1

28 Apr 16:57
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.9.0...v0.9.1

Release v0.9.0

21 Apr 17:50
Compare
Choose a tag to compare

Highlights

Overview of changes

Graph quantization

Quantized layers

  • Initial support for QuantMultiheadAttention #568
  • Breaking change: rename Quant(Adaptive)AvgPool to Trunc(Adaptive)AvgPool by @volcacius in #562

Quantizers

QuantTensor

PTQ

Export

CI, linting

FX

Examples

For the Full Changelog please check : v0.8.0...v0.9.0

FINN-friendly 4W4A ResNet18 on CIFAR10

20 Apr 12:17
Compare
Choose a tag to compare
Pre-release

Model definition and pretrained 4b variant of ResNet18 for FINN deployment. Available under the bnn_pynq examples:

from brevitas_examples.bnn_pynq.models import resnet18_4w4a
quant_model = resnet18_4w4a(pretrained=True)

Release version 0.8.0

10 Jan 09:09
Compare
Choose a tag to compare

What's Changed

  • Add support for PyTorch 1.11-1.13.1. Brevitas 0.8 supports PyTorch 1.5.1 to 1.13.1, with 1.10+ suggested.
  • Deprecate support for Python 3.6, 3.7+ is now required.
  • Add support for export to ONNX QCDQ for <= int8 quantization, for out of the box execution with onnxruntime or similar backends.
  • Extend support for export to ONNX QOps to <= int8 quantization, for out of the box execution with onnxruntime or similar backends.
  • Add experimental support for export to torch QCDQ for <= int32 quantization, as an entry point for future MLIR integration with torch-mlir.
  • Add support for QuantRNN, QuantLSTM, w/ support for CIFG, bidirectional layers, shared input-hidden gates, shared quantizers, training-time JIT compilation, and partial export support to ONNX (QONNX and QCDQ).
  • Improve support for zero-point for both weights and activations quantization.
  • New default asymmetric activation quantizer based on percentile rather than min/max.
  • Add more built-in quantizers (symmetric per-channel, asymmetric per-channel, symmetric decoupled per-channel).
  • Simplify interface for activation calibration.
  • Simplify interface for bias correction.
  • Initial support for QuantEmbedding.
  • Deprecate support for XIR and PyXIR export flows.
  • Many bug fixes and minor improvements.

New Contributors

Full Changelog: v0.7.1...v0.8.0