
    JTh                        S SK Jr  S SK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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                S/var/www/auris/envauris/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_typer/      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   r/   BoolTypeNotImplementedError_create_function_from_graph!_jit_pass_erase_shape_informationgraph)r1   rF   r9   inp
tensorTypefuncs         r#   load_graph_and_inputsrJ   )   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:>r0   c                 X    [        SXS.S9nUR                  5       nUR                  S-  $ )Nzfn(*inputs))fnr9   )stmtglobals  )r   blocked_autorangemedian)rL   r9   	test_runsttimess        r#   	time_cudarU   >   s.    =*GHA!E<<$r0   c                     [         R                  " 5       n[        U5       H  nU " U6   M
     [         R                  " 5       nXS-
  U-  S-  $ )NrO   )timeperf_counterrange)rL   r9   rR   r    _es         r#   time_cpur\   C   sF    A9
F AEY%%r0   
      )warmup_runsrR   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)	rJ   rY   r:   r-   Tensorr)   r;   r\   rU   )	r1   r9   r_   rR   rF   rZ   is_cpuinputouts	            r#   run_testrf   J   s    $R(HE;v   FeU\\**\\&&%/F  06(5)
,CJ =FeU^<_CJr0   c               /      #    [         R                  R                  S5      n S v   [         R                  R                  U5        g ! [         R                  R                  U5        f = f7f)NF)r-   r6   _get_graph_executor_optimize)argskwargsold_optimizes      r#   no_fuserrl   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)rl   rf   r1   r9   s     r#   run_baseline_no_fusionro   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fuserrf   )r1   r9   dynamicstrat	old_strats        r#   run_nncrz   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-   rt   rv   rf   rn   s     r#   run_nvfuserr}   o   s&    		"# 
#	"	"s	   5
A)
contextlibr   typingr   r   r=   r-   rW   torch.utils.benchmarkr   strlistr$   r6   rA   r/   tuplerJ   rU   r\   floatrf   rl   ro   rz   r}    r0   r#   <module>r      s    %     ' c *	UEHH$7$7 	Uc eCcN&; *
& )+b U  < <$% $
1E 1$u $r0   