Ë
    g^(hù1  ã            	      óÖ  — U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlmZ d dl
mZmZmZmZmZmZ d dlmZmZ d dlmZ d dlmZ d dlmZ 	 d dlZ ej<                  e«      Z  ejB                  «       rd d	l"m#Z$ e$Z#d
e%d<   n
e&e'   Z#d
e%d<    ed«      Z( ed«      Z) ejT                  eddddd¬«      Z+ ejT                  eddddd¬«      Z, G d„ dee(   «      Z- G d„ dee(e)f   «      Z.eee/e0e1e2e3e1df   e4d   f      Z5 G d„ de.e5e6f   «      Z7 G d„ de.e(e(f   «      Z8 G d „ d!ee(   «      Z9 G d"„ d#e-e6   «      Z: G d$„ d%e9e5   «      Z; G d&„ d'e;«      Z< G d(„ d)e;«      Z= G d*„ d+e;«      Z> G d,„ d-e;«      Z? G d.„ d/e;«      Z@	 	 	 	 	 	 	 	 	 	 d6d0„ZAej„                   G d1„ d2«      «       ZC G d3„ d4«      ZD eD«       ZEejŒ                  d7d5„«       ZGy# e$ r dZY �Œ†w xY w)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                  óL   — e Zd ZdZdd„Zed	d„«       Zed
d„«       Zd	d„Zd
d„Z	y)ÚRemoteCacheBackendz—
    A backend implementation for accessing a remote/distributed cache.  Only
    works with bytes in/out.  For structured data use a RemoteCache.
    c                ó>   — dt        | «      j                  › �| _        y )Nzbackend:)ÚtypeÚ__name__Ú_name©Úselfs    úZ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/_inductor/remote_cache.pyÚ__init__zRemoteCacheBackend.__init__D   s   € Ø¤ T£
× 3Ñ 3Ð4Ð5ˆ�
ó    c                 ó   — y ©N© ©r"   Úkeys     r#   Ú_getzRemoteCacheBackend._getG   ó   € àr%   c                 ó   — y r'   r(   ©r"   r*   Údatas      r#   Ú_putzRemoteCacheBackend._putK   r,   r%   c                óÄ   — 	 | j                  |«      }t        j                  | j                  |«       |S # t        $ r! t        j                  | j                  «       ‚ w xY wr'   )r+   Úcache_statsÚgetr    Ú	ExceptionÚ	exception©r"   r*   Úvalues      r#   r3   zRemoteCacheBackend.getO   sS   € ð	Ø—I‘I˜c“NˆEÜ�O‰O˜DŸJ™J¨Ô.ð ˆøô ò 	Ü×!Ñ! $§*¡*Ô-Øð	ús	   ‚15 µ*Ac                óÂ   — 	 | j                  ||«       t        j                  | j                  «       y # t        $ r! t        j                  | j                  «       ‚ w xY wr'   )r0   r2   Úputr    r4   r5   r.   s      r#   r9   zRemoteCacheBackend.putX   sI   € ð	Ø�I‰I�c˜4Ô Ü�O‰O˜DŸJ™JÕ'øÜò 	Ü×!Ñ! $§*¡*Ô-Øð	ús	   ‚14 ´*AN©ÚreturnÚNone©r*   Ústrr;   úOptional[_T])r*   r>   r/   r   r;   r<   )
r   Ú
__module__Ú__qualname__Ú__doc__r$   r   r+   r0   r3   r9   r(   r%   r#   r   r   >   s>   „ ñó
6ð òó ðð òó ðóôr%   r   c                  ó0   — e Zd Zedd„«       Zedd„«       Zy)ÚRemoteCacheSerdec                 ó   — y r'   r(   ©r"   r/   s     r#   ÚencodezRemoteCacheSerde.encodec   r,   r%   c                 ó   — y r'   r(   rF   s     r#   ÚdecodezRemoteCacheSerde.decodeg   r,   r%   N)r/   r   r;   r   )r/   r   r;   r   )r   r@   rA   r   rG   rI   r(   r%   r#   rD   rD   b   s(   „ Øòó ðð òó ñr%   rD   Ú
JsonDataTyc                  ó   — e Zd Zdd„Zdd„Zy)ÚRemoteCacheJsonSerdec                ó@   — t        t        j                  |«      d«      S )NÚascii)ÚbytesÚjsonÚdumpsrF   s     r#   rG   zRemoteCacheJsonSerde.encoder   s   € Ü”T—Z‘Z Ó% wÓ/Ð/r%   c                ó,   — t        j                  |«      S r'   )rP   ÚloadsrF   s     r#   rI   zRemoteCacheJsonSerde.decodeu   s   € Ü�z‰z˜$ÓÐr%   N)r/   rJ   r;   rO   )r/   rO   r;   rJ   ©r   r@   rA   rG   rI   r(   r%   r#   rL   rL   q   s   „ ó0ô r%   rL   c                  ó   — e Zd Zdd„Zdd„Zy)ÚRemoteCachePassthroughSerdec                ó   — |S r'   r(   rF   s     r#   rG   z"RemoteCachePassthroughSerde.encodez   ó   € Øˆr%   c                ó   — |S r'   r(   rF   s     r#   rI   z"RemoteCachePassthroughSerde.decode}   rX   r%   N)r/   r   r;   r   rT   r(   r%   r#   rV   rV   y   s   „ óôr%   rV   c                  ó€   — e Zd ZU dZded<   	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Z	dd	„Z
dd
„Zdd„Zdd„Zdd„Zdd„Zy)ÚRemoteCacheNz/Optional[Callable[[], RemoteCacheBackend[Any]]]Úbackend_override_clsc                óx   — | j                   j                  x}� |«       | _        || _        y || _        || _        y r'   )Ú	__class__r\   ÚbackendÚserde)r"   r_   r`   Úoverride_clss       r#   r$   zRemoteCache.__init__›   s;   € ð !ŸN™N×?Ñ?Ð?ˆLÐLÙ'›>ˆDŒLð ˆ�
ð #ˆDŒLØˆ�
r%   c                óŠ  — t        d«      j                  «       5  | j                  «       }	 | j                  ||«      }t        j                  t        | «      j                  |«       | j                  |«       |cd d d «       S # t        $ r* t        j                  t        | «      j                  «       ‚ w xY w# 1 sw Y   y xY w)Nzpytorch.remote_cache.get)r   ÚguardÚ_create_sampler+   r2   r3   r   r   r4   r5   Ú_log_sample)r"   r*   ÚsampleÚresults       r#   r3   zRemoteCache.get§   s¨   € ÜÐ4Ó5×;Ñ;Ó=ñ 		Ø×(Ñ(Ó*ˆFðØŸ™ 3¨Ó/�Ü—‘¤ T£
× 3Ñ 3°VÔ<ð ×Ñ˜VÔ$Ø÷		ñ 		øô
 ò Ü×%Ñ%¤d¨4£j×&9Ñ&9Ô:Øðú÷		ð 		ús"   šB9¬;BÁ'B9Â3B6Â6B9Â9Cc                óŽ  — t        d«      j                  «       5  |€J ‚| j                  «       }	 | j                  |||«       t        j                  t        | «      j                  «       | j                  |«       d d d «       y # t        $ r* t        j                  t        | «      j                  «       ‚ w xY w# 1 sw Y   y xY w)Nzpytorch.remote_cache.put)r   rc   rd   r0   r2   r9   r   r   r4   r5   re   )r"   r*   r7   rf   s       r#   r9   zRemoteCache.put¶   s¯   € ÜÐ4Ó5×;Ñ;Ó=ñ 		%ØÐ$Ð$Ð$Ø×(Ñ(Ó*ˆFðØ—	‘	˜#˜u fÔ-Ü—‘¤ T£
