
    `i2              	      Z   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n# e$ r dZY nw xY w ej        e          Z  ej!                    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j*        eddddd          Z+ ej*        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@d?d8ZAejB         G d9 d:                      ZC G d; d<          ZD eD            ZEejF        d@d>            ZGdS )A    )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                  Z    e Zd ZdZddZedd            Zedd            ZddZddZ	dS )RemoteCacheBackendz
    A backend implementation for accessing a remote/distributed cache.  Only
    works with bytes in/out.  For structured data use a RemoteCache.
    returnNonec                >    dt          |           j         | _        d S )Nzbackend:)type__name___nameselfs    p/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/torch/_inductor/remote_cache.py__init__zRemoteCacheBackend.__init__D   s    5T

 355


    keystrOptional[_T]c                    d S N r$   r(   s     r%   _getzRemoteCacheBackend._getG       r'   datar   c                    d S r,   r-   r$   r(   r1   s      r%   _putzRemoteCacheBackend._putK   r0   r'   c                    	 |                      |          }t                              | j        |           n.# t          $ r! t                              | j                    w xY w|S r,   )r/   cache_statsgetr"   	Exception	exceptionr$   r(   values      r%   r7   zRemoteCacheBackend.getO   sj    	IIcNNEOODJ.... 	 	 	!!$*---	 s	   58 +A#c                    	 |                      ||           t                              | j                   d S # t          $ r! t                              | j                    w xY wr,   )r4   r6   putr"   r8   r9   r3   s      r%   r=   zRemoteCacheBackend.putX   si    	IIc4   OODJ''''' 	 	 	!!$*---	s	   59 +A$Nr   r   r(   r)   r   r*   )r(   r)   r1   r   r   r   )
r!   
__module____qualname____doc__r&   r   r/   r4   r7   r=   r-   r'   r%   r   r   >   s         
6 6 6 6    ^    ^        r'   r   c                  >    e Zd Zedd            Zed	d            ZdS )
RemoteCacheSerder1   r   r   r   c                    d S r,   r-   r$   r1   s     r%   encodezRemoteCacheSerde.encodec   r0   r'   c                    d S r,   r-   rF   s     r%   decodezRemoteCacheSerde.decodeg   r0   r'   N)r1   r   r   r   )r1   r   r   r   )r!   r@   rA   r   rG   rI   r-   r'   r%   rD   rD   b   sR           ^    ^  r'   rD   
JsonDataTyc                      e Zd ZddZd	dZdS )
RemoteCacheJsonSerder1   rJ   r   bytesc                F    t          t          j        |          d          S )Nascii)rM   jsondumpsrF   s     r%   rG   zRemoteCacheJsonSerde.encoder   s    TZ%%w///r'   c                *    t          j        |          S r,   )rP   loadsrF   s     r%   rI   zRemoteCacheJsonSerde.decodeu   s    z$r'   N)r1   rJ   r   rM   )r1   rM   r   rJ   r!   r@   rA   rG   rI   r-   r'   r%   rL   rL   q   s<        0 0 0 0           r'   rL   c                      e Zd ZddZddZdS )RemoteCachePassthroughSerder1   r   r   c                    |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)r1   r   r   r   rT   r-   r'   r%   rV   rV   y   s<                r'   rV   c                  v    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dS )*RemoteCacheNz/Optional[Callable[[], RemoteCacheBackend[Any]]]backend_override_clsbackendRemoteCacheBackend[_U]serdeRemoteCacheSerde[_T, _U]r   r   c                ^    | j         j        x} |            | _        n|| _        || _        d S r,   )	__class__r\   r]   r_   )r$   r]   r_   override_clss       r%   r&   zRemoteCache.__init__   s5     !N??LL'<>>DLL"DL


r'   r(   r)   r*   c                :   t          d                                          5  |                                 }	 |                     ||          }t                              t          |           j        |           nU# t          $ rH}t          	                    t          |           j                   |rt          |          |_         d }~ww xY w	 |                     |           n# |                     |           w xY w|cd d d            S # 1 swxY w Y   d S )Nzpytorch.remote_cache.get)r   guard_create_sampler/   r6   r7   r    r!   r8   r9   r)   fail_reason_log_sample)r$   r(   sampleresultes        r%   r7   zRemoteCache.get   sZ   455;;== 	 	((**F	)3//T

 3V<<<<   %%d4jj&9::: 0),QF&	 =   ((((  ((((	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   DAA<;C(<
CAC		CC(D(C??DDDr;   r   c                B   t          d                                          5  |J |                                 }	 |                     |||           t                              t          |           j                   nU# t          $ rH}t          	                    t          |           j                   |rt          |          |_         d }~ww xY w	 |                     |           n# |                     |           w xY w	 d d d            d S # 1 swxY w Y   d S )Nzpytorch.remote_cache.put)r   re   rf   r4   r6   r=   r    r!   r8   r9   r)   rg   rh   )r$   r(   r;   ri   rk   s        r%   r=   zRemoteCache.put   sg   455;;== 	) 	)$$$((**F	)		#uf---T

 34444   %%d4jj&9::: 0),QF&	 5   ((((  (((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)sH   DAB ?C, 
C
ACCC,D,DDDDr1   r   ri   Optional[Sample]c                6    | j                             |          S r,   )r_   rI   )r$   r1   ri   s      r%   _decodezRemoteCache._decode   s    z  &&&r'   objectc                6    | j                             |          S r,   )r_   rG   )r$   r;   ri   s      r%   _encodezRemoteCache._encode   s    z  '''r'   c                `    |                      |          x}r|                     ||          S d S r,   )_backend_getro   )r$   r(   ri   r1   s       r%   r/   zRemoteCache._get   s6    $$S)))4 	.<<f---tr'   c                6    | j                             |          S r,   )r]   r7   r.   s     r%   rt   zRemoteCache._backend_get   s    |$$$r'   c                ^    |                      ||          }|                     ||           d S r,   )rr   _backend_put)r$   r(   r;   ri   r1   s        r%   r4   zRemoteCache._put   s1    ||E6**#t$$$$$r'   c                <    | j                             ||           d S r,   )r]   r=   r3   s      r%   rw   zRemoteCache._backend_put   s     d#####r'   c                    d S r,   r-   r#   s    r%   rf   zRemoteCache._create_sample   s    tr'   c                    d S r,   r-   )r$   ri   s     r%   rh   zRemoteCache._log_sample   s    r'   )r]   r^   r_   r`   r   r   r?   )r(   r)   r;   r   r   r   )r1   r   ri   rm   r   r   )r;   r   ri   rm   r   rp   )r(   r)   ri   rm   r   r*   )r(   r)   r   rp   )r(   r)   r;   r   ri   rm   r   r   )r(   r)   r1   rp   r   r   )r   rm   )ri   rm   r   r   )r!   r@   rA   r\   __annotations__r&   r7   r=   ro   rr   r/   rt   r4   rw   rf   rh   r-   r'   r%   r[   r[      s        LPPPPP      $) ) ) ) ' ' ' '( ( ( (
   % % % %
% % % %$ $ $ $
        r'   r[   c                  d     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]_rediscache_idr)   r   r   c           	        t                                                       t          st          d          dt          j        v r6t          j                            t          j        d                   | _        d S t          j        t          j        	                    dd          t          t          j        	                    dd                              | _        d S )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$   r   rb   s     r%   r&   z RedisRemoteCacheBackend.__init__   s     	TRSSS$
22+..rz:S/TUUDKKK+Z^^$>LL(BDIIJJ  DKKKr'   r(   Optional[bytes]c                    | j         sd S 	 | j                             |          }n"# t          j        j        $ r d | _         Y d S w xY w|t          |t                    sJ |S r,   )r~   r7   r   
exceptionsConnectionError
isinstancerM   r:   s      r%   r/   zRedisRemoteCacheBackend._get  s{    { 	4	KOOC((EE/ 	 	 	 DK44		 }
5% 8 8}}8s   & AAr1   rM   c                    | j         sd S 	 | j                             ||           d S # t          j        j        $ r d | _         Y d S w xY wr,   )r~   setr   r   r   r3   s      r%   r4   zRedisRemoteCacheBackend._put  sb    { 	F	KOOC&&&&&/ 	 	 	 DKKKK	s   ( AAr   r)   r   r   )r(   r)   r   r   )r(   r)   r1   rM   r   r   )r!   r@   rA   rB   r~   r{   r&   r   r/   r4   __classcell__rb   s   @r%   r}   r}      s           %)F((((         X" 
 
 
 X
 
 
 
 
r'   r}   c                  `     e Zd Zd fdZddZed fd            Zed fd            Z xZS )RedisRemoteCacher   r)   r   r   c                   | j         j        r&t          j        t          t
                   d           }nt          |          }t                      }t                      	                    ||           d}d| d| | _
        d S )N   zpt2:z	::{key}:c)rb   r\   typingcastr   rM   r}   rL   r   r&   _key_fmt)r$   r   r]   r_   versionrb   s        r%   r&   zRedisRemoteCache.__init__(  s}     >. 	8k"4U";TBBGG-h77G$&&%(((=x==G==r'   r(   c                8    | j                             |          S )N)r(   )r   formatr.   s     r%   _get_keyzRedisRemoteCache._get_key5  s    }###,,,r'   ri   rm   Optional[JsonDataTy]c                r    |                      |          }t                                          ||          S r,   )r   r   r/   )r$   r(   ri   rb   s      r%   r/   zRedisRemoteCache._get8  s,    mmC  ww||C(((r'   r;   rJ   c                x    |                      |          }t                                          |||           d S r,   )r   r   r4   )r$   r(   r;   ri   rb   s       r%   r4   zRedisRemoteCache._put=  s4    mmC  S%(((((r'   r   )r(   r)   r   r)   )r(   r)   ri   rm   r   r   )r(   r)   r;   rJ   ri   rm   r   r   )	r!   r@   rA   r&   r   r   r/   r4   r   r   s   @r%   r   r   '  s        > > > > > >- - - - ) ) ) ) ) X) ) ) ) ) ) X) ) ) ) )r'   r   c                      e Zd ZdS )RemoteAutotuneCacheNr!   r@   rA   r-   r'   r%   r   r   C          Dr'   r   c                      e Zd ZdS )RemoteBundledAutotuneCacheNr   r-   r'   r%   r   r   G  r   r'   r   c                      e Zd ZdS )RemoteFxGraphCacheNr   r-   r'   r%   r   r   K  r   r'   r   c                      e Zd ZdS )RemoteAOTAutogradCacheNr   r-   r'   r%   r   r   O  r   r'   r   c                      e Zd ZdS )RemoteDynamoPGOCacheNr   r-   r'   r%   r   r   S  r   r'   r   r(   r)   	is_fbcodeboolfb_cache_clsoss_cache_clsr   !Optional[RemoteCache[JsonDataTy]]c                "   	 |r.dd l }t          |j        j        j        |          } ||           S t
          j        t                   }t          ||          } ||           S # t          $ r  t          
                    dd           Y d S 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!   r8   logwarning)r(   r   r   r   torch	cache_clsthis_modules          r%   create_cacher   W  s     		"2222 2 ?NNI9S>>!+h/K];;I9S>>!   5EEEtts   /A$ 1A$ $&BBc                  P    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d
S )
_CacheStatr   r   misshitr=   r9   r   r)   c           	     H    d| j          d| j         d| j         d| j         d	S )Nz{hit: z, miss: z, put: z, exception: })r   r   r=   r9   r#   s    r%   __str__z_CacheStat.__str__v  s5    fff49ffTXffTXTbffffr'   N)r   r)   )	r!   r@   rA   r   r{   r   r=   r9   r   r-   r'   r%   r   r   o  sh         DMMMMCLLLLCLLLLIg g g g g gr'   r   c                  R    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	dS )_CacheStatszdict[str, _CacheStat]_statsr   r   c                B    t          j        t                    | _        d S r,   )collectionsdefaultdictr   r   r#   s    r%   r&   z_CacheStats.__init__}  s    !-j99r'   r   namer)   countr   c                <    | j         |         xj        |z  c_        d S r,   )r   r   r$   r   r   s      r%   r   z_CacheStats.miss  s#    D%'r'   c                <    | j         |         xj        |z  c_        d S r,   )r   r   r   s      r%   r   z_CacheStats.hit  #    D&r'   r;   Optional[object]c                b    ||                      |           d S |                     |           d S r,   )r   r   )r$   r   r;   s      r%   r7   z_CacheStats.get  s-    =IIdOOOOOHHTNNNNNr'   c                <    | j         |         xj        |z  c_        d S r,   )r   r=   r   s      r%   r=   z_CacheStats.put  r   r'   c                <    | j         |         xj        |z  c_        d S r,   )r   r9   r   s      r%   r9   z_CacheStats.exception  s#    D##u,####r'   Nr>   )r   )r   r)   r   r   r   r   )r   r)   r;   r   r   r   )
r!   r@   rA   r{   r&   r   r   r7   r=   r9   r-   r'   r%   r   r   z  s         !!!!: : : :( ( ( ( (' ' ' ' '   ' ' ' ' '- - - - - - -r'   r   r   c                    t                               t          j                  sd S dd l} |                                 }t          j        st          d|           nXt          |           t          t          j        
                                          D ]\  }}t          d| d| |           t                               d|                                           d S )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    GL)) III
++--C +gC     3;-335566 	+ 	+DAq-q--A--c*****HH00000r'   )
r(   r)   r   r   r   r)   r   r)   r   r   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_r{   r    rp   r   r   partialremote_fx_cache_get_timedremote_fx_cache_put_timedr   rD   r   floatr)   r   dictlistrJ   rM   rL   rV   r[   r}   r   r   r   r   r   r   r   	dataclassr   r   r6   registerr   r-   r'   r%   <module>r     s?   " " " " " " "                				 



        C C C C C C C C C C C C C C C C 1 1 1 1 1 1 1 1 , , , , , , " " " " " " & & & & & &LLLL   EEE g!! 6 %       FVF$$$$ WT]]WT]] .I-*@    .I-*@                  H    wr2v    	#uc4c<&7!8$|:L
LM

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