Catalog PyPI
Back to packageRELEASE DETAILS

2.42.0

PyPI

aimet-torch

AIMET torch package

Published18 Oct 2026
Direct dependencies56
Transitive dependenciesNot calculated

README

Version 2.42.0 documentation

Qualcomm Innovation Center, Inc.

AI Model Efficiency Toolkit (AIMET)

AIMET is a software toolkit for quantizing trained ML models.

AIMET improves the runtime performance of deep learning models by reducing compute load and memory footprint. Models quantized with AIMET facilitate its deployment on edge devices like mobile phones or laptops by reducing memory footprint.

AIMET employs post-training and fine-tuning techniques to minimize accuracy loss during quantization and compression. AIMET supports models from the ONNX and PyTorch frameworks.

How AIMET works

AIMET is designed to work with PyTorch and ONNX models.

You can find models quantized with AIMET on Qualcomm AI Hub Models - a collection of optimized and quantized models.

Why AIMET?

Benefits of AIMET

  • Advanced quantization techniques: Inference using integer runtimes is significantly faster than using floating-point runtimes. For example, models run 5x-15x faster on the Qualcomm Hexagon DSP than on the Qualcomm Kyro CPU. In addition, 8-bit precision models have a 4x smaller footprint than 32-bit precision models. However, maintaining model accuracy when quantizing ML models is often challenging. AIMET solves this using novel techniques like Data-Free Quantization that provide state-of-the-art INT8 results on several popular models.
  • Supports advanced model compression techniques that enable models to run faster at inference-time and require less memory
  • AIMET is designed to automate optimization of neural networks avoiding time-consuming and tedious manual tweaking. AIMET also provides user-friendly APIs that allow users to make calls directly from their PyTorch pipelines.

Please visit the AIMET on Github Pages for more details.

Quick Start

aimet-onnx and aimet-torch is available on PyPI.

Check our Quick Start to get started with latest AIMET package.

Build from source

To build the latest AIMET code from the source, see Build, install and run AIMET from source in Docker environment

Supported Features

Post-Training Quantization(PTQ)

Check out guide to get started on PTQ technique.

Following table summarizes basic technique such as Calibration to advanced techniques such as SeqMSE and Adaptive Rounding(AdaRound) that you can use with AIMET.

TechniqueONNXPyTorchWhat does it do?
Calibration✅✅Computes Quantization parameters
AdaRound✅✅Rounds quantized weights
SeqMSE✅✅Optimizes encodings for each layer
BatchNorm Folding✅✅Folds batchnorm to bridge the gap between simulation and on-target
Cross Layer Equalization✅✅Rescales the weight to reduce range imbalance
BatchNorm re-estimation✅✅Re-estimates batchnorm statistics
AdaScale✅✅Learns per-weight scales via blockwise optimization to minimize quantization error
OmniQuant❌✅Optimizes quantized weights
SpinQuant✅✅Reduces activation outliers via Hadamard rotations

Quantization Aware Training(QAT)

AIMET supports Quantization Aware Training(QAT) via aimet-torch.

If you want to use both QAT and some of the advanced PTQ techniques from AIMET, we recommend the following workflow:

QAT workflow

Check detailed QAT guide here

Model Compression

  • Spatial SVD: Tensor decomposition technique to split a large layer into two smaller ones
  • Channel Pruning: Removes redundant input channels from a layer and reconstructs layer weights
  • Per-layer compression-ratio selection: Automatically selects how much to compress each layer in the model

Visualization

  • Weight ranges: Inspect visually if a model is a candidate for applying the Cross Layer Equalization technique. And the effect after applying the technique
  • Per-layer compression sensitivity: Visually get feedback about the sensitivity of any given layer in the model to compression

Results

AIMET can quantize an existing 32-bit floating-point model to an 8-bit fixed-point model without sacrificing much accuracy and without model fine-tuning.

DFQ

The DFQ method applied to several popular networks, such as MobileNet-v2 and ResNet-50, result in less than 0.9% loss in accuracy all the way down to 8-bit quantization, in an automated way without any training data.

