
    7h1              	         % S SK J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  S SK
JrJrJrJrJrJr  S SKJrJr  S SKJr  S SKJr  S SKJr   S SKr\R<                  " \5      r \RB                  " 5       (       a  S S	K"J#r$  \$r#S
\%S'   O
\&\'   r#S
\%S'   \" S5      r(\" S5      r)\RT                  " \SSSSSS9r+\RT                  " \SSSSSS9r, " S S\\(   5      r- " S S\\(\)4   5      r.\\\/\0\1\2\3\1S4   \4S   4      r5 " S S\.\5\64   5      r7 " S S\.\(\(4   5      r8 " S  S!\\(   5      r9 " S" S#\-\6   5      r: " S$ S%\9\5   5      r; " S& S'\;5      r< " S( S)\;5      r= " S* S+\;5      r> " S, S-\;5      r? " S. S/\;5      r@          S6S0 jrA\R                   " S1 S25      5       rC " S3 S45      rD\D" 5       rE\R                  S7S5 j5       rGg! \ a    Sr GNf = f)8    )annotationsN)abstractmethod)AnyCallableGenericOptionalTypeVarUnion)override	TypeAlias)dynamo_timed)config)_WaitCounter)Sampler   r   _T_UzFbRemoteFxGraphCache.getremote_fx_graph_cache_getF!remote_fx_graph_cache_get_time_usT)
phase_namelog_pt2_compile_eventdynamo_compile_column_uslog_waitcounterzFbRemoteFxGraphCache.putremote_fx_graph_cache_put!remote_fx_graph_cache_put_time_usc                  ^    \ rS rSrSrS
S jr\SS j5       r\SS j5       rSS jr	SS jr
Srg	)RemoteCacheBackend>   z
A backend implementation for accessing a remote/distributed cache.  Only
works with bytes in/out.  For structured data use a RemoteCache.
c                >    S[        U 5      R                   3U l        g )Nzbackend:)type__name___nameselfs    V/var/www/fran/franai/venv/lib/python3.13/site-packages/torch/_inductor/remote_cache.py__init__RemoteCacheBackend.__init__D   s    T
 3 345
    c                    g N r#   keys     r$   _getRemoteCacheBackend._getG       r'   c                    g r)   r*   r#   r,   datas      r$   _putRemoteCacheBackend._putK   r/   r'   c                     U R                  U5      n[        R                  U R                  U5        U$ ! [         a!    [        R                  U R                  5        e f = fr)   )r-   cache_statsgetr!   	Exception	exceptionr#   r,   values      r$   r7   RemoteCacheBackend.getO   sS    	IIcNEOODJJ.   	!!$**-	s	   15 +A c                     U R                  X5        [        R                  U R                  5        g ! [         a!    [        R                  U R                  5        e f = fr)   )r3   r6   putr!   r8   r9   r1   s      r$   r>   RemoteCacheBackend.putX   sG    	IIc OODJJ' 	!!$**-	s	   03 +A)r!   NreturnNoner,   strrA   Optional[_T])r,   rD   r2   r   rA   rB   )r    
__module____qualname____firstlineno____doc__r%   r   r-   r3   r7   r>   __static_attributes__r*   r'   r$   r   r   >   s>    
6    r'   r   c                  <    \ rS rSr\SS j5       r\SS j5       rSrg)RemoteCacheSerdeb   c                    g r)   r*   r#   r2   s     r$   encodeRemoteCacheSerde.encodec   r/   r'   c                    g r)   r*   rO   s     r$   decodeRemoteCacheSerde.decodeg   r/   r'   r*   N)r2   r   rA   r   )r2   r   rA   r   )r    rF   rG   rH   r   rP   rS   rJ   r*   r'   r$   rL   rL   b   s(       r'   rL   
JsonDataTyc                  (    \ rS rSrSS jrSS jrSrg)RemoteCacheJsonSerdeq   c                B    [        [        R                  " U5      S5      $ )Nascii)bytesjsondumpsrO   s     r$   rP   RemoteCacheJsonSerde.encoder   s    TZZ%w//r'   c                .    [         R                  " U5      $ r)   )r\   loadsrO   s     r$   rS   RemoteCacheJsonSerde.decodeu   s    zz$r'   r*   N)r2   rU   rA   r[   )r2   r[   rA   rU   r    rF   rG   rH   rP   rS   rJ   r*   r'   r$   rW   rW   q   s    0 r'   rW   c                  (    \ rS rSrSS jrSS jrSrg)RemoteCachePassthroughSerdey   c                    U$ r)   r*   rO   s     r$   rP   "RemoteCachePassthroughSerde.encodez       r'   c                    U$ r)   r*   rO   s     r$   rS   "RemoteCachePassthroughSerde.decode}   rh   r'   r*   N)r2   r   rA   r   rb   r*   r'   r$   rd   rd   y   s    r'   rd   c                      \ rS rSr% SrS\S'         SS jrSS jrSS jrSS jr	SS	 jr
SS
 jrSS jrSS jrSS jrSS jrSS jrSrg)RemoteCache   Nz/Optional[Callable[[], RemoteCacheBackend[Any]]]backend_override_clsc                h    U R                   R                  =nb  U" 5       U l        OXl        X l        g r)   )	__class__rn   backendserde)r#   rq   rr   override_clss       r$   r%   RemoteCache.__init__   s,     !NN???LL'>DL"L
