
    <Цi                        S SK Jr  S SKJrJrJrJr  S SKrS SKrS SK	r	S SK
Jr  S\S\\   4S jrS\R                  R                  4S	 jrS
\S\\\\   4   4S jrS rS rSSS.S\4S jjr\S 5       rS\4S jrS\4S jrS\4S jrg)    )contextmanager)AnyListTuplecastN)Timerfilenamereturnc           	         SnSnS n/ n[        U 5       nUR                  5       R                  U5      n[        U5       H  u  pxUS:X  a  M  UR	                  U5      n	U	S:X  a  M&  US U	 n
XgS-
     R                  5       S   nU
R                  SS9 Vs/ s H  o[        U5      S  PM     nnUR                  SR                  U5      5        M     S S S 5        U$ s  snf ! , (       d  f       U$ = f)	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/ai-image-ml/venv/lib/python3.13/site-packages/torch/utils/jit/log_extract.py
extract_irr&   	   s    E
C
CF	h1VVX^^E*
%j1LAAvnnS)G"}(7#AU#..04C+,<<<+FG+Fas3xy\+FEGMM"''%.) 2 
 M H 
 Ms   A?CC*&CC
C.inp_typec                     U R                  5       nU R                  5       nU R                  5       nU R                  5       nUc   eUc   eUc   eUc   e[        R
                  " XX4S9$ )N)sizestridedevicedtype)sizesstridesr+   r,   torchempty_strided)r'   r)   r*   r+   r,   s        r%   make_tensor_from_typer1      sw    >>DF__FNNEDTT    irc                    [         R                  R                  U SS9nUR                  5         / nUR	                  5        GH  n[        UR                  5       [         R                  R                  5      (       a(  UR                  [        R                  " SS5      5        Mc  [        UR                  5       [         R                  R                  5      (       a(  UR                  [        R                  " SS5      5        M  [        UR                  5       [         R                  R                  5      (       aO  [        [         R                  R                  UR                  5       5      nUR                  [        U5      5        GMH  [        UR                  5       [         R                  R                   5      (       a,  UR                  [        R                  " SS5      S:H  5        GM  [#        SUR                  5        35      e   [         R                  R%                  SU5      n[         R                  R'                  UR(                  5        XR4$ )	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   r1   BoolTypeNotImplementedError_create_function_from_graph!_jit_pass_erase_shape_informationgraph)r3   rH   r;   inp
tensorTypefuncs         r%   load_graph_and_inputsrL   )   s|   HHb>E	""$F||~chhj%(("4"455MM&..S12
EHH$4$455MM&..C01
EHH$7$788ehh11388:>JMM/
;<
EHH$5$566MM&..A.!34%(TUXU]U]U_T`&abb  88//	5AD	HH..tzz:>r2   c                 X    [        SXS.S9nUR                  5       nUR                  S-  $ )Nzfn(*inputs))fnr;   )stmtglobals  )r   blocked_autorangemedian)rN   r;   	test_runsttimess        r%   	time_cudarW   >   s.    =*GHA!E<<$r2   c                     [         R                  " 5       n[        U5       H  nU " U6   M
     [         R                  " 5       nXS-
  U-  S-  $ )NrQ   )timeperf_counterrange)rN   r;   rT   r"   _es         r%   time_cpur^   C   sF    A9
F AEY%%r2   
      )warmup_runsrT   c                $   [        U 5      u  pE[        U5       H  nU" U6   M
     S nU H=  n[        U[        R                  5      (       d  M$  UR
                  R                  S:H  n  O   Uc   eU(       a  [        XAU5      nU$ [        XAU5      nU$ )Ncpu)	rL   r[   r<   r/   Tensorr+   r=   r^   rW   )	r3   r;   ra   rT   rH   r\   is_cpuinputouts	            r%   run_testrh   J   s    $R(HE;v   FeU\\**\\&&%/F  06(5)
,CJ =FeU^<_CJr2   c               /      #    [         R                  R                  S5      n S v   [         R                  R                  U5        g ! [         R                  R                  U5        f = f7f)NF)r/   r8   _get_graph_executor_optimize)argskwargsold_optimizes      r%   no_fuserrn   Y   sE     8888?L<--l;--l;s    A+A  A+!A((A+c                 b    [        5          [        X5      sS S S 5        $ ! , (       d  f       g = f)N)rn   rh   r3   r;   s     r%   run_baseline_no_fusionrq   a   s    	# 
s    
.c                     U(       a  S/OS/n[         R                  R                  U5      n[         R                  R                  S5         [	        X5      sS S S 5        [         R                  R                  U5        $ ! , (       d  f       O= f [         R                  R                  U5        g ! [         R                  R                  W5        f = f)N)DYNAMICr_   )STATICr_   fuser1)r/   jitset_fusion_strategyfuserrh   )r3   r;   dynamicstrat	old_strats        r%   run_nncr|   f   s    1%,!>2BII11%8	YY__X&B' '& 			%%i0 '&& 			%%i0		%%i0s$   AB3 B	B3 
BB3 3!Cc                     [         R                  R                  S5         [        X5      sS S S 5        $ ! , (       d  f       g = f)Nfuser2)r/   rv   rx   rh   rp   s     r%   run_nvfuserr   o   s&    		"# 
#	"	"s	   5
A)
contextlibr   typingr   r   r   r   r?   r/   rY   torch.utils.benchmarkr   strr&   r8   rC   r1   rL   rW   r^   floatrh   rn   rq   r|   r    r2   r%   <module>r      s    % ) )    ' c *	UEHH$7$7 	Uc eCcN&; *
& )+b U  < <$% $
1E 1$u $r2   