
    sh+                        S SK r S SKrS SKrS SKJr  S SKJrJrJr  S SK	J
r
  S SKrS SKrS SKJr  SSKJr  \R"                  " \5      rS\S	\S
\4S jrS\S
\4S jrS\S\S\S
\\\\\4         4S jrS
\\\R6                  4   4S jrS
\\S4   4S jrS\S\R@                  S
\\\4   4S jr!S\S\\R@                     S
\\\4   4S jr"S\S\S
\\\4   4S jr#S\S
\\\4   4S jr$S\R6                  S
\\\4   4S jr%S\RL                  S
\\\4   4S jr'S\RP                  S
\\\4   4S jr)SSSSS.S\S\S\S\S\S\4   S \\   S!\\\4   S"\\\\4      S#\\\\4      S$\S%\S
\4S& jjr*g)'    N)Path)AnyCallableOptional)mock)is_cpu_device   )	cache_dir	namespacedevicereturnc                 :    [        [        5       5      S-  U -  U-  $ )N
aoti_eager)r   r
   )r   r   s     n/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/torch/_inductor/aoti_eager.pyaoti_eager_cache_dirr      s    	|+i7&@@    op_func_name_with_overloadc                 ~    SSK JnJn  SSKJn  U  S3nU" 5       nU" [
        R                  R                  XT5      US9$ )Nr   )get_lock_dirLOCK_TIMEOUT)FileLockz.lock)timeout)torch._inductor.codecacher   r   torch.utils._filelockr   ospathjoin)r   r   r   r   op_conf_lock_filelock_dirs         r   aoti_eager_op_conf_lockr       s7    D.56e<~HBGGLL=|TTr   nsdevice_typec                    [        X5      nX1 S3-  nUR                  5       (       d  / $  [        U5         [        U5       n[        R
                  " U5      nU GH  nX7S   -  nUR                  5       US'   UR                  5       (       d  / s  sS S S 5        sS S S 5        $ US    H  n	U	R                  S5      (       a  [        S5      eSU	;   a  U	S   S:X  a  SU	S	'   S
 H0  n
X;   d  M
  [        [        X   R                  S5      S   5      X'   M2     SU	;   a(  [        [        U	S   R                  S5      S   5      U	S'   SU	;   d  M  [        [        U	S   R                  S5      S   5      U	S'   M     GM!     UsS S S 5        sS S S 5        $ ! , (       d  f       O= f S S S 5        g ! , (       d  f       g = f! [         a&  nSU 3n[        R                  U5        / s S nA$ S nAff = f)N.jsonkernel_path	meta_info
is_dynamic!Only support static shape for nowr"   cpudevice_index)dtypedtype_value.layout_valuememory_format_valuez!Failed to load aoti eager cache: )r   existsr    openjsonloadas_posixgetNotImplementedErrorgetattrtorchsplit	Exceptionlog	exception)r!   r   r"   device_kernel_cacheop_conff	json_dataitemkernel_lib_abs_pathmetadata	dtype_keyeerr_msgs                r   load_aoti_eager_cacherH       s    /r?!&B%$HHG>>	)$%?@g! IIaL	%D*=]@S*S'*=*F*F*HD' /5577!	  A@ %)$5#<<55"5 C#  *X5 ( 75 @79H^4)AI(46=$)8+>+D+DS+I"+M7" 3 *B
 *X57> %x'?'E'Ec'J2'N8H^4 1H<>E %x0E'F'L'LS'QRT'U?H%:;) %6 &B !G  A@ A@@J  5aS9g	sy   F> F-AF	F-	F> $AF-AF2F?	F-	F> 
F 	F-$F> -
F;7F> ;F> >
G.G)#G.)G.c                  ~    [         [        R                  [        [        R                  [        [        R                  0$ N)intr9   int32floatbool r   r   #supported_builtin_dtype_torch_dtyperP   T   s!    eU[[$

CCr   .c                  H    [        5       n [        U R                  5       5      $ rJ   )rP   tuplekeys)type_to_torch_dtypes    r   supported_scalar_typesrU   X   s     =?$))+,,r   dynamicinputc                    0 nXS'   [        U[        R                  5      (       d   eUR                  R                   US'   [        U/5      (       a  SUS'   OUR                  R                  US'   UR                   US'   [        UR                  5       5      US'   [        UR                  5       5      US'   UR                  US'   [        R                  R                  U5      R                  5       US	'   U$ )
Nr'   r"   r*   r+   r,   sizesstridesrequires_graddispatch_key_set)
isinstancer9   Tensorr   typer   indexr,   listsizestrider[   _C_dispatch_keysraw_repr)rV   rW   rD   s      r   extract_tensor_metadatarg   ]   s    !H$\eU\\****!&!2!2 3H]eW#% #(<<#5#5  ;;-HWUZZ\*HWu||~.HY % 3 3H_#(88#:#:5#A#J#J#LH Or   c                     / nU H>  n[        U[        R                  5      (       d   eUR                  [	        X5      5        M@     0 nX$S'   U$ )Ntensor_list)r]   r9   r^   appendrg   )rV   rW   metadata_listrB   rD   s        r   extract_tensor_list_metadatarl   o   sR     M$----4WCD   "H+]Or   c                     [        U[        5       5      (       d   e0 nSUS'   XS'   U S:X  a  SOSUS'   [        5       nU[        U5          US'   XS	'   U$ )
NFr'   r"   r)   r*   r   r+   r,   scalar_value)r]   rU   rP   r_   )r"   rW   rD   rT   s       r   extract_scalar_metadataro   }   so    e356666!H"H\)]%0E%9rqH^=?.tE{;<HW$^Or   c                 @    [        U [        5      (       d   e0 nXS'   U$ )Nstring_value)r]   strrW   rD   s     r   extract_string_metadatart      s'    eS!!!!!H$^Or   c                 X    [        U [        R                  5      (       d   e0 nU  US'   U$ )Nr-   )r]   r9   r,   rs   s     r   extract_dtype_metadatarv      s/    eU[[))))!H!&H]Or   c                     [        U [        R                  5      (       d   e0 nU R                   US'   U R                  US'   U$ )Ndevice_type_valuedevice_index_value)r]   r9   r   r_   r`   rs   s     r   extract_device_metadatarz      sC    eU\\****!H',zzlH !%*[[H!"Or   c                 X    [        U [        R                  5      (       d   e0 nU  US'   U$ )Nr/   )r]   r9   layoutrs   s     r   extract_layout_metadatar}      s/    eU\\****!H"'H^Or   F)dynamic_shapesoptionsremove_runtime_assertionsdisable_constraint_solverr@   argskwargsr~   r   r   r   c                	   U(       a   S5       e[        U5      [        UR                  5       5      -   n[        S U 5       5      (       d%  SU 3n[        R	                  U5        [        U5      eU HV  n[        U[         5      (       d  M  [        S U 5       5      (       a  M3  SU 3n[        R	                  U5        [        U5      e   [        X5      nUR                  5       (       d  UR                  SS9  US-  nUR                  5       (       d  UR                  5         [        R                  R                  [        R                  S	UR                  5       R!                  5       05          ["        R$                  R'                  UUUUU	U
S
S9n[        U[(        5      (       d   e/ n[+        U5       GHa  u  nn[        U["        R,                  5      (       a  [/        X=5      nGO[        U[         5      (       a%  [        S U 5       5      (       d   e[1        X=5      nO[        U[3        5       5      (       a  [5        X-5      nO[        U[(        5      (       a  [7        U5      nO[        U["        R8                  5      (       a  [;        U5      nOm[        U["        R<                  5      (       a  [?        U5      nOB[        U["        R@                  5      (       a  [C        U5      nO[        S[E        U5       35      eUUS'   URG                  U5        GMd     0 nUUS'   [I        U5      RK                  U5      R!                  5       US'   / nSnX S3-  nUR                  5       (       a  SOSn[M        U5         [O        UU5       n [P        RR                  " U5      n[        U[         5      (       d   eU H'  n[        U[        5      (       d   eUS   U:X  d  M%  S
n  O   SSS5        U(       a<  URG                  U5        [O        US5       n[P        RV                  " UUSS9  SSS5        SSS5        UsSSS5        $ ! [T         a    / n Nf = f! , (       d  f       Nv= f! , (       d  f       ND= f! , (       d  f       NM= f! [T         a/  nSU SU 3n[        R	                  U5         SnASSS5        gSnAff = f! , (       d  f       g= f)zG
Compile the given function with persistent cache for AOTI eager mode.
r(   c              3      #    U  H`  n[        U[        5       [        R                  [        [
        [        R                  [        R                  [        R                  45      v   Mb     g 7frJ   )	r]   rU   r9   r^   ra   rr   r,   r   r|   ).0rW   s     r   	<genexpr>5aoti_compile_with_persistent_cache.<locals>.<genexpr>   sU       &E 	&(	
 	
 &s   A(A*zUnsupported input types: c              3   V   #    U  H  n[        U[        R                  5      v   M!     g 7frJ   r]   r9   r^   r   rB   s     r   r   r      s!      /
7<tJtU\\**u   ')z<_impl_with_aoti_compile encounters unsupported input types: T)parentslibTORCHINDUCTOR_CACHE_DIRF)r~   r   r   same_signaturec              3   V   #    U  H  n[        U[        R                  5      v   M!     g 7frJ   r   r   s     r   r   r      s     P%$z$==%r   zUnsupported input type: 	arg_orderr&   r%   r$   rwN   )indentzFailed to compile z:  ),ra   valuesallr<   r=   r7   r]   r   r1   mkdirr   patchdictr   environabsoluter5   r9   _exportaot_compilerr   	enumerater^   rg   rl   rU   ro   rt   r,   rv   r   rz   r|   r}   r_   rj   r   relative_tor    r2   r3   r4   r;   dump)r!   r   r"   rV   r@   r   r   r~   r   r   r   flattened_inputsrG   rW   persistent_cachepersistent_cache_libkernel_lib_pathkernel_metadata_itemsidxrD   kernel_meta_inforA   update_jsonr?   modeop_conf_filerB   rF   s                               r   "aoti_compile_with_persistent_cacher      sT   " ;;;;DzD$99  &   ..>-?@g!'**!eT""3 /
7</
 ,
 ,
 UUeTfgGMM'"%g.. " ,B<""$$t,+e3&&((""$	


	"$8$A$A$C$L$L$NO
I	#mm77-*C*C  % 8 O os3333$&!'(89
UeU\\226wFHt,,P%PPPPP;GKH'='?@@6{JHs++6u=Hu{{335e<Hu||446u=Hu||446u=H-0He.VWW(+%%,,X6) :, 02,A[)_%112BCLLN ]+ IK&+Gu)MMG!..**3D()CD'4(L'$(IIl$;	 &i6666 ))$5555,0EE*/K! !* ) $$%56gs+|		)\!D ,# E( #S
 
r % '$&	' )(  ,+# ED*  	*+E*FbLGMM'"[
 
T	U
 
s   1S	3HRQ<QQ&:Q$Q*,Q<Q+-Q<5	RQ	QQ	Q
Q($Q<+
Q95Q<<
R
	R
SS4S	SS		
S)+r3   loggingr   pathlibr   typingr   r   r   unittestr   r9   torch._exporttorch._inductor.utilsr   runtime.runtime_utilsr
   	getLogger__name__r<   rr   r   r    ra   r   rH   r_   r,   rP   rR   rU   rN   r^   rg   rl   ro   rt   rv   r   rz   r|   r}   r   rO   r   r   <module>r      s     	  * *    / , !AC A A AU U U11),1;>1	(4S>
"#1hDT$2C-D D-dCi 0 -
T %,, 4S> $ 
#s(^
 
S 
T#s(^ 
3 4S> %++ $sCx. 5<< DcN 5<< DcN   04(,&+&+CC #C C 	C
 SC *C cNC T#s(^,C d38n%C  $C  $C 	Cr   