
    IЦi:                     V   % S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKJrJrJrJrJrJrJrJrJrJr  S SKJr  S SKrS SKJr  S SKJr  S SKJr  SSKJrJ r J!r!J"r"  SS	K#J$r$J%r%J&r&J'r'  SS
K(J)r)J*r*J+r+  SSK	J,r,  SSK-J.r.  Sr/\\	R`                     \1S'    S SK2r/\ Rh                  r4Sr5\Rl                  " \75      r8S\\Rr                     S\\Rr                     4S jr:S\;S\;4S jr<S r=S\R|                  R~                  S\S\S\S\\   4
S jr@S\S\A4S jrB\S\Rr                  S\Rr                  4S j5       rC\S\\\   \\S4   \\\4   4   S\D4S j5       rCS\S\\Rr                  \D4   4S jrCS\;4S  jrEScS\;S!\	R                  S"\;SS4S# jjrGS S$.S%\,S&\HS'\S(\S)\HS\\+   4S* jjrI " S+ S,5      rJ " S- S.5      rK " S/ S05      rL " S1 S25      rMS!\;S\;4S3 jrNS!\;S\;4S4 jrOS5\;S\;4S6 jrPS!\;S\;4S7 jrQ   SdS8\S9\S\4   S:\HS;\\H   S<\\H   S=\HSS4S> jjrRS?\R                  S\\Rr                     S\S\4   4S@ jrT  SeSA\DSB\DSC\ASD\DS\;4
SE jjrU\R                  SFS 4SG\\H   SH\\H   SI\R                  SJ\\;\R                  4   SK\HS\Rr                  4SL jjrY\" SM5      rZS\A4SN jr[S9\S\Z4   SO\S\S\Z4   4SP jr\SSQ SR.SS\]ST\;SU\;SO\SV\\;   SW\\S\4   /\S\4   4   S\]4SX jjr^S9\S\4   S\S\4   4SY jr_S9\S\4   S\S\4   4SZ jr`S9\S\4   S\S\4   4S[ jraS9\S\4   S\S\4   4S\ jrbS9\S\4   S\S\4   4S] jrcS9\S\4   S\S\4   4S^ jrdS9\S\4   S\S\4   4S_ jreS9\S\4   S\S\4   4S` jrfSfSa\ASS4Sb jjrgg! \3 a    Sr/ GNf = f)g    N)
AnyCallableDictListOptionaloverloadSequenceTupleTypeVarUnion)patch)fx)	aot_eager)OutputGraph   )config
eval_frameoptimize_assertreset)create_instructiondebug_checksis_generatortransform_code_object)CheckFunctionManager	CompileIdGuardedCode)DynamoFrameType)samenp   xreturnc                 x    U c  g U R                  5       R                  5       R                  U R                  5      $ N)detachclonerequires_grad_requires_gradr!   s    T/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/torch/_dynamo/testing.pyclone_mer+   7   s.    y88:,,Q__==    namec                 2    [         R                  " SSU 5      $ )Nz^_orig_mod[.] resub)r-   s    r*   remove_optimized_module_prefixr3   =       66"B--r,   c                    ^^^ SSK Jm  S mS mUUU4S jn[        R                  " USS9" U 5      " U0 UD6  TR                  T4$ )Nr   )InstructionTranslatorc                 T   > U mTR                  5       R                  R                  mU $ r$   )
current_txoutputregion_tracker)_gmargskwargsr6   gmr:   s      r*   extract_graph_backend8extract_graph_and_tracker.<locals>.extract_graph_backendG   s)     .99;BBQQ
r,   T)backend	fullgraph)torch._dynamo.symbolic_convertr6   torchcompilegraph)fnr<   r=   r?   r6   r>   r:   s       @@@r*   extract_graph_and_trackerrH   A   sD    D	BN 
MM/4@DdUfU88^##r,   model
predictionlossexample_inputsc                 @   / nUR                  U5        UR                  U5        0 n0 nU R                  5        Hk  u  px[        U [        R                  5      (       a  [        U5      nUn	UR                  n
UR                  c  [        R                  " U5      n
XUS-   '   XU'   Mm     UR                  U5        UR                  U5        0 nU R                  5        H3  u  p|[        U [        R                  5      (       a  [        U5      nXU'   M5     UR                  U5        U Ht  n[        U[        [        45      (       a  UR                  S U 5       5        M8  [        U[        R                  5      (       d  MY  UR                  UR                  5        Mv     U$ )Nz.gradc              3   |   #    U  H2  n[        U[        R                  5      (       d  M$  UR                  v   M4     g 7fr$   )
isinstancerD   Tensorgrad).0inps     r*   	<genexpr>"collect_results.<locals>.<genexpr>s   s#     Xw*S%,,:W8388ws   #<<)appendnamed_parametersrO   r   OptimizedModuler3   rQ   rD   
zeros_likenamed_bufferstuplelistextendrP   )rI   rJ   rK   rL   resultsgradsparamsr-   param
param_copyrQ   buffersbufferexamples                 r*   collect_resultsrf   R   sU    GNN:NN4 EF--/eZ77881$7D
zz::##E*D $dWn!t 0 NN5NN6G++-eZ77881$7D . NN7!gt}--NNXwXX'5<<00w||, " Nr,   outc                    [        U [        R                  5      (       a  U R                  $ [        U [        [
        45      (       a  [        S U  5       5      $ U c  g[        U [        5      (       a  g[        S[        U 5      5      e)Nc              3   8   #    U  H  n[        U5      v   M     g 7fr$   )requires_bwd_passrR   r!   s     r*   rT   $requires_bwd_pass.<locals>.<genexpr>~   s     5A$Q''   FDon't know how to reduce)
rO   rD   rP   r(   r\   r[   anyintNotImplementedErrortyperg   s    r*   rj   rj   z   sk    #u||$$   	C$	'	'5555		C		
8$s)
DDr,   c                     g r$    rs   s    r*   reduce_to_scalar_lossrv      s    r,   .c                     g r$   ru   rs   s    r*   rv   rv      s     r,   c                 ~   [        U [        R                  5      (       a!  U R                  5       U R	                  5       -  $ [        U [
        [        45      (       a  [        S U  5       5      [        U 5      -  $ [        U 5      R                  S;   a  [        U R                  5      $ [        U 5      R                  S:X  a  U R                  R                  5       $ [        U [        5      (       a:  [        S U R                  5        5       5      [        U R                  5       5      -  $ [!        S[        U 5      5      e)z/Reduce the output of a model to get scalar lossc              3   8   #    U  H  n[        U5      v   M     g 7fr$   rv   rk   s     r*   rT   (reduce_to_scalar_loss.<locals>.<genexpr>   s     9S(++Srm   )MaskedLMOutputSeq2SeqLMOutput!CausalLMOutputWithCrossAttentionsSquashedNormalc              3   8   #    U  H  n[        U5      v   M     g 7fr$   rz   )rR   values     r*   rT   r{      s     J\E(//\rm   rn   )rO   rD   rP   sumnumelr\   r[   lenrr   __name__rv   logitsmeandictvalueskeysrq   rs   s    r*   rv   rv      s    #u||$$wwy399;&&	C$	'	'9S99CHDD	c		   

 %SZZ00	c		/	/xx||~	C		JSZZ\JJSHHJN
 
 	
 8$s)
DDr,   c                      [         R                  R                  [         R                  R                  [        5      S5      n [         R                  R                  U 5      (       d  [         R                  " U 5        U $ )Nz../debug)ospathjoindirname__file__existsmkdir)r   s    r*   	debug_dirr      sF    77<<1:>D77>>$
Kr,   codeextrac           	      X   [        [        R                  R                  [	        5       U 5      S5       nUR                  [        R                  " U5      R                  5        S[        R                  " U5      R                  5        SU S35        S S S 5        g ! , (       d  f       g = f)Nwz


)	openr   r   r   r   writedisBytecodeinfo)r-   r   r   fds       r*   
debug_dumpr      st    	bggll9;-s	3r
||D!&&()cll4.@.D.D.F-GtE7RTU	
 
4	3	3s   AB
B))skipframe
cache_sizehooks_r   c                r   S[         [           S[        SS4S jn[        U R                  5      (       a  g[	        U R                  5        [        U R                  U5      n[        0 SSSSSS0[        5       [        5       U R                  / S	9
n[        U[        U5      R                  [        SS5      5      $ )
zused to debug jump updatesinstructionscode_optionsr"   Nc                 p    U R                  S[        S5      5        U R                  S[        S5      5        g )Nr   NOP)insertr   )r   r   s     r*   insert_nops&debug_insert_nops.<locals>.insert_nops   s.    A1%89A1%89r,   F_idr   )
r   compiler_fnroot_txexportexport_constraintsframe_statelocal_scopeglobal_scopef_codetorch_function_mode_stack)r   r   r   r   r   r   r   localsglobalsr   r   guard_managerr   )r   r   r   r   r   r   r   rF   s           r*   debug_insert_nopsr      s    
:$s) :3 :4 : ELL!! {;DAJHY||"$E t1%8FF	RSUVXXr,   c                       \ rS rSrSS jrS\R                  R                  S\\R                     S\
S\4   4S jrSS	 jrS
rg)CompileCounter   r"   Nc                      SU l         SU l        g Nr   frame_countop_countselfs    r*   __init__CompileCounter.__init__       r,   r>   rL   .c                     U =R                   S-  sl         UR                  R                   H*  nSUR                  ;   d  M  U =R                  S-  sl        M,     UR
                  $ )Nr   call)r   rF   nodesopr   forward)r   r>   rL   nodes       r*   __call__CompileCounter.__call__   sM     	AHHNND " # zzr,   c                      SU l         SU l        g r   r   r   s    r*   clearCompileCounter.clear   r   r,   r   r"   N)r   
__module____qualname____firstlineno__r   rD   r   GraphModuler   rP   r   r   r   r   __static_attributes__ru   r,   r*   r   r      sE    ((&&8<U\\8J	#s(	r,   r   c                       \ rS rSrS\SS4S jrS\R                  R                  S\	\R                     S\S\4   4S	 jrS
rg)CompileCounterWithBackend   rA   r"   Nc                 :    SU l         SU l        Xl        / U l        g r   )r   r   rA   graphs)r   rA   s     r*   r   "CompileCounterWithBackend.__init__   s    24r,   r>   rL   .c                 &   SSK Jn  U =R                  S-  sl        UR                  R                   H*  nSUR
                  ;   d  M  U =R                  S-  sl        M,     U R                  R                  U5        U" U R                  5      " X5      $ )Nr   )lookup_backendr   )
backends.registryr   r   rF   r   r   r   r   rV   rA   )r   r>   rL   r   r   s        r*   r   "CompileCounterWithBackend.__call__   sl     	6AHHNND " # 	2dll+B??r,   )rA   r   r   r   )r   r   r   r   strr   rD   r   r   r   rP   r   r   r   r   ru   r,   r*   r   r      sR    5 5 5
@((&&
@8<U\\8J
@	#s(	
@r,   r   c                       \ rS rSrS
S jrS\R                  R                  S\\R                     S\
S\4   4S jrS	rg)EagerAndRecordGraphs   r"   Nc                     / U l         g r$   r   r   s    r*   r   EagerAndRecordGraphs.__init__   s	    24r,   r>   rL   .c                 P    U R                   R                  U5        UR                  $ r$   )r   rV   r   )r   r>   rL   s      r*   r   EagerAndRecordGraphs.__call__  s      	2zzr,   r   r   r   r   r   r   r   rD   r   r   r   rP   r   r   r   r   ru   r,   r*   r   r      s@    5((&&8<U\\8J	#s(	r,   r   c                       \ rS rSrS
S jrS\R                  R                  S\\R                     S\
S\4   4S jrS	rg)AotEagerAndRecordGraphsi	  r"   Nc                 .    / U l         / U l        / U l        g r$   )r   	fw_graphs	bw_graphsr   s    r*   r    AotEagerAndRecordGraphs.__init__
  s    245757r,   r>   rL   .c                 r  ^  T R                   R                  U5        S[        R                  R                  S[
        [        R                     S[        S[        4   4U 4S jjnS[        R                  R                  S[
        [        R                     S[        S[        4   4U 4S jjn[        UUUUS9$ )Nr>   rL   r"   .c                 R   > TR                   R                  U 5        U R                  $ r$   )r   rV   r   r>   rL   r   s     r*   fw_compiler5AotEagerAndRecordGraphs.__call__.<locals>.fw_compiler  !     NN!!"%::r,   c                 R   > TR                   R                  U 5        U R                  $ r$   )r   rV   r   r   s     r*   bw_compiler5AotEagerAndRecordGraphs.__call__.<locals>.bw_compiler  r   r,   )r   r   )
r   rV   rD   r   r   r   rP   r   r   r   )r   r>   rL   r   r   s   `    r*   r    AotEagerAndRecordGraphs.__call__  s     	2	$$	6:5<<6H	c3h		$$	6:5<<6H	c3h	 ##	
 	
