Quantization Strategies#
- class quark.onnx.quantization.config.spec.CalibMethod(*values)[source]#
Enumeration of calibration methods used for determining quantization parameters.
- class quark.onnx.quantization.config.spec.ScaleType(*values)[source]#
Enumeration of scale types used in quantization.
- class quark.onnx.quantization.config.spec.QuantGranularity(*values)[source]#
Enumeration of quantization granularity.
- class quark.onnx.quantization.config.spec.QTensorConfig(symmetric: bool, scale_type: ScaleType, calibration_method: CalibMethod, quant_granularity: QuantGranularity, data_type: BaseDataType)[source]#
Configuration for a quantized tensor.
- Parameters:
symmetric (bool) – Whether to use symmetric quantization.
scale_type (ScaleType) – Type of scaling to apply.
calibration_method (CalibMethod) – Method for calibration.
quant_granularity (QuantGranularity) – Level of quantization granularity.
data_type (BaseDataType) – Data type of quantization.
- set_calibration_method(calibration_method: CalibMethod) None[source]#
Set the calibration method.
- set_quant_granularity(quant_granularity: QuantGranularity) None[source]#
Set the quantization granularity.
- class quark.onnx.quantization.config.spec.Int8Spec(symmetric: bool = True, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.Percentile, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.Int8'>)[source]#
Quantization specification for int8 tensors (default Float32 scaling and Percentile calibration).
- class quark.onnx.quantization.config.spec.UInt8Spec(symmetric: bool = False, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.Percentile, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.UInt8'>)[source]#
Quantization specification for uint8 tensors.
- class quark.onnx.quantization.config.spec.XInt8Spec(symmetric: bool = True, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.PowerOf2, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.MinMSE, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.Int8'>)[source]#
Quantization specification for int8 tensors with power-of-2 scaling.
- class quark.onnx.quantization.config.spec.Int16Spec(symmetric: bool = True, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.Percentile, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.Int16'>)[source]#
Quantization specification for int16 tensors.
- class quark.onnx.quantization.config.spec.UInt16Spec(symmetric: bool = False, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.Percentile, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.UInt16'>)[source]#
Quantization specification for uint16 tensors.
- class quark.onnx.quantization.config.spec.Int32Spec(symmetric: bool = True, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.Percentile, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.Int32'>)[source]#
Quantization specification for int32 tensors.
- class quark.onnx.quantization.config.spec.UInt32Spec(symmetric: bool = False, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.Percentile, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.UInt32'>)[source]#
Quantization specification for uint32 tensors.
- class quark.onnx.quantization.config.spec.BFloat16Spec(symmetric: bool = True, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.MinMax, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.BFloat16'>)[source]#
Specification for bfloat16 tensors.
- class quark.onnx.quantization.config.spec.BFP16Spec(symmetric: bool = True, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.MinMax, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.BFP16'>)[source]#
Specification for Block Floating Point (BFP16) tensors.
- class quark.onnx.quantization.config.spec.MX4Spec(symmetric: bool = True, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.MinMax, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.MX4'>)[source]#
Specification for MX4 tensors.
- class quark.onnx.quantization.config.spec.MX6Spec(symmetric: bool = True, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.MinMax, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.MX6'>)[source]#
Specification for MX6 tensors.
- class quark.onnx.quantization.config.spec.MX9Spec(symmetric: bool = True, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.MinMax, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.MX9'>)[source]#
Specification for MX9 tensors.
- class quark.onnx.quantization.config.spec.MXFP4E2M1Spec(symmetric: bool = True, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.MinMax, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.MXFP4E2M1'>)[source]#
Specification for MXFP4E2M1 tensors.
- class quark.onnx.quantization.config.spec.MXFP6E3M2Spec(symmetric: bool = True, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.MinMax, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.MXFP6E3M2'>)[source]#
Specification for MXFP6E3M2 tensors.
- class quark.onnx.quantization.config.spec.MXFP6E2M3Spec(symmetric: bool = True, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.MinMax, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.MXFP6E2M3'>)[source]#
Specification for MXFP6E2M3 tensors.
- class quark.onnx.quantization.config.spec.MXFP8E5M2Spec(symmetric: bool = True, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.MinMax, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.MXFP8E5M2'>)[source]#
Specification for MXFP8E5M2 tensors.
- class quark.onnx.quantization.config.spec.MXFP8E4M3Spec(symmetric: bool = True, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.MinMax, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.MXFP8E4M3'>)[source]#
Specification for MXFP8E4M3 tensors.
- class quark.onnx.quantization.config.spec.MXInt8Spec(symmetric: bool = True, scale_type: ~quark.onnx.quantization.config.spec.ScaleType = ScaleType.Float32, calibration_method: ~quark.onnx.quantization.config.spec.CalibMethod = CalibMethod.MinMax, quant_granularity: ~quark.onnx.quantization.config.spec.QuantGranularity = QuantGranularity.Tensor, data_type: type[~quark.shares.data_type.BaseDataType] = <class 'quark.onnx.quantization.config.data_type.MXInt8'>)[source]#
Specification for MXInt8 tensors.
- class quark.onnx.quantization.config.spec.QLayerConfig(input_tensors: QTensorConfig | None = None, activation: QTensorConfig | None = None, weight: QTensorConfig | None = None, bias: QTensorConfig | None = None, output_tensors: QTensorConfig | None = None)[source]#
Layer-level quantization configuration.
- Parameters:
input_tensors (QTensorConfig) – Quantization spec for input_tensors.
activation (QTensorConfig) – Quantization spec for activations.
weight (QTensorConfig) – Quantization spec for weights.
bias (QTensorConfig) – Quantization spec for bias.
output_tensors (QTensorConfig) – Quantization spec for output_tensors.