Ë
    ëÓ^jä  ã                   ó¦   — d Z ddlZddlZddlZddlZddlmZ ddlmZ  e«       Z	dde
deddfd	„Zd
e
dej                  ddfd„Zde
dee
ef   fd„Zy)z?TensorRT export helpers: trtexec invocation and output parsing.é    N)ÚAny)Ú
get_loggerÚcommandÚdry_runÚreturnz subprocess.CompletedProcess[str]c                 ó`  — |r0t         j                  dt        j                  dd«      › d| › d�«       	 t	        j
                  | dddd¬«      }|S # t        j                  $ rJ}t         j                  d|j                  › �«       t         j                  d	|j                  › �«       ‚ d }~ww xY w)
Nz
CUDA_VISIBLE_DEVICES=ÚCUDA_VISIBLE_DEVICESÚ ú ú
T)ÚshellÚcapture_outputÚtextÚcheckzCommand failed with exit code zError output:
)
ÚloggerÚinfoÚosÚgetenvÚ
subprocessÚrunÚCalledProcessErrorÚerrorÚ
returncodeÚstderr)r   r   ÚresultÚes       úb/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/rfdetr/export/_tensorrt.pyÚrun_command_shellr      sœ   € ÙÜ�‰Ð-¬b¯i©iÐ8NÐPRÓ.SÐ-TÐTUÐV]ÐU^Ð^`ÐaÔbðÜ—‘ ¨tÀDÈtÐ[_Ô`ˆØˆøÜ×(Ñ(ò Ü�‰Ð5°a·l±l°^ÐDÔEÜ�‰� q§x¡x jÐ1Ô2Øûðús   ´A ÁB-Á#AB(Â(B-Úonnx_dirÚargsc                 óz  — | j                  dd«      }dj                  dd| › �d|› �dd|j                  rd	nd
› g«      }|j                  rD| j                  dd«      }dj                  dd|› �dd|g«      }t        j                  d|› �«       n|}t        ||j                  «      }t        |j                  «       y )Nz.onnxz.enginer   Útrtexecz--onnx=z--saveEngine=z#--memPoolSize=workspace:4096 --fp16zF--useCudaGraph --useSpinWait --warmUp=500 --avgRuns=1000 --duration=10z	--verboser
   z	.nsys-repznsys profilez	--output=z--trace=cuda,nvtxz--force-overwrite truezProfile data will be saved to: )
ÚreplaceÚjoinÚverboseÚprofiler   r   r   r   Úparse_trtexec_outputÚstdout)r   r    Ú
engine_dirÚtrt_commandÚprofile_dirr   Úoutputs          r   r"   r"   "   sÌ   € Ø×!Ñ! '¨9Ó5€Jð —(‘(àØ�h�ZÐ Ø˜J˜<Ð(Ø1ØTØ"Ÿlšl‰{°Ð3ð	
ó	€Kð ‡|‚|Ø×&Ñ& w°Ó<ˆà—(‘(Ø˜y¨¨Ð6Ð8KÐMeÐgrÐsó
ˆô 	�‰Ð5°k°]ÐCÕDàˆä˜w¨¯©Ó5€FÜ˜Ÿ™Õ'ó    Úoutput_textc           
      óŒ  — t         j                  | «       d}d}d}d}d}i }t        j                  || «      x}rv|j	                  t        |j                  d«      «      t        |j                  d«      «      t        |j                  d«      «      t        |j                  d	«      «      d
œ«       t        j                  || «      x}r]|j	                  t        |j                  d«      «      t        |j                  d«      «      t        |j                  d«      «      dœ«       t        j                  || «      x}r]|j	                  t        |j                  d«      «      t        |j                  d«      «      t        |j                  d«      «      dœ«       t        j                  || «      x}r]|j	                  t        |j                  d«      «      t        |j                  d«      «      t        |j                  d«      «      dœ«       t        j                  || «      x}rt        |j                  d«      «      |d<   |S )NzhGPU Compute Time: min = (\d+\.\d+) ms, max = (\d+\.\d+) ms, mean = (\d+\.\d+) ms, median = (\d+\.\d+) msz\Host to Device Transfer Time: min = (\d+\.\d+) ms, max = (\d+\.\d+) ms, mean = (\d+\.\d+) msz\Device to Host Transfer Time: min = (\d+\.\d+) ms, max = (\d+\.\d+) ms, mean = (\d+\.\d+) mszGLatency: min = (\d+\.\d+) ms, max = (\d+\.\d+) ms, mean = (\d+\.\d+) mszThroughput: (\d+\.\d+) qpsé   é   é   é   )Úcompute_min_msÚcompute_max_msÚcompute_mean_msÚcompute_median_ms)Ú
h2d_min_msÚ
h2d_max_msÚh2d_mean_ms)Ú
d2h_min_msÚ
d2h_max_msÚd2h_mean_ms)Úlatency_min_msÚlatency_max_msÚlatency_mean_msÚthroughput_qps)r   r   ÚreÚsearchÚupdateÚfloatÚgroup)r.   Úgpu_compute_patternÚh2d_patternÚd2h_patternÚlatency_patternÚthroughput_patternÚstatsÚmatchs           r   r'   r'   ?   sá  € Ü
‡K�K�Ôð 	tð ð r€KØq€KØ`€OØ6Ðà€Eô —	‘	Ð-¨{Ó;Ð;€uÐ;Ø�‰ä"'¨¯©°A«Ó"7Ü"'¨¯©°A«Ó"7Ü#(¨¯©°Q«Ó#8Ü%*¨5¯;©;°q«>Ó%:ñ	ô	
ô —	‘	˜+ {Ó3Ð3€uÐ3Ø�‰ä# E§K¡K°£NÓ3Ü# E§K¡K°£NÓ3Ü$ U§[¡[°£^Ó4ñô	
ô —	‘	˜+ {Ó3Ð3€uÐ3Ø�‰ä# E§K¡K°£NÓ3Ü# E§K¡K°£NÓ3Ü$ U§[¡[°£^Ó4ñô	
ô —	‘	˜/¨;Ó7Ð7€uÐ7Ø�‰ä"'¨¯©°A«Ó"7Ü"'¨¯©°A«Ó"7Ü#(¨¯©°Q«Ó#8ñô	
ô —	‘	Ð,¨kÓ:Ð:€uÐ:Ü"'¨¯©°A«Ó"7ˆÐÑà€Lr-   )F)Ú__doc__Úargparser   rB   r   Útypingr   Úrfdetr.utilities.loggerr   r   ÚstrÚboolr   Ú	Namespacer"   Údictr'   © r-   r   ú<module>rW      sz   ðñ Fã Û 	Û 	Û Ý å .á	‹€ñ	˜sð 	¨Tð 	Ð>`ó 	ð(�cð ( ×!3Ñ!3ð (¸ó (ð:9 cð 9¨d°3¸°8©nô 9r-   