× 3Ñ 3Ô4ð ×Ñ˜VÔ$÷		%ð 		%øô ò Ü×%Ñ%¤d¨4£j×&9Ñ&9Ô:Øðú÷		%ð 		%ús"   šB;°;BÁ+B;Â3B8Â8B;Â;Cc                ó8   — | j                   j                  |«      S r'   )r`   rI   )r"   r/   rf   s      r#   Ú_decodezRemoteCache._decodeÃ   s   € Ø�z‰z× Ñ  Ó&Ð&r%   c                ó8   — | j                   j                  |«      S r'   )r`   rG   )r"   r7   rf   s      r#   Ú_encodezRemoteCache._encodeÇ   s   € Ø�z‰z× Ñ  Ó'Ð'r%   c                óN   — | j                  |«      x}r| j                  ||«      S y r'   )Ú_backend_getrj   )r"   r*   rf   r/   s       r#   r+   zRemoteCache._getÌ   s,   € Ø×$Ñ$ SÓ)Ð)ˆ4Ð)Ø—<‘<  fÓ-Ð-Ør%   c                ó8   — | j                   j                  |«      S r'   )r_   r3   r)   s     r#   rn   zRemoteCache._backend_getÔ   s   € Ø�|‰|×Ñ Ó$Ð$r%   c                óL   — | j                  ||«      }| j                  ||«       y r'   )rl   Ú_backend_put)r"   r*   r7   rf   r/   s        r#   r0   zRemoteCache._putÙ   s"   € Ø�|‰|˜E 6Ó*ˆØ×Ñ˜#˜tÕ$r%   c                ó<   — | j                   j                  ||«       y r'   )r_   r9   r.   s      r#   rq   zRemoteCache._backend_putà   s   € Ø�‰×Ñ˜˜dÕ#r%   c                 ó   — y r'   r(   r!   s    r#   rd   zRemoteCache._create_sampleå   s   € Ør%   c                 ó   — y r'   r(   )r"   rf   s     r#   re   zRemoteCache._log_sampleé   s   € Ør%   )r_   zRemoteCacheBackend[_U]r`   zRemoteCacheSerde[_T, _U]r;   r<   r=   )r*   r>   r7   r   r;   r<   )r/   r   rf   úOptional[Sample]r;   r   )r7   r   rf   ru   r;   Úobject)r*   r>   rf   ru   r;   r?   )r*   r>   r;   rv   )r*   r>   r7   r   rf   ru   r;   r<   )r*   r>   r/   rv   r;   r<   )r;   ru   )rf   ru   r;   r<   )r   r@   rA   r\   Ú__annotations__r$   r3   r9   rj   rl   r+   rn   r0   rq   rd   re   r(   r%   r#   r[   r[   ˜   s]   … ØLPÐÐIÓPðØ-ðØ6Nðà	óó
ó
%ó'ó(ó
ó%ó
%ó$ó
ôr%   r[   c                  óX   ‡ — e Zd ZU dZdZded<   dˆ fd„Zed	d„«       Zed
d„«       Z	ˆ xZ
S )ÚRedisRemoteCacheBackendz?
    A Redis implementation of a remote/distributed cache.
    NzOptional[redis.Redis]Ú_redisc           	     ó‚  •— t         ‰| �  «        t        sy dt        j                  v r6t        j
                  j                  t        j                  d   «      | _        y t        j
                  t        j                  j                  dd«      t        t        j                  j                  dd«      «      ¬«      | _        y )NÚTORCHINDUCTOR_REDIS_URLÚTORCHINDUCTOR_REDIS_HOSTÚ	localhostÚTORCHINDUCTOR_REDIS_PORTië  )ÚhostÚport)
