o
    }oi                  	   @   sd   zd dl Zd dlmZmZmZmZmZ dZW n e	e
fy#   dZY nw 					 		dddZdS )    N)CreateConfigProfileengine_from_networknetwork_from_onnx_pathsave_engineTFc
                 C   s   t d|  d|  t }
|r/| D ]\}}t|dksJ |
j||d |d |d d qd }i }|dkr?tjj|i|d< tt	| t
d|||
g||||	d	||d
}t||d d S )NzBuilding TensorRT engine for z:    r         )minoptmaxmemory_pool_limits)fp16
refittableprofilespreview_featuresload_timing_cacheint8builder_optimization_level)configsave_timing_cache)path )printr   itemslenaddtrtMemoryPoolType	WORKSPACEr   r   r   r   )	onnx_pathoutput_pathr   input_profileenable_refitenable_previewtiming_cacheworkspace_sizer   r   pnamedimsr   config_kwargsenginer   r   H/home/ubuntu/.local/lib/python3.10/site-packages/nemo/utils/trt_utils.pybuild_engine   s4    
r-   )NFFNr   FN)tensorrtr   polygraphy.backend.trtr   r   r   r   r   HAVE_TRTImportErrorModuleNotFoundErrorr-   r   r   r   r,   <module>   s   	