o
    Ơi0                     @   s   d dl Zd dlZddlmZ ddlmZmZ g dZedeej	eej
jjjdd Z	eejeej
jjjd	d
 Zeej
jjjdd ZdS )    N   )tensorrt_converter   )get_dyn_rangeget_inputs_from_args_and_kwargs)inputscale
zero_pointdtype
dequantizec                 C   s*   |d }t |tjjstd| d|S )Nr   zDequantize received input ) that is not part of the TensorRT region!
isinstancetrttensorrtITensorRuntimeErrornetworksubmodargskwargs
layer_name	input_val r   ]/home/ubuntu/.local/lib/python3.10/site-packages/torch_tensorrt/fx/converters/quantization.pyr      s   
c           	      C   s   t |tjjst||t\}}}}n|d }|j}|j}|j}t |t	j
js.td| d|tjkr;td| dt||||_|S )Nr   zQuantize received input r   z=Only support torch.quint8 quantized type for activation, get .)r   torchnnModuler   quantize_per_tensor_inputsr   r	   r
   r   r   r   r   quint8r   dynamic_range)	r   r   r   r   r   r   r   r	   r
   r   r   r   quantize   s$   


r#   c                 C   s*   |d }t |tjjstd| d|S )Nr   zIdentity received input r   r   r   r   r   r   identity8   s   
r$   )r   r   r   converter_registryr   converter_utilsr   r   r    r   r   	quantizedmodules
DeQuantizequantize_per_tensorQuantizer#   linearIdentityr$   r   r   r   r   <module>   s   