ModelsFP32INT8 Simulation
MobileNet v2 (top1)71.72%71.08%
ResNet 50 (top1)76.05%75.45%
DeepLab v3 (mIOU)72.65%71.91%

AdaRound (Adaptive Rounding)

ADAS Object Detect

For this example ADAS object detection model, which was challenging to quantize to 8-bit precision, AdaRound can recover the accuracy to within 1% of the FP32 accuracy.

ConfigurationmAP - Mean Average Precision
FP3282.20%
Nearest Rounding (INT8 weights, INT8 acts)49.85%
AdaRound (INT8 weights, INT8 acts)81.21%
DeepLabv3 Semantic Segmentation

For some models like the DeepLabv3 semantic segmentation model, AdaRound can even quantize the model weights to 4-bit precision without a significant drop in accuracy.

ConfigurationmIOU - Mean intersection over union
FP3272.94%
Nearest Rounding (INT4 weights, INT8 acts)6.09%
AdaRound (INT4 weights, INT8 acts)70.86%

Quantization for Recurrent Models

AIMET supports quantization simulation and quantization-aware training (QAT) for recurrent models (RNN, LSTM, GRU). Using QAT feature in AIMET, a DeepSpeech2 model with bi-directional LSTMs can be quantized to 8-bit precision with minimal drop in accuracy.

DeepSpeech2
(using bi-directional LSTMs)
Word Error Rate
FP329.92%
INT810.22%

Model Compression

AIMET can also significantly compress models. For popular models, such as Resnet-50 and Resnet-18, compression with spatial SVD plus channel pruning achieves 50% MAC (multiply-accumulate) reduction while retaining accuracy within approx. 1% of the original uncompressed model.

ModelsUncompressed model50% Compressed model
ResNet18 (top1)69.76%68.56%
ResNet 50 (top1)76.05%75.75%

Resources

Contributions

Thanks for your interest in contributing to AIMET! Please read our Contributions Page for more information on contributing features or bug fixes. We look forward to your participation!

Team

AIMET aims to be a community-driven project maintained by Qualcomm Innovation Center, Inc.

License

AIMET is licensed under the BSD 3-clause "New" or "Revised" License. Check out the LICENSE for more details.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 60