Úsuperr$   ÚredisÚosÚenvironÚRedisÚfrom_urlrz   r3   Úint)r"   Úcache_idr^   s     €r#   r$   z RedisRemoteCacheBackend.__init__ô   s{   ø€ Ü‰ÑÔÝàà$¬¯
©
Ñ2ÜŸ+™+×.Ñ.¬r¯z©zÐ:SÑ/TÓUˆD�KäŸ+™+Ü—Z‘Z—^‘^Ð$>ÀÓLÜœŸ™Ÿ™Ð(BÀDÓIÓJôˆD�Kr%   c                óÔ   — | j                   sy 	 | j                   j                  |«      }|�t        |t        «      sJ ‚|S # t        j                  j                  $ r
 d | _         Y y w xY wr'   )rz   r3   rƒ   Ú
exceptionsÚConnectionErrorÚ
isinstancerO   r6   s      r#   r+   zRedisRemoteCacheBackend._get  sg   € à�{Š{àð	Ø—K‘K—O‘O CÓ(ˆEð ˆ}¤
¨5´%Ô 8Ð8Ð8Øˆøô ×Ñ×/Ñ/ò 	ð ˆDŒKÙð		ús   �A  Á $A'Á&A'c                ó¬   — | j                   sy 	 | j                   j                  ||«       y # t        j                  j                  $ r
 d | _         Y y w xY wr'   )rz   Úsetrƒ   r‹   rŒ   r.   s      r#   r0   zRedisRemoteCacheBackend._put  sG   € à�{Š{àð	Ø�K‰K�O‰O˜C Õ&øÜ×Ñ×/Ñ/ò 	ð ˆDŽKð	ús   �, ¬$AÁA©r‰   r>   r;   r<   )r*   r>   r;   zOptional[bytes])r*   r>   r/   rO   r;   r<   )r   r@   rA   rB   rz   rw   r$   r   r+   r0   Ú__classcell__©r^   s   @r#   ry   ry   í   sB   ø… ñð %)€FÐ!Ó(õð òó ðð" ò