r,   )r   r   r   r   r   ru   r,   r*   r   r   	  s@    8

((&&
8<U\\8J
	#s(	
r,   r   c                 2    [         R                  " SSU 5      $ )Nz(?m)^ *#.*\n?r/   r0   )r   s    r*   strip_commentr   (  r4   r,   c                     SR                  U R                  S5       Vs/ s H  oR                  5       PM     sn5      $ s  snf )Nr   )r   splitrstrip)r   lines     r*   remove_trailing_spacer  ,  s2    99

40@A0@kkm0@ABBAs   ?gm_strc                 *    [        [        U 5      5      $ r$   )r  r   )r  s    r*   normalize_gmr  0  s     !v!677r,   c                 6    [         R                  " SSU 5      nU$ )z%
Normalize code: remove empty lines.
z[\r\n]+r   r0   )r   normal_codes     r*   empty_line_normalizerr	  6  s     &&T40Kr,   r   rG   nargsexpected_opsexpected_ops_dynamicexpected_frame_countc                    [         R                  (       d  Ub  Un[        5       n[        U5       Vs/ s H  n[        R
                  " SS5      PM     nn[        U5       Vs/ s H  n[        R
                  " SS5      PM     n	nU" U6 n
U" U	6 n[        5         [        U5      " U5      nU" U6 nU" U	6 nU" U6 nU" U	6 n[        5         U R                  [        X5      5        U R                  [        X5      5        U R                  [        X5      5        U R                  [        UU5      5        U R                  UR                  U5        Ub  U R                  UR                  U5        g g s  snf s  snf )N
   )r   assume_static_by_defaultr   rangerD   randnr   r   
assertTruer   assertEqualr   r   )r   rG   r
  r  r  r  actualr   args1args2correct1correct2opt_fnval1aval2aval1bval2bs                    r*   standard_testr  >  s9    **/C/O+F*/,7,QU[[R ,E7*/,7,QU[[R ,E75zH5zH	GV$R(FENEENEENEENE	GOOD)*OOD)*OOD)*OOD)*V'')=>,7  ! 87s   !E."!E3r>   c                     U R                   $ r$   )r   )r>   rL   s     r*   dummy_fx_compiler!  _  s     ::r,   speeduppvalue
is_correctpvalue_thresholdc                 :    U(       d  gX:  a  U S S3$ U S SUS 3$ )NERRORz.3fzx SAMEzx p=z.2fru   )r"  r#  r$  r%  s       r*   format_speedupr(  e  s4      #f%%c]$vcl++r,   cpusizestridedtypedevice
extra_sizec                 r   [        S [        X5       5       5      S-   U-   nUR                  (       aY  UR                  S:X  a3   [        R
                  " U[        R                  US9R                  US9nO,[        R
                  " XRUS9nO[        R                  " U/X#S9n[        R                  " X`U5      $ )Nc              3   6   #    U  H  u  pUS -
  U-  v   M     g7f)r   Nru   )rR   shaper+  s      r*   rT   rand_strided.<locals>.<genexpr>z  s     H6G]UUQY& 6Gs   r   )r,  r-  )r,  )r*  r,  r-  )
r   zipis_floating_pointitemsizerD   r  float16tozeros
as_strided)r*  r+  r,  r-  r.  needed_sizerd   s          r*   rand_stridedr;  r  s     	Hc$6GHH
	
	 
 >>Q [[EMM&QTT U F [[&IF;-uLF&11r,   _Tc                  ,    [         R                  (       + $ r$   )r   r  ru   r,   r*   check_dynamic_shape_capturer>    s    ....r,   patchesc                 r   ^ ^ [         R                  " T 5      S[        S[        S[        4U U4S jj5       nU$ )Nr<   r=   r"   c            	         > [         R                  " 5        nT H,  u  p4nUR                  [        R                  " X4U5      5        M.     T" U 0 UD6sS S S 5        $ ! , (       d  f       g = fr$   )
contextlib	ExitStackenter_contextr   object)r<   r=   stackmoduleattrvalrG   r?  s         r*   _fn"_make_fn_with_patches.<locals>._fn  sT    !!#u%,!c##ELLs$CD &- t&v&	 $##s   :A
A))	functoolswrapsr   r<  )rG   r?  rJ  s   `` r*   _make_fn_with_patchesrN    s:    __R'3 '# '" ' ' Jr,   c                     U $ r$   ru   r)   s    r*   <lambda>rP    s    ar,   )
xfail_prop	decoratorcls
cls_prefix	fn_suffixrQ  rR  c          	         [        U U R                   3U R                  0 5      nUR                  Ul        [	        U 5       H  nUR                  S5      (       a  [        X5      n[        U5      (       d  [        Xg[        X5      5        MK  U U 3n	[        U/UQ76 n
Xl        Ub&  [        X5      (       a  [        R                  " U
5      n
[        XiU" U
5      5        M  [        Xg5      (       a  M  [        Xg[        X5      5        M     U$ )Ntest_)rr   r   	__bases__r   dir
startswithgetattrcallablesetattrrN  hasattrunittestexpectedFailure)rS  rT  rU  rQ  rR  r?  DummyTestClassr-   rG   new_namenew_fns              r*   make_test_cls_with_patchesrd    s     ZL7KN"0"9"9NC??7###BB<<gc.@A	{+H*288F&O%'"*A*A!11&9Ni.?@..N'#*<=   r,   c                 Z    [         R                  S:  a  U $ [        R                  " U 5      $ )N)r       sysversion_infor_  r   rG   s    r*   skipIfNotPy311rk    s$    
7"	==r,   c                 f    [         R                  S:  a  U $ [        R                  " S5      " U 5      $ )Nr       zRequires Python 3.12+rg  rj  s    r*   skipIfNotPy312ro    s*    
7"	==01"55r,   c                 Z    [         R                  S:  a  [        R                  " U 5      $ U $ )Nrm  )rh  ri  r_  r`  rj  s    r*   xfailIfPy312rq    s&    
7"''++Ir,   c                 f    [         R                  S:  a  [        R                  " S5      " U 5      $ U $ )Nrm  zNot supported in Python 3.12+rg  rj  s    r*   skipIfPy312rs    s*    
7"}}<=bAAIr,   c                 f    [         R                  S:  a  U $ [        R                  " S5      " U 5      $ )N)r    r  zRequires Python 3.10+rg  rj  s    r*   requiresPy310ru    s*    
7"	}}45b99r,   c                     SU l         U $ NT)_expected_failure_dynamicrj  s    r*   expectedFailureDynamicry    s    #'B Ir,   c                     SU l         U $ rw  )!_expected_failure_codegen_dynamicrj  s    r*   expectedFailureCodegenDynamicr|        +/B(Ir,   c                     SU l         U $ rw  )!_expected_failure_dynamic_wrapperrj  s    r*   expectedFailureDynamicWrapperr    r}  r,   use_xlac                 $   [         R                  " S5        [        R                  " S5        [        (       a  [        R                  R                  S5        U (       a3  SS KJs  Jn  UR                  S[        UR                  5       5      5        g g )Ni9  r   )rD   manual_seedrandomseedr   torch_xla.core.xla_modelcore	xla_modelset_rng_stater   
xla_device)r  xms     r*   reset_rng_stater    sZ    	d
KK	r
		t--
s2==?34 r,   )r/   )NNr   )Tg?)F)hrB  r   rL  loggingos.pathr   r  r1   rh  typesr_  typingr   r   r   r   r   r   r	   r
   r   r   unittest.mockr   rD   r    torch._dynamo.backends.debuggingr   torch._dynamo.output_graphr   r/   r   r   r   r   bytecode_transformationr   r   r   r   guardsr   r   r   r   utilsr   r   
ModuleType__annotations__numpyModuleNotFoundErrorunsupportedthree	getLoggerr   logrP   r+   r   r3   rH   nnModulerf   boolrj   rv   floatr   CodeTyper   rp   r   r   r   r   r   r   r  r  r	  r  r   r!  r(  float32r,  r-  r;  r<  r>  rN  rr   rd  rk  ro  rq  rs  ru  ry  r|  r  r  ru   r,   r*   <module>r     s    
     	 
         6 2 8 8  A @ "  "&HU %
 $$	!>& >8ELL+A >. . .$"%88??%(+%36%HK%	#Y%P	E3 	E4 	E 
u||   
 
	tCy%S/4S>9	:
 
Es EuU\\5-@'A E,3 
S 
 
s 
D 
 QRYY(+Y47Y<?YJMYkY> &@ @, 
 
>. . .C C C8 8 8   #'*. !8
8c8 8 3-	8
 #3-8 8 
8B
(,U\\(:c3h !	
,
,
, 
, 	
,
 	
,  ',2
3-2SM2 ;;2 #u||#$	2
 2 \\28 T]/T /
	hsBw/ 	3 	8CQSGCT 	" !%DO	  	
  #s(+,hsCx.@@A 
>xS) hsCx.@ 6xS) 6hsCx.@ 6Xc3h' HS#X,> HS#X& 8CH+= :hsCx( :Xc3h-? :xS1 hsCx6H hsCx&8 Xc3h=O hsCx&8 Xc3h=O 
5T 5d 5M  	Bs   !N N('N(