Native requirements
56 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
Jinja2
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
Jinja2>=3.0.3runtime
PyYAML
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
PyYAMLruntime
bokeh
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
bokeh<=3.6.3,>=3.3.0runtime
cvxpy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
cvxpyruntime
holoviews
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
holoviewsruntime
hvplot
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
hvplot>=0.10.0runtime
jsonschema
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
jsonschemaruntime
matplotlib
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
matplotlib>=3runtime
networkx
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
networkxruntime
numpy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
numpyruntime
onnx
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
onnxruntime
onnx_ir
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
onnx_ir>=0.1.16runtime
onnxscript
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
onnxscript>=0.2.0runtime
osqp
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
osqpruntime
pandas
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pandasruntime
psutil
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
psutilruntime
pybind11
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pybind11runtime
safetensors
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
safetensorsruntime
scikit-learn
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
scikit-learnruntime
scipy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
scipyruntime
tensorboard
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
tensorboardruntime
torch
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
torchruntime
torchvision
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
torchvisionruntime
tqdm
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
tqdmruntime
scikit-build-core
Environment
{
  "extras": "wheels",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
scikit-build-core[wheels]==0.11.1; extra == "dev"runtime
build
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
build; extra == "dev"runtime
auditwheel
Environment
{
  "extras": "",
  "marker": "sys_platform == \"linux\" and extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
auditwheel; sys_platform == "linux" and extra == "dev"runtime
patchelf
Environment
{
  "extras": "",
  "marker": "sys_platform == \"linux\" and extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
patchelf==0.19.1.0; sys_platform == "linux" and extra == "dev"runtime
cython
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
cython>=3.0; extra == "dev"runtime
beautifulsoup4
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
beautifulsoup4; extra == "test"runtime
matplotlib
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
matplotlib; extra == "test"runtime
onnx
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
onnx; extra == "test"runtime
protobuf
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
protobuf<7; extra == "test"runtime
pydantic
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pydantic; extra == "test"runtime
pylint
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pylint<4; extra == "test"runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pytest; extra == "test"runtime
pytest-extra-durations
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pytest-extra-durations; extra == "test"runtime
pytest-xdist
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pytest-xdist; extra == "test"runtime
pytorch-ignite
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pytorch-ignite; extra == "test"runtime
torchvision
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
torchvision; extra == "test"runtime
accelerate
Environment
{
  "extras": "",
  "marker": "(sys_platform != \"win32\" or platform_machine not in \"ARM64,aarch64\") and extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
accelerate<1.10.0; (sys_platform != "win32" or platform_machine not in "ARM64,aarch64") and extra == "test"runtime
datasets
Environment
{
  "extras": "",
  "marker": "(sys_platform != \"win32\" or platform_machine not in \"ARM64,aarch64\") and extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
datasets>=2.18.0; (sys_platform != "win32" or platform_machine not in "ARM64,aarch64") and extra == "test"runtime
onnxruntime-extensions
Environment
{
  "extras": "",
  "marker": "(sys_platform != \"win32\" or platform_machine not in \"ARM64,aarch64\") and extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
onnxruntime-extensions; (sys_platform != "win32" or platform_machine not in "ARM64,aarch64") and extra == "test"runtime
onnxsim
Environment
{
  "extras": "",
  "marker": "(sys_platform != \"win32\" or platform_machine not in \"ARM64,aarch64\") and extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
onnxsim<0.6.0; (sys_platform != "win32" or platform_machine not in "ARM64,aarch64") and extra == "test"runtime
peft
Environment
{
  "extras": "",
  "marker": "(sys_platform != \"win32\" or platform_machine not in \"ARM64,aarch64\") and extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
peft<0.19.0; (sys_platform != "win32" or platform_machine not in "ARM64,aarch64") and extra == "test"runtime
safetensors
Environment
{
  "extras": "",
  "marker": "(sys_platform != \"win32\" or platform_machine not in \"ARM64,aarch64\") and extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
safetensors<=0.5.3; (sys_platform != "win32" or platform_machine not in "ARM64,aarch64") and extra == "test"runtime
transformers
Environment
{
  "extras": "",
  "marker": "(sys_platform != \"win32\" or platform_machine not in \"ARM64,aarch64\") and extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
transformers==5.7.0; (sys_platform != "win32" or platform_machine not in "ARM64,aarch64") and extra == "test"runtime
deepspeed
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
deepspeed; extra == "test"runtime
onnxruntime
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
onnxruntime; extra == "test"runtime
spconv
Environment
{
  "extras": "",
  "marker": "sys_platform != \"darwin\" and extra == \"test\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
spconv; sys_platform != "darwin" and extra == "test"runtime
furo
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
furo; extra == "docs"runtime
nbsphinx
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
nbsphinx; extra == "docs"runtime
pandoc
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pandoc; extra == "docs"runtime
sphinx
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
sphinx; extra == "docs"runtime
sphinx-autodoc-typehints
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
sphinx-autodoc-typehints; extra == "docs"runtime
sphinx-copybutton
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
sphinx-copybutton; extra == "docs"runtime
sphinx-design
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
sphinx-design; extra == "docs"runtime
sphinx-jinja
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
sphinx-jinja; extra == "docs"runtime
sphinx-rtd-theme
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
sphinx-rtd-theme; extra == "docs"runtime
sphinx-tabs
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
sphinx-tabs; extra == "docs"runtime

Distribution files

1 collected
aimet_torch-2.42.0-py310-none-any.whl

bdist_wheel · 798.08 KB · Python py310

Source file

Repository

PENDING
quic/aimet

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 11:18 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:f7dcff1ed6b53ac261ccba9dcd777c409ccaf72dec954e1416023a2e8c2b8065

Other collected versions

View all collected versions →