ó
    Eñi4  ã            	      ó  • % 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  S SKJr  S SKJr  S SKJr  \
R6                  (       a  S S	KJr   S SKr\R@                  " \!5      r"\RF                  " 5       (       a  S S
K$J%r&  \&r%S\'S'   O
\(\)   r%S\'S'   \" S5      r*\" S5      r+\RX                  " \SSSSSS9r-\RX                  " \SSSSSS9r. " S S\\*   5      r/ " S S\\*\+4   5      r0\\\1\2\3\4\5\3S4   \6S   4      r7 " S S\0\7\84   5      r9 " S S \0\*\*4   5      r: " S! S"\\*   5      r; " S# S$\/\8   5      r< " S% S&\;\7   5      r= " S' S(\=5      r> " S) S*\=5      r? " S+ S,\=5      r@ " S- S.\=5      rA " S/ S0\=5      rB          S7S1 jrC\Rˆ                   " S2 S35      5       rE " S4 S55      rF\F" 5       rG\R�                  S8S6 j5       rIg! \ a    Sr GNˆf = f)9é    )ÚannotationsN)Úabstractmethod)ÚAnyÚGenericÚOptionalÚ	TypeAliasÚTypeVarÚUnion)Úoverride)Údynamo_timed)Úconfig)Ú_WaitCounter)ÚCallable)Ú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éB   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    ÚY/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_inductor/remote_cache.pyÚ__init__ÚRemoteCacheBackend.__init__H   s   € Ø¤ T£
× 3Ñ 3Ð4Ð5ˆ�
ó    c                ó   • g ©N© ©r#   Úkeys     r$   Ú_getÚRemoteCacheBackend._getK   ó   € àr'   c                ó   • g r)   r*   ©r#   r,   Údatas      r$   Ú_putÚRemoteCacheBackend._putO   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.getS   sS   € ð	Ø—I‘I˜c“NˆEÜ�O‰O˜DŸJ™J¨Ô.ð ˆøô ó 	Ü×!Ñ! $§*¡*Ô-Øð	ú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.put\   sG   € ð	Ø�I‰I�cÔ Ü�O‰O˜DŸJ™JÕ'øÜó 	Ü×!Ñ! $§*¡*Ô-Øð	ú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   B   s>   † ñô
6ð óó ðð óó ðô÷r'   r   c                  ó<   • \ rS rSr\SS j5       r\SS j5       rSrg)ÚRemoteCacheSerdeéf   c                ó   • g r)   r*   ©r#   r2   s     r$   ÚencodeÚRemoteCacheSerde.encodeg   r/   r'   c                ó   • g r)   r*   rO   s     r$   ÚdecodeÚRemoteCacheSerde.decodek   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   f   s(   † Øóó ðð óó ór'   rL   Ú
JsonDataTyc                  ó(   • \ rS rSrSS jrSS jrSrg)ÚRemoteCacheJsonSerdeéu   c                óB   • [        [        R                  " U5      S5      $ )NÚascii)ÚbytesÚjsonÚdumpsrO   s     r$   rP   ÚRemoteCacheJsonSerde.encodev   s   € Ü”T—Z’Z Ó% wÓ/Ð/r'   c                ó.   • [         R                  " U5      $ r)   )r\   ÚloadsrO   s     r$   rS   ÚRemoteCacheJsonSerde.decodey   s   € Ü�zŠz˜$ÓÐr'   r*   N)r2   rU   rA   r[   )r2   r[   rA   rU   ©r    rF   rG   rH   rP   rS   rJ   r*   r'   r$   rW   rW   u   s   † ô0÷ r'   rW   c                  ó(   • \ rS rSrSS jrSS jrSrg)ÚRemoteCachePassthroughSerdeé}   c                ó   • U$ r)   r*   rO   s     r$   rP   Ú"RemoteCachePassthroughSerde.encode~   ó   € Øˆ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   }   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,   € ð !ŸN™N×?Ñ?Ð?ˆLÑLÙ'›>ˆD�Là"Œ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        $ ! [         aE  n[        R                  [        U 5      R                  5        U(       a  [        U5      Ul        e S nAff = f! U R                  U5        f = f! , (       d  f       g = f)Nzpytorch.remote_cache.get)r   ÚguardÚ_create_sampler-   r6   r7   r   r    r8   r9   rD   Úfail_reasonÚ_log_sample)r#   r,   ÚsampleÚresultÚes        r$   r7   ÚRemoteCache.get¬   s¾   € ÜÐ4Ó5×;Ñ;Õ=Ø×(Ñ(Ó*ˆFð	)ØŸ™ 3Ó/�Ü—‘¤ T£
× 3Ñ 3°VÕ<ð × Ñ  Ô(Ø÷ >Ñ=øô
 ó Ü×%Ñ%¤d¨4£j×&9Ñ&9Ô:ÞÜ),¨Q«�FÔ&Øûð	ûð × Ñ  Õ(ú÷ >Õ=ús;   šC+¬:BÁ'C+Â
CÂA CÃCÃCÃC(Ã(C+Ã+
C9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 ! [         aE  n[        R                  [        U 5      R                  5        U(       a  [        U5      Ul        e S nAff = f! U R                  U5        f = f! , (       d  f       g = f)Nzpytorch.remote_cache.put)r   rv   rw   r3   r6   r>   r   r    r8   r9   rD   rx   ry   )r#   r,   r;   rz   r|   s        r$   r>   ÚRemoteCache.put¾   sÅ   € ÜÐ4Ó5×;Ñ;Õ=ØÑ$Ð$Ð$Ø×(Ñ(Ó*ˆFð	)Ø—	‘	˜# fÔ-Ü—‘¤ T£
× 3Ñ 3Õ4ð × Ñ  Õ(÷ >Ð=øô ó Ü×%Ñ%¤d¨4£j×&9Ñ&9Ô:ÞÜ),¨Q«�FÔ&Øûð	ûð × Ñ  Õ(ú÷ >Õ=ús;   šC/±:BÁ,C/Â
CÂA CÃCÃCÃC,Ã,C/Ã/
C=c                ó8   • U R                   R                  U5      $ r)   )rr   rS   )r#   r2   rz   s      r$   Ú_decodeÚRemoteCache._decodeÎ   s   € Ø�z‰z× Ñ  Ó&Ð&r'   c                ó8   • U R                   R                  U5      $ r)   )rr   rP   )r#   r;   rz   s      r$   Ú_encodeÚRemoteCache._encodeÒ   s   € Ø�z‰z× Ñ  Ó'Ð'r'   c                óV   • U R                  U5      =n(       a  U R                  X25      $ g r)   )Ú_backend_getr�   )r#   r,   rz   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;   rz   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#   rz   s     r$   ry   Ú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   rz   úOptional[Sample]rA   r   )r;   r   rz   r”   rA   Úobject)r,   rD   rz   r”   rA   rE   )r,   rD   rA   r•   )r,   rD   r;   r   rz   r”   rA   rB   )r,   rD   r2   r•   rA   rB   )rA   r”   )rz   r”   rA   rB   )r    rF   rG   rH   rn   Ú__annotations__r%   r7   r>   r�   r„   r-   r‡   r3   rŒ   rw   ry   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ÜŸ+™+×.Ñ.¬r¯z©zÐ:SÑ/TÓUˆD�KäŸ+š+Ü—Z‘Z—^‘^Ð$>ÀÓLÜœŸ™Ÿ™Ð(BÀDÓIÓJñˆD�Kr'   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   € à�{�{àð	à—K‘K—O‘O CÓ(ˆEð ‰}¤
¨5´%× 8Ñ 8Ð8Ð8Øˆøô ×Ñ×/Ñ/ó 	ð ˆDŒKÙð		ú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   € à�{�{àð	à�K‰K�O‰O˜CÕ&øä×Ñ×/Ñ/ó 	ð ˆDŽKð	ú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
$ )ÚRedisRemoteCachei1  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__2  s`   ø€ ð �>‰>×.×.ä—k’kÔ"4´UÑ";¸TÓB‰Gä-¨hÓ7ˆGÜ$Ó&ˆÜ‰Ñ˜Ô(ØˆØ˜x˜j¨°G°9Ð=ˆ�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,   rz   rp   s      €r$   r-   ÚRedisRemoteCache._getB  s    ø€ à�m‰m˜CÓ ˆÜ‰w‰|˜CÓ(Ð(r'   c                óH   >• U R                  U5      n[        TU ]	  XU5        g r)   )rÂ   r¢   r3   )r#   r,   r;   rz   rp   s       €r$   r3   ÚRedisRemoteCache._putG  s   ø€ à�m‰m˜CÓ ˆÜ‰‰�S Õ(r'   )r½   r´   )r,   rD   rA   rD   )r,   rD   rz   r”   rA   zOptional[JsonDataTy])r,   rD   r;   rU   rz   r”   rA   rB   )r    rF   rG   rH   r%   rÂ   r   r-   r3   rJ   rµ   r¶   s   @r$   r¸   r¸   1  s5   ø† ÷>ô-ð ö)ó ð)ð ö)ó ö)r'   r¸   c                  ó   • \ rS rSrSrg)ÚRemoteAutotuneCacheiM  r*   N©r    rF   rG   rH   rJ   r*   r'   r$   rÉ   rÉ   M  ó   † Úr'   rÉ   c                  ó   • \ rS rSrSrg)ÚRemoteBundledAutotuneCacheiQ  r*   NrÊ   r*   r'   r$   rÍ   rÍ   Q  rË   r'   rÍ   c                  ó   • \ rS rSrSrg)ÚRemoteFxGraphCacheiU  r*   NrÊ   r*   r'   r$   rÏ   rÏ   U  rË   r'   rÏ   c                  ó   • \ rS rSrSrg)ÚRemoteAOTAutogradCacheiY  r*   NrÊ   r*   r'   r$   rÑ   rÑ   Y  rË   r'   rÑ   c                  ó   • \ rS rSrSrg)ÚRemoteDynamoPGOCachei]  r*   NrÊ   r*   r'   r$   rÓ   rÓ   ]  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å   a  sx   € ðÞÛ2ä §¡× 2Ñ 2× ?Ñ ?ÀÓNˆIÙ˜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
)Ú
_CacheStatiy  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__€  s8   € Ø˜Ÿ™˜
 (¨4¯9©9¨+°W¸T¿X¹X¸JÀmÐTX×TbÑTbÐScÐceÐfÐfr'   r*   N)rA   rD   )r    rF   rG   rH   rè   r–   ré   r>   r9   rì   rJ   r*   r'   r$   rç   rç   y  s-   ‡ à€Dˆ#ƒMØ€CˆƒLØ€CˆƒLØ€IˆsÓ÷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)Ú_CacheStatsi„  zdict[str, _CacheStat]Ú_statsc                óB   • [         R                  " [        5      U l        g r)   )ÚcollectionsÚdefaultdictrç   rð   r"   s    r$   r%   Ú_CacheStats.__init__‡  s   € Ü!×-Ò-¬jÓ9ˆ�r'   c                óH   • U R                   U   =R                  U-  sl        g r)   )rð   rè   ©r#   ÚnameÚcounts      r$   rè   Ú_CacheStats.missŠ  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   € Ø‰=Ø�I‰I�d�Oà�H‰H�T�Nr'   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ï   „  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�   € ä×ÑœGŸL™L×)Ñ)Øãà
�+‰+‹-€Cä××Üˆg˜CÓ ä�3ŠÜœ;×-Ñ-×3Ñ3Ó5Ö6‰DˆAÜ�B�q�c˜˜A˜3�- cÔ*ñ 7ô ‡H�HÐ §¡£Õ0r'   )
r,   rD   rß   Úboolrà   rD   rá   rD   rA   z!Optional[RemoteCache[JsonDataTy]]r@   )JÚ
__future__r   Úatexitrò   ÚdataclassesÚ	functoolsr\   r  r¥   rÛ   r»   Úabcr   r   r   r   r   r	   r
   Útyping_extensionsr   Útorch._dynamo.utilsr   Útorch._inductorr   Útorch.monitorr   ÚTYPE_CHECKINGÚcollections.abcr   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+     s  ðÞ "ã Û Û Û Û Û Û 	Û 
Û Ý ß D× DÝ &å ,Ý "Ý &ð 
××Ý(ðÛð
 ×Ò˜Ó!€ð 
×Ò×Ñõð  €FˆIÔà˜V™€FˆIÓ$ñ ˆTƒ]€ÙˆTƒ]€ð &×-Ò-ØØØ*ØØ@ØñÐ ð &×-Ò-ØØØ*ØØ@ØñÐ ô ˜ ™ô  ôH�w˜r 2˜v‘ô ð Ø	ˆ#ˆu�c˜4  c¨<Ð&7Ñ!8¸$¸|Ñ:LÐ
LÑMñ€
ô
 Ð+¨J¸Ð,=Ñ>ô  ôÐ"2°2°r°6Ñ":ô ô>Y�'˜"‘+ô Yôx6Ð0°Ñ7ô 6ôr)�{ :Ñ.ô )ô8	Ð*ô 	ô	Ð!1ô 	ô	Ð)ô 	ô	Ð-ô 	ô	Ð+ô 	ðØ	ðàðð ðð ð	ð
 'ôð0 ×Ñ÷gð gó ðg÷-ñ -ñ2 ‹m€ð ‡�ó1ó ñ1øðM ó ØƒEðús   Á2G3 Ç3G?Ç>G?