r'   c                   [        S5      R                  5          U R                  5       n U R                  X5      n[        R                  [        U 5      R                  U5        U R                  U5        UsS S S 5        $ ! [         a*    [        R                  [        U 5      R                  5        e f = f! , (       d  f       g = f)Nzpytorch.remote_cache.get)r   guard_create_sampler-   r6   r7   r   r    r8   r9   _log_sample)r#   r,   sampleresults       r$   r7   RemoteCache.get   s    45;;=((*F3/T
 3 3V< V$ >=
  %%d4j&9&9: >=s"   B9:B&B94B66B99
Cc                   [        S5      R                  5          Uc   eU R                  5       n U R                  XU5        [        R                  [        U 5      R                  5        U R                  U5        S S S 5        g ! [         a*    [        R                  [        U 5      R                  5        e f = f! , (       d  f       g = f)Nzpytorch.remote_cache.put)r   rv   rw   r3   r6   r>   r   r    r8   r9   rx   )r#   r,   r;   ry   s       r$   r>   RemoteCache.put   s    45;;=$$$((*F		#f-T
 3 34 V$ >=  %%d4j&9&9: >=s"   B<:B+B<4B99B<<
C
c                8    U R                   R                  U5      $ r)   )rr   rS   )r#   r2   ry   s      r$   _decodeRemoteCache._decode   s    zz  &&r'   c                8    U R                   R                  U5      $ r)   )rr   rP   )r#   r;   ry   s      r$   _encodeRemoteCache._encode   s    zz  ''r'   c                V    U R                  U5      =n(       a  U R                  X25      $ g r)   )_backend_getr   )r#   r,   ry   r2   s       r$   r-   RemoteCache._get   s*    $$S))4)<<--r'   c                8    U R                   R                  U5      $ r)   )rq   r7   r+   s     r$   r   RemoteCache._backend_get   s    ||$$r'   c                H    U R                  X#5      nU R                  X5        g r)   )r   _backend_put)r#   r,   r;   ry   r2   s        r$   r3   RemoteCache._put   s    ||E*#$r'   c                :    U R                   R                  X5        g r)   )rq   r>   r1   s      r$   r   RemoteCache._backend_put   s    #r'   c                    g r)   r*   r"   s    r$   rw   RemoteCache._create_sample   s    r'   c                    g r)   r*   )r#   ry   s     r$   rx   RemoteCache._log_sample   s    r'   )rq   rr   )rq   zRemoteCacheBackend[_U]rr   zRemoteCacheSerde[_T, _U]rA   rB   rC   )r,   rD   r;   r   rA   rB   )r2   r   ry   Optional[Sample]rA   r   )r;   r   ry   r   rA   object)r,   rD   ry   r   rA   rE   )r,   rD   rA   r   )r,   rD   r;   r   ry   r   rA   rB   )r,   rD   r2   r   rA   rB   )rA   r   )ry   r   rA   rB   )r    rF   rG   rH   rn   __annotations__r%   r7   r>   r   r   r-   r   r3   r   rw   rx   rJ   r*   r'   r$   rl   rl      s]    LPIP-6N	

%'(
%
%$
r'   rl   c                  h   ^  \ rS rSr% SrSrS\S'   S
U 4S jjr\SS j5       r	\SS j5       r
S	rU =r$ )RedisRemoteCacheBackend   z7
A Redis implementation of a remote/distributed cache.
NzOptional[redis.Redis]_redisc           	       > [         TU ]  5         [        (       d  [        S5      eS[        R
                  ;   a6  [        R                  R                  [        R
                  S   5      U l        g [        R                  " [        R
                  R                  SS5      [        [        R
                  R                  SS5      5      S9U l        g )Nz1redis not available but required for remote cacheTORCHINDUCTOR_REDIS_URLTORCHINDUCTOR_REDIS_HOST	localhostTORCHINDUCTOR_REDIS_PORTi  )hostport)superr%   redisRuntimeErrorosenvironRedisfrom_urlr   r7   int)r#   cache_idrp   s     r$   r%    RedisRemoteCacheBackend.__init__   s    uRSS$

2++..rzz:S/TUDK++ZZ^^$>L(BDIJDKr'   c                    U R                   (       d  g  U R                   R                  U5      nUb  [        U[        5      (       d   eU$ ! [        R                  R                   a
    S U l          g f = fr)   )r   r7   r   
exceptionsConnectionError
isinstancer[   r:   s      r$   r-   RedisRemoteCacheBackend._get  sj    {{	KKOOC(E }
5% 8 888 // 	 DK		s   A %A32A3c                    U R                   (       d  g  U R                   R                  X5        g ! [        R                  R                   a
    S U l          g f = fr)   )r   setr   r   r   r1   s      r$   r3   RedisRemoteCacheBackend._put  sE    {{	KKOOC&// 	 DK	s   0 %AA)r   r   rD   rA   rB   )r,   rD   rA   zOptional[bytes])r,   rD   r2   r[   rA   rB   )r    rF   rG   rH   rI   r   r   r%   r   r-   r3   rJ   __classcell__rp   s   @r$   r   r      sB     %)F!(  " 
 
r'   r   c                  j   ^  \ rS rSrSU 4S jjrSS jr\S	U 4S jj5       r\S
U 4S jj5       rSr	U =r
$ )RedisRemoteCachei!  c                   > U R                   R                  (       a#  [        R                  " [        [
           S 5      nO[        U5      n[        5       n[        TU ]%  X#5        SnSU SU 3U l
        g )N   zpt2:z	::{key}:c)rp   rn   typingcastr   r[   r   rW   r   r%   _key_fmt)r#   r   rq   rr   versionrp   s        r$   r%   RedisRemoteCache.__init__"  s`     >>..kk"4U";TBG-h7G$&(xjG9=r'   c                4    U R                   R                  US9$ )N)r,   )r   formatr+   s     r$   _get_keyRedisRemoteCache._get_key/  s    }}###,,r'   c                D   > U R                  U5      n[        TU ]	  X5      $ r)   )r   r   r-   )r#   r,   ry   rp   s      r$   r-   RedisRemoteCache._get2  s     mmC w|C((r'   c                H   > U R                  U5      n[        TU ]	  XU5        g r)   )r   r   r3   )r#   r,   r;   ry   rp   s       r$   r3   RedisRemoteCache._put7  s    mmC S(r'   )r   r   )r,   rD   rA   rD   )r,   rD   ry   r   rA   zOptional[JsonDataTy])r,   rD   r;   rU   ry   r   rA   rB   )r    rF   rG   rH   r%   r   r   r-   r3   rJ   r   r   s   @r$   r   r   !  s5    >- ) ) ) )r'   r   c                      \ rS rSrSrg)RemoteAutotuneCachei=  r*   Nr    rF   rG   rH   rJ   r*   r'   r$   r   r   =      r'   r   c                      \ rS rSrSrg)RemoteBundledAutotuneCacheiA  r*   Nr   r*   r'   r$   r   r   A  r   r'   r   c                      \ rS rSrSrg)RemoteFxGraphCacheiE  r*   Nr   r*   r'   r$   r   r   E  r   r'   r   c                      \ rS rSrSrg)RemoteAOTAutogradCacheiI  r*   Nr   r*   r'   r$   r   r   I  r   r'   r   c                      \ rS rSrSrg)RemoteDynamoPGOCacheiM  r*   Nr   r*   r'   r$   r   r   M  r   r'   r   c                    U(       a6  SS K n[        UR                  R                  R                  U5      nU" U 5      $ [
        R                  [           n[        Xc5      nU" U 5      $ ! [         a    [        R                  SSS9   g f = f)Nr   zUnable to create a remote cacheT)exc_info)torch._inductor.fb.remote_cachegetattr	_inductorfbremote_cachesysmodulesr    r8   logwarning)r,   	is_fbcodefb_cache_clsoss_cache_clstorch	cache_clsthis_modules          r$   create_cacher   Q  sx    2 2 2 ? ?NIS>!++h/K;IS>! 5Es   <A) )A) )B
	B
c                  X    \ rS rSr% SrS\S'   SrS\S'   SrS\S'   SrS\S'   SS jr	S	r
g
)
_CacheStatii  r   r   misshitr>   r9   c           	     p    SU R                    SU R                   SU R                   SU R                   S3	$ )Nz{hit: z, miss: z, put: z, exception: })r   r   r>   r9   r"   s    r$   __str___CacheStat.__str__p  s8    
(499+WTXXJmTXTbTbScceffr'   r*   N)rA   rD   )r    rF   rG   rH   r   r   r   r>   r9   r   rJ   r*   r'   r$   r   r   i  s-    D#MCLCLIsgr'   r   c                  l    \ rS rSr% S\S'   SS jrSSS jjrSSS jjrSS jrSSS jjr	SSS	 jjr
S
rg)_CacheStatsit  zdict[str, _CacheStat]_statsc                B    [         R                  " [        5      U l        g r)   )collectionsdefaultdictr   r   r"   s    r$   r%   _CacheStats.__init__w  s    !--j9r'   c                H    U R                   U   =R                  U-  sl        g r)   )r   r   r#   namecounts      r$   r   _CacheStats.missz  s    D%'r'   c                H    U R                   U   =R                  U-  sl        g r)   )r   r   r   s      r$   r   _CacheStats.hit}      D&r'   c                P    Uc  U R                  U5        g U R                  U5        g r)   )r   r   )r#   r   r;   s      r$   r7   _CacheStats.get  s    =IIdOHHTNr'   c                H    U R                   U   =R                  U-  sl        g r)   )r   r>   r   s      r$   r>   _CacheStats.put  r   r'   c                H    U R                   U   =R                  U-  sl        g r)   )r   r9   r   s      r$   r9   _CacheStats.exception  s    D##u,#r'   )r   Nr@   )r   )r   rD   r   r   rA   rB   )r   rD   r;   zOptional[object]rA   rB   )r    rF   rG   rH   r   r%   r   r   r7   r>   r9   rJ   r*   r'   r$   r   r   t  s+    !!:(''- -r'   r   c                    [         R                  [        R                  5      (       d  g SS Kn U R                  5       n[        R                  (       d  [        SUS9  OI[        US9  [        [        R                  R                  5       5       H  u  p#[        SU SU 3US9  M     [         R                  SUR                  5       5        g )Nr   z None)filez  z: zCache Metrics:%s)r   isEnabledForloggingINFOioStringIOr6   r   printsorteditemsinfogetvalue)r  outkvs       r$   dump_cache_statsr    s    GLL))
++-CgC 3;--3356DABqcA3-c* 7 HH0r'   )
r,   rD   r   boolr   rD   r   rD   rA   z!Optional[RemoteCache[JsonDataTy]]r@   )H
__future__r   atexitr   dataclasses	functoolsr\   r  r   r   r   abcr   r   r   r   r   r	   r
   typing_extensionsr   r   torch._dynamo.utilsr   torch._inductorr   torch.monitorr   r   ImportError	getLoggerr    r   r   rfe.scubadata.scubadata_py3r   Sample_r   r   r   r   r   partialremote_fx_cache_get_timedremote_fx_cache_put_timedr   rL   r   floatrD   r  dictlistrU   r[   rW   rd   rl   r   r   r   r   r   r   r   r   	dataclassr   r   r6   registerr  r*   r'   r$   <module>r'     sq   "       	 
   C C 1 , " &
 ! 
  FIVFI$ T]T] &--*@  &--*@    Hwr2v  	#uc4c<&7!8$|:L
LM

 +J,=>  "22r6": >R'"+ Rj107 1h){:. )8	* 		!1 		) 		- 		+ 		  	
 '0 g g g- -2 m 1 1u  Es   G G*)G*