Ë
    S²jb  ã                   ó  — d dl mZ d dlmZmZ d dlZd dlZd dlZd dlm	Z	 de
dee
   fd„Zdej                  j                  fd	„Zd
e
deeee   f   fd„Zd„ Zd„ Zdddœdefd„Zed„ «       Zdefd„Zdefd„Zdefd„Zy)é    )Úcontextmanager)ÚAnyÚcastN)ÚTimerÚfilenameÚreturnc           	      óÔ  — d}d}d }g }t        | «      5 }|j                  «       j                  |«      }t        |«      D ]‹  \  }}|dk(  rŒ|j	                  |«      }	|	dk(  rŒ#|d |	 }
||dz
     j                  «       d   }|
j                  d¬«      D �cg c]  }|t        |«      d  ‘Œ }}|j                  dj                  |«      «       Œ� 	 d d d «       |S c c}w # 1 sw Y   |S xY w)	Nz<GRAPH_EXPORT>z</GRAPH_EXPORT>r   éÿÿÿÿé   T)ÚkeependsÚ )	ÚopenÚreadÚsplitÚ	enumerateÚfindÚ
splitlinesÚlenÚappendÚjoin)r   ÚBEGINÚENDÚpfxÚgraphsÚfÚ
split_strsÚiÚ	split_strÚend_locÚsÚxÚliness                úZ/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/utils/jit/log_extract.pyÚ
extract_irr$   	   sõ   € Ø€EØ
€CØ
€CØ€FÜ	ˆh‹ð *˜1Ø—V‘V“X—^‘^ EÓ*ˆ
Ü% jÓ1ò 		*‰LˆAˆyØ�AŠvØØ—n‘n SÓ)ˆGØ˜"Š}ØØ˜(˜7Ð#ˆAØ˜Q ™UÑ#×.Ñ.Ó0°Ñ4ˆCØ+,¯<©<À¨<Ó+FÖG a�Q”s˜3“x�y’\ÐGˆEÐGØ�M‰M˜"Ÿ'™' %›.Õ)ñ		*÷*ð €Mùò H÷*ð €Mús   ”B CÂCÂ)$CÃCÃC'Úinp_typec                 ó  — | j                  «       }| j                  «       }| j                  «       }| j                  «       }|€t	        d«      ‚|€t	        d«      ‚|€t	        d«      ‚|€t	        d«      ‚t        j                  ||||¬«      S )NzFmake_tensor_from_type: 'size' is None (inp_type.sizes() returned None)zJmake_tensor_from_type: 'stride' is None (inp_type.strides() returned None)zImake_tensor_from_type: 'device' is None (inp_type.device() returned None)zGmake_tensor_from_type: 'dtype' is None (inp_type.dtype() returned None))ÚsizeÚstrideÚdeviceÚdtype)ÚsizesÚstridesr)   r*   ÚAssertionErrorÚtorchÚempty_strided)r%   r'   r(   r)   r*   s        r#   Úmake_tensor_from_typer0      s�   € Ø�>‰>Ó€DØ×ÑÓ€FØ�_‰_Ó€FØ�N‰NÓ€EØ€|ÜÐeÓfÐfØ€~ÜÐiÓjÐjØ€~ÜÐhÓiÐiØ€}ÜÐfÓgÐgÜ×Ñ D°ÀÈeÔTÐTó    Úirc                 ó|  — t         j                  j                  | d¬«      }|j                  «        g }|j	                  «       D �]©  }t        |j                  «       t         j                  j                  «      r&|j                  t        j                  dd«      «       Œ\t        |j                  «       t         j                  j                  «      r&|j                  t        j                  dd«      «       Œ´t        |j                  «       t         j                  j                  «      rNt        t         j                  j                  |j                  «       «      }|j                  t        |«      «       �Œ4t        |j                  «       t         j                  j                   «      r*|j                  t        j                  dd«      dk(  «       �Œ�t#        d|j                  «       › �«      ‚ t         j                  j%                  d|«      }t         j                  j'                  |j(                  «       ||fS )	NT)Úparse_tensor_constantsgš™™™™™¹?éd   r   r   z,A default value is not implemented for type Úforward)r.   Ú_CÚparse_irÚmakeMultiOutputIntoTupleÚinputsÚ
isinstanceÚtypeÚ	FloatTyper   ÚrandomÚuniformÚIntTypeÚrandintÚ
TensorTyper   r0   ÚBoolTypeÚNotImplementedErrorÚ_create_function_from_graphÚ!_jit_pass_erase_shape_informationÚgraph)r2   rG   r:   ÚinpÚ
tensorTypeÚfuncs         r#   Úload_graph_and_inputsrK   -   sy  € Ü�H‰H×Ñ˜b¸ÐÓ>€EØ	×"Ñ"Ô$Ø€FØ�|‰|‹~ó cˆÜ�c—h‘h“j¤%§(¡(×"4Ñ"4Ô5Ø�M‰Mœ&Ÿ.™.¨¨SÓ1Õ2Ü˜Ÿ™›
¤E§H¡H×$4Ñ$4Ô5Ø�M‰Mœ&Ÿ.™.¨¨CÓ0Õ1Ü˜Ÿ™›
¤E§H¡H×$7Ñ$7Ô8ÜœeŸh™h×1Ñ1°3·8±8³:Ó>ˆJØ�M‰MÔ/°
Ó;Ö<Ü˜Ÿ™›
¤E§H¡H×$5Ñ$5Ô6Ø�M‰Mœ&Ÿ.™.¨¨AÓ.°!Ñ3Ö4ä%Ð(TÐUX×U]ÑU]ÓU_ÐT`Ð&aÓbÐbðcô �8‰8×/Ñ/°	¸5ÓA€DÜ	‡H�H×.Ñ.¨t¯z©zÔ:Ø�&ˆ>Ðr1   c                 ó`   — t        d| |dœ¬«      }|j                  «       }|j                  dz  S )Nzfn(*inputs))Úfnr:   )ÚstmtÚglobalséè  )r   Úblocked_autorangeÚmedian)rM   r:   Ú	test_runsÚtÚtimess        r#   Ú	time_cudarV   B   s0   € Ü�=°ÀÑ*GÔH€AØ×ÑÓ!€EØ�<‰<˜$ÑÐr1   c                 ó’   — t        j                  «       }t        |«      D ]  } | |Ž  Œ	 t        j                  «       }||z
  |z  dz  S )NrP   )ÚtimeÚperf_counterÚrange)rM   r:   rS   r    Ú_Úes         r#   Útime_cpur]   G   sM   € Ü×ÑÓ€AÜ�9Óò ˆÙ