ó ô
r%   ry   c                  óT   ‡ — e Zd Zdˆ fd„Zdd„Zedˆ fd„«       Zedˆ fd„«       Zˆ xZS )	ÚRedisRemoteCachec                óÞ   •— | j                   j                  r"t        j                  t        t
           d «      }nt        |«      }t        «       }t        ‰| �%  ||«       d}d|› d|› �| _
        y )Né   zpt2:z	::{key}:c)r^   r\   ÚtypingÚcastr   rO   ry   rL   r‚   r$   Ú_key_fmt)r"   r‰   r_   r`   Úversionr^   s        €r#   r$   zRedisRemoteCache.__init__#  sb   ø€ ð �>‰>×.Ò.ä—k‘kÔ"4´UÑ";¸TÓB‰Gä-¨hÓ7ˆGÜ$Ó&ˆÜ‰Ñ˜ %Ô(ØˆØ˜x˜j¨°G°9Ð=ˆ�r%   c                ó:   — | j                   j                  |¬«      S )N)r*   )r™   Úformatr)   s     r#   Ú_get_keyzRedisRemoteCache._get_key0  s   € Ø�}‰}×#Ñ#¨Ð#Ó,Ð,r%   c                óF   •— | j                  |«      }t        ‰| �	  ||«      S r'   )r�   r‚   r+   )r"   r*   rf   r^   s      €r#   r+   zRedisRemoteCache._get3  s"   ø€ à�m‰m˜CÓ ˆÜ‰w‰|˜C Ó(Ð(r%   c                óJ   •— | j                  |«      }t        ‰| �	  |||«       y r'   )r�   r‚   r0   )r"   r*   r7   rf   r^   s       €r#   r0   zRedisRemoteCache._put8  s!   ø€ à�m‰m˜CÓ ˆÜ‰‰�S˜% Õ(r%   r�   )r*   r>   r;   r>   )r*   r>   rf   ru   r;   zOptional[JsonDataTy])r*   r>   r7   rJ   rf   ru   r;   r<   )	r   r@   rA   r$   r�   r   r+   r0   r‘   r’   s   @r#   r”   r”   "  s5   ø„ õ>ó-ð ô)ó ð)ð ô)ó ô)r%   r”   c                  ó   — e Zd Zy)ÚRemoteAutotuneCacheN©r   r@   rA   r(   r%   r#   r¡   r¡   >  ó   „ Ør%   r¡   c                  ó   — e Zd Zy)ÚRemoteBundledAutotuneCacheNr¢   r(   r%   r#   r¥   r¥   B  r£   r%   r¥   c                  ó   — e Zd Zy)ÚRemoteFxGraphCacheNr¢   r(   r%   r#   r§   r§   F  r£   r%   r§   c                  ó   — e Zd Zy)ÚRemoteAOTAutogradCacheNr¢   r(   r%   r#   r©   r©   J  r£   r%   r©   c                  ó   — e Zd Zy)ÚRemoteDynamoPGOCacheNr¢   r(   r%   r#   r«   r«   N  r£   r%   r«   c                ó  — 	 |r6dd l }t        |j                  j                  j                  |«      } || «      S t
        j                  t           }t        ||«      } || «      S # t        $ r t        j                  dd¬«       Y y w xY w)Nr   zUnable to create a remote cacheT)Úexc_info)Útorch._inductor.fb.remote_cacheÚgetattrÚ	_inductorÚfbÚremote_cacheÚsysÚmodulesr   r4   ÚlogÚwarning)r*   Ú	is_fbcodeÚfb_cache_clsÚoss_cache_clsÚtorchÚ	cache_clsÚthis_modules          r#   Úcreate_cacher½   R  sz   € ðÙÛ2ä §¡× 2Ñ 2× ?Ñ ?ÀÓNˆIÙ˜S“>Ð!äŸ+™+¤hÑ/ˆKä ¨]Ó;ˆIÙ˜S“>Ð!øäò Ü�‰Ð5ÀˆÔEÙðús   ‚7A% º*A% Á% BÂBc                  óN   — e Zd ZU dZded<   dZded<   dZded<   dZded<   d	d„Zy)
