Skip to main content

Overview

Quantization reduces model size and accelerates inference by converting model weights and activations from higher precision (FP32) to lower precision formats (INT8, FP16, FP8). Neurenix provides comprehensive quantization support with multiple precision formats and quantization strategies.

Quantization Types

Neurenix supports three quantization types:
Reference: neurenix/quantization.py:20

Quick Start

Quantize a Model

Reference: neurenix/quantization.py:166

Quantize a Tensor

Reference: neurenix/quantization.py:65

Quantization Methods

INT8 Quantization

Maps FP32 values to 8-bit integers (0-255):
Formula:
Reference: neurenix/quantization.py:76

FP16 Quantization

Half-precision floating point:
Reference: neurenix/quantization.py:90

FP8 Quantization

8-bit floating point (newest format):
Reference: neurenix/quantization.py:97

QuantizedTensor

Wrapper for quantized tensors with metadata:
Reference: neurenix/quantization.py:29

QuantizedModule

Wrapper for quantized neural network modules:
Reference: neurenix/quantization.py:112

Per-Layer Quantization

Quantize different layers with different precision:
Reference: neurenix/quantization.py:179

Quantization-Aware Training (QAT)

Simulate quantization effects during training:
Reference: neurenix/quantization.py:275

Post-Training Quantization (PTQ)

Quantize a trained model with calibration:
Reference: neurenix/quantization.py:312

Model Pruning

Reduce model size by removing unimportant weights:
Reference: neurenix/quantization.py:222

Complete Example: Image Classification

Calibration Strategies

Calibration computes optimal quantization parameters:
Reference: neurenix/quantization.py:312

Quantization Formats Comparison

Best Practices

1. Choose the Right Quantization Type

2. Use QAT for Better Accuracy

3. Calibrate with Representative Data

4. Keep Critical Layers in Higher Precision

5. Combine with Pruning

Performance Benchmarks

Typical speedup and accuracy (ImageNet ResNet-50):

Debugging Quantization Issues

Compare Layer Outputs

Identify Sensitive Layers

Hardware Considerations

CPU Inference

GPU Inference

Mobile/Edge Devices