ˆFŠðä×ÑÓ€AØ�‰E�YÑ Ñ%Ð%r1   é
   é   )Úwarmup_runsrS   c                ó  — t        | «      \  }}t        |«      D ]  } ||Ž  Œ	 d }|D ]7  }t        |t        j                  «      sŒ|j
                  j                  dk(  } n |€t        d«      ‚|rt        |||«      }|S t        |||«      }|S )NÚcpuzNo tensor found in inputs)
rK   rZ   r;   r.   ÚTensorr)   r<   r-   r]   rV   )	r2   r:   r`   rS   rG   r[   Úis_cpuÚinputÚouts	            r#   Úrun_testrg   N   s¥   € Ü$ RÓ(�H€Eˆ1Ü�;Óò ˆÙˆvŠðð €FØò ˆÜ�eœUŸ\™\Õ*Ø—\‘\×&Ñ&¨%Ñ/ˆFÙðð €~ÜÐ8Ó9Ð9á06Œ(�5˜& )Ó
,€CØ€Jô =FÀeÈVÐU^Ó<_€CØ€Jr1   c               /   óÚ   K  — t         j                  j                  d«      }	 d –— t         j                  j                  |«       y # t         j                  j                  |«       w xY w­w)NF)r.   r7   Ú_get_graph_executor_optimize)ÚargsÚkwargsÚold_optimizes      r#   Úno_fuserrm   ^   sF   è ø€ ä—8‘8×8Ñ8¸Ó?€Lð<Ûä�‰×-Ñ-¨lÕ;øŒ�‰×-Ñ-¨lÕ;üs   ‚ A+£A § A+Á!A(Á(A+c                 óZ   — t        «       5  t        | |«      cd d d «       S # 1 sw Y   y xY w)N)rm   rg   ©r2   r:   s     r#   Úrun_baseline_no_fusionrp   f   s&   € Ü	‹ñ $Ü˜˜FÓ#÷$÷ $ò $ús   ‹!¡*c                 óœ  — 	 |rdgndg}t         j                  j                  |«      }t         j                  j                  d«      5  t	        | |«      cd d d «       t         j                  j                  |«       S # 1 sw Y   nxY w	 t         j                  j                  |«       y # t         j                  j                  «       w xY w)N)ÚDYNAMICr^   )ÚSTATICr^   Úfuser1)r.   ÚjitÚset_fusion_strategyÚfuserrg   )r2   r:   ÚdynamicÚstratÚ	old_strats        r#   Úrun_nncr{   k   sž   € ð1Ù%,�Ñ!°>Ð2BˆÜ—I‘I×1Ñ1°%Ó8ˆ	Ü�Y‰Y�_‰_˜XÓ&ñ 	(Ü˜B Ó'÷	(ð 	(ô 	�	‰	×%Ñ% iÕ0÷	(ð 	(úð 	(ô 	�	‰	×%Ñ% iÕ0øŒ�	‰	×%Ñ% iÕ0ús$   ‚AB* ÁA=Á	B* Á=BÂB* Â*!Cc                 ó„   — t         j                  j                  d«      5  t        | |«      cd d d «       S # 1 sw Y   y xY w)NÚfuser2)r.   ru   rw   rg   ro   s     r#   Úrun_nvfuserr~   t   s1   € Ü	�‰�‰˜Ó	"ñ $Ü˜˜FÓ#÷$÷ $ò $ús    6¶?)Ú
contextlibr   Útypingr   r   r>   r.   rX   Útorch.utils.benchmarkr   ÚstrÚlistr$   r7   rB   r0   ÚtuplerK   rV   r]   Úfloatrg   rm   rp   r{   r~   © r1   r#   ú<module>r‡      s»   ðå %ß Û Û Û Ý 'ð˜ð   c¡ó ð*U E§H¡H×$7Ñ$7ó Uð˜cð  e¨C°°c±¨NÑ&;ó ò*ò
&ð )+°bò ¸Uó ð  ñ<ó ð<ð$¨%ó $ð
1 Eó 1ð$˜uô $r1   