Ú
_CacheStatr   rˆ   ÚmissÚhitr9   r5   c           	     óp   — d| j                   › d| j                  › d| j                  › d| j                  › d�	S )Nz{hit: z, miss: z, put: z, exception: ú})rÁ   rÀ   r9   r5   r!   s    r#   Ú__str__z_CacheStat.__str__q  s8   € Ø˜Ÿ™˜
 (¨4¯9©9¨+°W¸T¿X¹X¸JÀmÐTX×TbÑTbÐScÐceÐfÐfr%   N)r;   r>   )	r   r@   rA   rÀ   rw   rÁ   r9   r5   rÄ   r(   r%   r#   r¿   r¿   j  s-   … à€Dˆ#ƒMØ€CˆƒLØ€CˆƒLØ€IˆsÓôgr%   r¿   c                  óP   — e Zd ZU ded<   d
d„Zddd„Zddd„Zdd„Zddd„Zddd„Z	y	)Ú_CacheStatszdict[str, _CacheStat]Ú_statsc                ó@   — t        j                  t        «      | _        y r'   )ÚcollectionsÚdefaultdictr¿   rÇ   r!   s    r#   r$   z_CacheStats.__init__x  s   € Ü!×-Ñ-¬jÓ9ˆ�r%   c                óH   — | j                   |   xj                  |z  c_        y r'   )rÇ   rÀ   ©r"   ÚnameÚcounts      r#   rÀ   z_CacheStats.miss{  s   € Ø�‰�DÑ×Ò %Ñ'Ör%   c                óH   — | j                   |   xj                  |z  c_        y r'   )rÇ   rÁ   rÌ   s      r#   rÁ   z_CacheStats.hit~  ó   € Ø�‰�DÑ×Ò Ñ&Ör%   c                óN   — |€| j                  |«       y | j                  |«       y r'   )rÀ   rÁ   )r"   rÍ   r7   s      r#   r3   z_CacheStats.get�  s   € Øˆ=Ø�I‰I�d�Oà�H‰H�T�Nr%   c                óH   — | j                   |   xj                  |z  c_        y r'   )rÇ   r9   rÌ   s      r#   r9   z_CacheStats.put‡  rÐ   r%   c                óH   — | j                   |   xj                  |z  c_        y r'   )rÇ   r5   rÌ   s      r#   r5   z_CacheStats.exceptionŠ  s   € Ø�‰�DÑ×#Ò# uÑ,Ö#r%   Nr:   )r–   )rÍ   r>   rÎ   rˆ   r;   r<   )rÍ   r>   r7   zOptional[object]r;   r<   )
r   r@   rA   rw   r$   rÀ   rÁ   r3   r9   r5   r(   r%   r#   rÆ   rÆ   u  s&   … Ø!Ó!ó:ô(ô'óô'õ-r%   rÆ   c                 ó”  — t         j                  t        j                  «      sy dd l} | j                  «       }t        j                  st        d|¬«       nNt        |¬«       t        t        j                  j                  «       «      D ]  \  }}t        d|› d|› �|¬«       Œ t         j                  d|j                  «       «       y )Nr   z None)Úfilez  z: zCache Metrics:%s)rµ   ÚisEnabledForÚloggingÚINFOÚioÚStringIOr2   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ˆqÜ�B�q�c˜˜A˜3�- cÖ*ð	+ô ‡H�HÐ §¡£Õ0r%   )
r*   r>   r·   Úboolr¸   r>   r¹   r>   r;   z!Optional[RemoteCache[JsonDataTy]]r:   )HÚ
__future__r   ÚatexitrÉ   ÚdataclassesÚ	functoolsrP   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_rw   r   rv   r   r   ÚpartialÚremote_fx_cache_get_timedÚremote_fx_cache_put_timedr   rD   rˆ   Úfloatr>   rä   ÚdictÚlistrJ   rO   rL   rV   r[   ry   r”   r¡   r¥   r§   r©   r«   r½   Ú	dataclassr¿   rÆ   r2   Úregisterrã   r(   r%   r#   ú<module>rú      sv  ðÞ "ã Û Û Û Û Û Û 	Û 
Û Ý ß C× Cß 1å ,Ý "Ý &ðÛð
 €g×Ñ˜Ó!€ð €6×ÑÔõð  €FˆIÔà˜V™€FˆIÓ$ñ ˆTƒ]€ÙˆTƒ]€ð .˜I×-Ñ-ØØØ*ØØ@ØôÐ ð .˜I×-Ñ-ØØØ*ØØ@ØôÐ ô ˜ ™ô  ôH�w˜r 2˜v‘ô ð Ø	ˆ#ˆu�c˜4  c¨<Ð&7Ñ!8¸$¸|Ñ:LÐ
LÑMñ€
ô
 Ð+¨J¸Ð,=Ñ>ô  ôÐ"2°2°r°6Ñ":ô ô>R�'˜"‘+ô Rôj2Ð0°Ñ7ô 2ôj)�{ :Ñ.ô )ô8	Ð*ô 	ô	Ð!1ô 	ô	Ð)ô 	ô	Ð-ô 	ô	Ð+ô 	ðØ	ðàðð ðð ð	ð
 'óð0 ×Ñ÷gð gó ðg÷-ñ -ñ2 ‹m€ð ‡�ò1ó ñ1øðw ò ØƒEðús   ÁG ÇG(Ç'G(