o
    Ơi                     @   sj   d dl Z d dlZd dlZddlmZ ddlmZmZ eej	ee j	dd Z	eej
jj	dd	 ZdS )
    N   )tensorrt_converter   )get_dyn_rangemark_as_int8_layerc                 C   sh   t |dkr|\}}n	|d |d }}tdd ||fD s#td| ||tjj}||_|dS )Nr   inputotherc                 s       | ]
}t |tjjV  qd S N
isinstancetrttensorrtITensor).0arg r   T/home/ubuntu/.local/lib/python3.10/site-packages/torch_tensorrt/fx/converters/mul.py	<genexpr>       zmul.<locals>.<genexpr>z@mul() received an input that is not part of the TensorRT region!)	lenallRuntimeErroradd_elementwiser   ElementWiseOperationPRODname
get_output)networktargetargskwargs
layer_namelhs_valrhs_vallayerr   r   r   mul   s   

r&   c           	      C   s   t |dksJ |d |d }}tdd ||fD s td| ||tjj}||_t|d |d t	j
}t|| |dS )	Nr   qaqbc                 s   r	   r
   r   )r   ir   r   r   r   &   r   z quantized_mul.<locals>.<genexpr>zHQuantized mul received an input that is not part of the TensorRT region!scale
zero_point)r   r   r   r   r   r   r   r   r   torchquint8r   r   )	r   r   r    r!   r"   r#   r$   r%   	dyn_ranger   r   r   quantized_mul!   s   

r/   )operatorr   r   r,   converter_registryr   converter_utilsr   r   r&   ops	quantizedr/   r   r   r   r   <module>   s    