This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
AIMET (AI Model Efficiency Toolkit) is a software toolkit for quantizing trained ML models. It supports PyTorch and ONNX frameworks, providing post-training quantization (PTQ), quantization-aware training (QAT), and model compression techniques.
cd aimet
mkdir build && cd build
cmake .. -DENABLE_CUDA=ON -DENABLE_TORCH=ON -DENABLE_ONNX=OFF
make -j8
make installCMAKE_ARGS='-DENABLE_CUDA=ON -DENABLE_TORCH=ON -DENABLE_ONNX=OFF' python3 -m pip install --no-build-isolation -e .-DENABLE_CUDA=ON/OFF- Enable CUDA support-DENABLE_TORCH=ON/OFF- Enable PyTorch variant-DENABLE_ONNX=ON/OFF- Enable ONNX variant-DENABLE_TESTS=ON/OFF- Enable test building
cd build
make test
# OR
ctest -Vpython -m pytest TrainingExtensions/torch/test/python/test_<name>.py -vpython -m pytest TrainingExtensions/torch/test/python -m "not cuda"python -m pytest TrainingExtensions/torch/test/python/test_<name>.py::TestClass::test_method -vTest directories:
TrainingExtensions/torch/test/python/- PyTorch testsTrainingExtensions/onnx/test/python/- ONNX testsTrainingExtensions/common/test/- Common tests
- Formatter: ruff-format (configured in
.pre-commit-config.yaml) - Linter: pylint (configured in
.pylintrc) - Target Python version: 3.10
- Formatter: clang-format (configured in
.clang-format) - Style: Allman braces, 120 column limit, 4 space indent
pip install pre-commit
pre-commit run --all-filesaimet_torch (TrainingExtensions/torch/src/python/aimet_torch/)
- Core PyTorch quantization simulation and QAT
v2/- Latest quantization API (QuantizationSimModel)v1/- Legacy APIadaround/- Adaptive rounding implementationamp/- Automatic mixed precisionexperimental/- Experimental features (omniquant, spinquant, adascale)
aimet_onnx (TrainingExtensions/onnx/src/python/aimet_onnx/)
- ONNX model quantization and optimization
adaround/- AdaRound for ONNXsequential_mse/- SeqMSE optimizationgraph_passes/- ONNX graph transformations
aimet_common (TrainingExtensions/common/src/python/aimet_common/)
- Shared utilities across frameworks
ModelOptimizations/DlQuantization/
- Core C++ quantization library with CUDA kernels
- Pybind11 bindings exposed as
libpymo
aimet_torch.quantsim.QuantizationSimModel- Main quantization simulation classaimet_torch.adaround.adaround_weight.Adaround- AdaRound APIaimet_onnx.quantsim.QuantizationSimModel- ONNX quantization simulation
- Python: Follow pep8, use snake_case for functions/variables, PascalCase for classes
- C++: Follow Google C++ style guide
- Max line length: 100 characters (Python), 120 characters (C++)
- All commits must be signed with DCO (
git commit -s) - Run pre-commit hooks before committing
# Set PYTHONPATH after build
export PYTHONPATH=$WORKSPACE/aimet/build/staging/universal/lib/python:$PYTHONPATH
# Or for development from source
export PYTHONPATH=$WORKSPACE/aimet/TrainingExtensions/torch/src/python:$WORKSPACE/aimet/TrainingExtensions/common/src/python:$PYTHONPATHcd build
make doc
# Output: build/staging/universal/Docs/cd build
make packageaimet