o
    iQ                  	   @   s  d dl Z d dlmZmZ dddddddddZdd ZddlmZmZm	Z	m
Z
mZmZmZ dd	lmZmZ dd
lmZ ddlmZmZmZ ddlmZmZ ddlmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1 ddl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 ddl:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB ddlCmDZD ddlEmFZFmGZG ddlHmIZI e*ZJg dZKdS )    N)int_scaled_matmulsafe_int_mmz
.autoquant)ALL_AUTOQUANT_CLASS_LISTDEFAULT_AUTOQUANT_CLASS_LIST"DEFAULT_FLOAT_AUTOQUANT_CLASS_LIST!DEFAULT_INT4_AUTOQUANT_CLASS_LIST#DEFAULT_SPARSE_AUTOQUANT_CLASS_LIST!GEMLITE_INT4_AUTOQUANT_CLASS_LISTOTHER_AUTOQUANT_CLASS_LIST	autoquantc                 C   s:   | t v rt |  }t|t}t|| S tdtd| )Nzmodule z has no attribute )_lazy_imports	importlibimport_module__name__getattrAttributeError)namemodule_pathmodule r   Q/home/ubuntu/.local/lib/python3.10/site-packages/torchao/quantization/__init__.py__getattr__   s
   
r      )GranularityPerAxisPerBlockPerGroupPerRow	PerTensorPerToken)LinearActivationQuantizedTensorto_linear_activation_quantized)6to_weight_tensor_with_linear_activation_scale_metadata)Int4WeightOnlyQuantizerInt8DynActInt4WeightLinearInt8DynActInt4WeightQuantizer)AffineQuantizedMinMaxObserverAffineQuantizedObserverBase)3Float8DynamicActivationFloat8SemiSparseWeightConfig)Float8DynamicActivationFloat8WeightConfig'Float8DynamicActivationInt4WeightConfigFloat8MMConfig(Float8StaticActivationFloat8WeightConfigFloat8WeightOnlyConfigFqnToConfigGemliteUIntXWeightOnlyConfigInt4WeightOnlyConfig%Int8DynamicActivationInt4WeightConfig%Int8DynamicActivationInt8WeightConfig%Int8DynamicActivationIntxWeightConfig$Int8StaticActivationInt8WeightConfigInt8WeightOnlyConfigIntxWeightOnlyConfigModuleFqnToConfigPlainLayoutTensorCoreTiledLayoutUIntXWeightOnlyConfigfqn_matches_fqn_config intx_quantization_aware_training	quantize_swap_conv2d_1x1_to_linear)MappingTypeTorchAODTypeZeroPointDomainchoose_qparams_affine"choose_qparams_affine_with_min_maxdequantize_affinequantize_affine)Float8TensorInt4PlainInt32TensorInt4PreshuffledTensor
Int4TensorInt4TilePackedTo4dTensor
Int8TensorIntxOpaqueTensorIntxUnpackedToInt8Tensor) register_quantize_module_handler)	QuantizerTwoStepQuantizer)compute_error)Dr   r   r   r	   r   r   r
   r   r=   r<   r;   r>   r1   r2   r3   r4   r0   r*   r5   r-   r)   r,   r(   r:   r6   r/   AOPerModuleConfigr.   r7   rK   rI   rG   rH   rL   rM   rJ   rF   rQ   r!   r"   r&   r'   rB   rC   rE   rD   r   r   rN   r?   rA   r@   r   r   r   r   r   r   r   r    r#   r%   r$   rP   rO   r8   r9   r+   )Lr   torchao.kernelr   r   r   r   granularityr   r   r   r   r   r   r   "linear_activation_quantized_tensorr    r!   linear_activation_scaler"   linear_quant_modulesr#   r$   r%   observerr&   r'   	quant_apir(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   quant_primitivesr?   r@   rA   rB   rC   rD   rE   quantize_.workflowsrF   rG   rH   rI   rJ   rK   rL   rM   transform_modulerN   unifiedrO   rP   utilsrQ   rR   __all__r   r   r   r   <module>   s2    $	d$(	
