+
    –°³jæœ  ã                  ó  a € 0 t $ R t^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIHt ^ RIHtHt ^ RIHtHt ^ RIt^ RIt^ RIt^ RIHt ^ RIHtHtH t H!t! ^ RI"H#t# ^ RI$H%t% ^ R	I&H't'H(t(H)t) ^ R
I*H+t+ ]'       d   ^ RI,t,^ RI-H.t. ^ RI/H0t0H1t1  ! R R]24      t3]	Ph                  ! ]54      t6]	Ph                  ! R4      t7^
t8]Pr                  R R l4       t:R R lt;R R lt<]Pz                  ! RR7       ! R R4      4       t>]Pz                   ! R R4      4       t?Rs@R]AR&   RsBR]AR&   RsCR ]AR!&   ]D! 4       sER"]AR#&   ]Pz                  ! RR7       ! R$ R%4      4       tF]! R&4      tG ! R' R(]P�                  4      tI]IP”                  tK ! R) R*]P�                  4      tL]LP”                  tM]Pz                   ! R+ R,4      4       tNR-R/R. R/ lltOR-R/R0 R1 lltPR2 R3 ltQR4 R5 ltRR6 R7 ltSR8 R9 ltTR: R; ltUR< R= ltVR> R? ltWR@ RA ltXRB RC ltYRD RE ltZRF RG lt[](P¸                   ! RH RI]'4      4       t]RJ RK lt^RL RM lt_R`RN RO llt`RP RQ ltaRR RS ltbRT RU ltcRV RW ltdRX RY lteRZ R[ ltfRaR\ R] lltgR^ R_ lthR# )ba  
Profile Guided Optimization (PGO) implementation for Dynamo.

This module provides functionality for caching and managing code state profiles
that guide optimization decisions in Dynamo. It implements both local and remote
caching mechanisms for storing profile information across runs, handles profile
merging across distributed ranks, and manages the lifecycle of profile data
during compilation. The profiles track dynamic vs static properties of tensors
and help Dynamo make better specialization decisions.
)ÚannotationsN)Údefaultdict)ÚTYPE_CHECKINGÚTypeVar)ÚoverrideÚSelf)ÚCompileEventLoggerÚdynamo_timedÚset_feature_useÚ	warn_once)Ú	is_fbcode)Útrace_structured_artifact)ÚCacheArtifactÚCacheArtifactFactoryÚCacheArtifactRecorder)Ú
OrderedSet)ÚInstructionTranslatorBase)Ú
JsonDataTyÚRemoteCachec                  ó   € ] tR t^7tRtR# )ÚReservedWorkflowIdUserError© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    ÚR/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_dynamo/pgo.pyr   r   7   s   † Ûr   r   z%torch.fx.experimental.symbolic_shapesc               ó    € V ^8„  d   QhRRRR/# )é   ÚfilepathÚstrÚreturnr   )Úformats   "r   Ú__annotate__r%   t   s   € ÷ 	ñ 	 Cð 	¨Cñ 	r   c                ó,  € \         P                  P                  V 4      '       g   V # \        V R 4      ;_uu_ 4       pVP	                  4       p\
        P                  ! V4      p\        VR,          R4      pVuuRRR4       #   + '       g   i     R# ; i)Úrbl   ÿÿ Ú08xN)ÚosÚpathÚexistsÚopenÚreadÚzlibÚcrc32r$   )r!   ÚfileÚcontentÚcrc32_valueÚhashs   &    r   Ú_hash_containing_filer4   s   sg   € ô �7‰7�>‰>˜(×#Ò#Øˆä	ˆh˜×	Ô	 Ø—)‘)“+ˆÜ—j’j Ó)ˆÜ�k JÕ.°Ó6ˆØ÷	 
×	×	Ó	ús   ¼;BÂB	c               ó    € V ^8„  d   QhRRRR/# ©r    r1   ztypes.CellTyper#   Úobjectr   )r$   s   "r   r%   r%   €   s   € ÷ ñ  .ð °Vñ r   c                ód   € \        V 4      '       d   \        V R 4      '       d   V P                  # R# )Ú__code__N)ÚcallableÚhasattrr9   ©r1   s   &r   Ú_get_closure_contentr=   €   s(   € Ü�×ÒœW W¨j×9Ò9Ø×ÑÐÙr   c               ó    € V ^8„  d   QhRRRR/# r6   r   )r$   s   "r   r%   r%   †   s   € ÷ ñ  Nð °vñ r   c                óR   €  \        V P                  4      #   \         d     R # i ; i©N)r=   Úcell_contentsÚ
ValueErrorr<   s   &r   Ú_get_cell_hash_contentrC   †   s*   € ðÜ# G×$9Ñ$9Ó:Ð:øÜô Úðús   ‚ —&¥&T)Úfrozenc                  óŒ   € ] tR t^Žt$ R]R&   R]R&   R]R&   R]R&   RtR]R	&   R
 R ltR R ltR R lt]	RR R ll4       t
RtR# )ÚCodeIdr"   ÚfilenameÚintÚfirstlinenoÚnameÚ	file_hashNú
int | NoneÚclosure_hashc               ó    € V ^8„  d   QhRRRR/# )r    Úotherr7   r#   Úboolr   )r$   s   "r   r%   ÚCodeId.__annotate__�   s   € ÷ 
ñ 
˜Fð 
 tñ 
r   c                	ó*  € \        V\        4      '       g   R # V P                  VP                  8H  ;'       d\    V P                  VP                  8H  ;'       d;    V P                  VP                  8H  ;'       d    V P
                  VP
                  8H  # ©F)Ú
isinstancerF   rK   rI   rJ   rM   )ÚselfrO   s   &&r   Ú__eq__ÚCodeId.__eq__�   s   € Ü˜%¤×(Ò(Ùà�N‰N˜eŸo™oÑ-÷ 8ð 8Ø× Ñ  E×$5Ñ$5Ñ5÷8ð 8à—	‘	˜UŸZ™ZÑ'÷8ð 8ð ×!Ñ! U×%7Ñ%7Ñ7ð		
r   c               ó   € V ^8„  d   QhRR/# )r    r#   rH   r   )r$   s   "r   r%   rQ   ¨   s   € ÷ Vñ V˜#ñ Vr   c                	óp   € \        V P                  V P                  V P                  V P                  34      # r@   )r3   rK   rJ   rI   rM   ©rU   s   &r   Ú__hash__ÚCodeId.__hash__¨   s*   € Ü�T—^‘^ T§Y¡Y°×0@Ñ0@À$×BSÑBSÐTÓUÐUr   c               ó   € V ^8„  d   QhRR/# ©r    r#   r"   r   )r$   s   "r   r%   rQ   «   s   € ÷ Wñ W˜ñ Wr   c                	ón   € R V P                    RV P                   RV P                   RV P                   2# )zhash(Ú)Ú:)rK   rG   rI   rJ   rZ   s   &r   Ú__str__ÚCodeId.__str__«   s5   € Ø�t—~‘~Ð& a¨¯© °a¸×8HÑ8HÐ7IÈÈ4Ï9É9È+ÐVÐVr   c               ó$   € V ^8„  d   QhRRRRRR/# )r    Úcodeútypes.CodeTypeÚclosurez!tuple[types.CellType, ...] | Noner#   rF   r   )r$   s   "r   r%   rQ   ¯   s$   € ÷ 
ñ 
Øð
Ø'Hð
à	ñ
r   c                	ó   € R pV'       d6   \        \        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      4      p\        V P                  V P                  V P
                  \        V P                  4      V4      # )Nc              3  ó8   "  € T F  p\        V4      x € K  	  R # 5ir@   )rC   )Ú.0Úcs   & r   Ú	<genexpr>ÚCodeId.make.<locals>.<genexpr>´   s   é € Ð%QÉÀAÔ&<¸Q×&?Ð&?Ëùs   ‚)r3   ÚtuplerF   Úco_filenameÚco_firstlinenoÚco_namer4   )re   rg   rM   s   && r   ÚmakeÚCodeId.make®   sf   € ð ˆßÜ§¤Ñ%QÉÓ%Q§¡Ñ%QÉÓ%QÓ QÓRˆLäØ×ÑØ×ÑØ�L‰LÜ! $×"2Ñ"2Ó3Øó
ð 	
r   r   r@   )r   r   r   r   Ú__annotations__rM   rV   r[   rb   Ústaticmethodrr   r   r   r   r   rF   rF   Ž   sH   ‡ àƒMØÓØ
ƒIð ƒNØ#€L�*Ó#õ
õVõWð ö
ó ô
r   rF   c                  óJ   € ] tR t^¿t$ ]P
                  ! R R7      tR]R&   RtR# )Ú	CodeStatec                 	ó    € \        \        4      # r@   )r   ÚFrameStateSizeEntryr   r   r   Ú<lambda>ÚCodeState.<lambda>Â   s
   € ¤Ô,?Ô @r   )Údefault_factoryz%defaultdict[str, FrameStateSizeEntry]Úautomatic_dynamicr   N)	r   r   r   r   ÚdataclassesÚfieldr}   rt   r   r   r   r   rw   rw   ¿   s   ‡ à?J×?PÒ?PÙ@ô@ÐÐ<÷ r   rw   ú%defaultdict[CodeId, CodeState] | NoneÚ_INIT_CODE_STATEÚ_CODE_STATEFrP   Ú_LOGGED_DYNAMIC_ALLOWLISTzset[str]Ú_KNOWN_DYNAMIC_SOURCESc                  ó&   € ] tR t^Ìt$ RtR]R&   RtR# )ÚInferStridea(  
Denotes the quantity stride[dim] * size[dim], which is what the stride would
be for the next physical dimension that results in a contiguous layout.

For example, given size = [2, 3], stride = [3, 1], we can replace this with
stride = [InferStride(1), 1], because InferStride(1) = stride[1] * size[1] = 1 * 3 = 3

Indirecting the representation in this way is important for the join operation
on strides as if we join [2, 3][3, 1] and [2, 4][4, 1],
we don't want [2, None][None, 1] which would get eventually symbolized into
[2, s0][s1, 1] (notice that the relationship between s0 and s1 is broken).
If we instead rewrite the expressions as InferStride so we have [2, 3][InferStride(1), 1]
and [2, 4][InferStride(1), 1] we now join to [2, None][InferStride(1), 1] will
result in [2, s0][s0, 1], as desired.
rH   Údimr   N)r   r   r   r   Ú__doc__rt   r   r   r   r   r†   r†   Ì   s   ‡ ñð  
‡Hr   r†   Ú_Tc                  ó   € ] tR t^ätRt^ tRtR# )Ú	AutoUnsetz
The identity element of our semilattice, a generic "don't know" element that
is always subsumed when we get more information.
r   N©r   r   r   r   rˆ   Útokenr   r   r   r   r‹   r‹   ä   ó   † ñð
 „Er   r‹   c                  ó   € ] tR t^ðtRt^ tRtR# )ÚAutoDynamiczv
The top element of our (bounded) semilattice, whenever you merge this with
any other element you always get it again
r   NrŒ   r   r   r   r�   r�   ð   rŽ   r   r�   c                  óÌ  € ] tR t^üt$ ]P
                  ! ]R7      tR]R&   ]P
                  ! ]R7      t	R]R&   ]P
                  ! ]R7      t
R]R&   ]P
                  ! RR	R
7      tR]R&   ]P
                  ! RR	R
7      tR]R&   R R ltR R ltR R ltR R lt]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R  l4       t]R! R" l4       tR# R$ ltR%tR# )&ry   )Údefaultzint | AutoDynamic | AutoUnsetÚscalarz7AutoDynamic | AutoUnset | tuple[int | AutoDynamic, ...]ÚsizezEAutoDynamic | AutoUnset | tuple[int | AutoDynamic | InferStride, ...]ÚstrideNF)r’   Úcompareztuple[int | None, ...] | NoneÚexcluded_sizesrL   Úexcluded_scalarc               ó   € V ^8„  d   QhRR/# r^   r   )r$   s   "r   r%   Ú FrameStateSizeEntry.__annotate__  s   € ÷ 'ñ '˜ñ 'r   c                	óÐ  a€ R  R loR V3R llpV P                   \        J d:   V P                  \        J d&   V P                  \        J d   R# RV P                   2# V P                  \        J di   \	        V P                   \
        4      '       dI   \	        V P                  \
        4      '       d)   RV! V P                   4       RV! V P                  4       2# R\        V 4       2# )	c               ó    € V ^8„  d   QhRRRR/# )r    Úsz+int | AutoDynamic | AutoUnset | InferStrider#   r"   r   )r$   s   "r   r%   Ú0FrameStateSizeEntry.render.<locals>.__annotate__  s   € ÷ 		ñ 		ÐHð 		ÈSñ 		r   c                ó”   € V \         J d   R # V \        J d   R# \        V \        4      '       d   RV P                   R2# \        V 4      # )Ú?z
auto unsetzS(r`   )Úauto_dynamicÚ
auto_unsetrT   r†   r‡   r"   )r�   s   &r   Úrender_singleÚ1FrameStateSizeEntry.render.<locals>.render_single  s?   € Ø”LÓ ÙØ”j“á#Ü˜Aœ{×+Ò+Ø˜AŸE™E˜7 !�}Ð$ä˜1“v�r   c               ó    € V ^8„  d   QhRRRR/# )r    Ússz+tuple[int | AutoDynamic | InferStride, ...]r#   r"   r   )r$   s   "r   r%   rž     s   € ÷ 	Gñ 	GÐHð 	GÈSñ 	Gr   c                óV   <€ R RP                  V3R lV  4       4      ,           R,           # )Ú[z, c              3  ó4   <"  € T F  pS! V4      x € K  	  R # 5ir@   r   )rj   r�   r£   s   & €r   rl   ÚCFrameStateSizeEntry.render.<locals>.render_tuple.<locals>.<genexpr>  s   øé € Ð"@¹R¸¡=°×#3Ð#3»Rùs   ƒÚ])Újoin)r¦   r£   s   &€r   Úrender_tupleÚ0FrameStateSizeEntry.render.<locals>.render_tuple  s"   ø€ Ø˜Ÿ™Ô"@¹RÓ"@Ó@Õ@À3ÕFÐFr   zfully dynamic scalar or tensorzscalar ztensor size=z stride=zunusual )r”   r¡   r•   r“   rT   rn   Úrepr)rU   r­   r£   s   & @r   ÚrenderÚFrameStateSizeEntry.render  s·   ø€ õ		÷	Gð 	Gð �9‰9œÓ$¨¯©¼Ó)DØ�{‰{œlÓ*Ù7à  §¡ Ð.Ð.Ø�[‰[œLÓ(Ü˜$Ÿ)™)¤U×+Ò+´
¸4¿;¹;Ì×0NÒ0NØ%¡l°4·9±9Ó&=Ð%>¸hÁ|ÐTX×T_ÑT_ÓG`ÐFaÐbÐbð œ$˜t›*˜Ð&Ð&r   c               ó   € V ^8„  d   QhRR/# ©r    r#   ÚNoner   )r$   s   "r   r%   rš   )  s   € ÷ 
-ñ 
-˜tñ 
-r   c                	ó   € \        V P                  \        P                  4      '       d   \	        V P                  4      h\        V P
                  \        4      '       d?   V P
                   F.  p\        V\        P                  4      '       g   K%  \	        V4      h	  \        V P                  \        4      '       dA   V P                   F.  p\        V\        P                  4      '       g   K%  \	        V4      h	  R # R # r@   )rT   r“   ÚtorchÚSymIntÚAssertionErrorr”   rn   r•   )rU   r�   Ús1s   &  r   Ú__post_init__Ú!FrameStateSizeEntry.__post_init__)  s£   € Ü�d—k‘k¤5§<¡<×0Ò0Ü  §¡Ó-Ð-Ü�d—i‘i¤×'Ò'Ø—Y”Y�Ü˜a¤§¡×.Ô.Ü(¨Ó+Ð+ñ ô �d—k‘k¤5×)Ò)Ø—k”k�Ü˜b¤%§,¡,×/Ô/Ü(¨Ó,Ð,ó "ñ *r   c               ó    € V ^8„  d   QhRRRR/# ©r    r‡   rH   r#   rP   r   )r$   s   "r   r%   rš   5  s   € ÷ .ñ . 3ð .¨4ñ .r   c                	óŒ   € V P                   \        J d   R # V P                   \        J d   R# V P                   V,          \        J # )TF)r”   r¡   r¢   ©rU   r‡   s   &&r   Úis_size_dynamicÚ#FrameStateSizeEntry.is_size_dynamic5  s3   € Ø�9‰9œÓ$ÙØ�9‰9œ
Ó"ÙØ�y‰y˜�~¤Ð-Ð-r   c               ó    € V ^8„  d   QhRRRR/# r½   r   )r$   s   "r   r%   rš   <  s   € ÷ 0ñ 0 Sð 0¨Tñ 0r   c                	ól  € \        V P                  \        4      '       dO   \        ;QJ d&    R  V P                   4       F  '       d   K   RM	  RM! R  V P                   4       4      '       g   R# V P                  \
        J d   R# V P                  \        J d   R# V P                  V,          \
        J # )c              3  óD   "  € T F  p\        V4      \        J x € K  	  R # 5ir@   ©ÚtyperH   ©rj   r�   s   & r   rl   Ú8FrameStateSizeEntry.is_stride_dynamic.<locals>.<genexpr>M  s   é € Ð0SÉÀA´°a³¼CµËùs   ‚ FT)rT   r”   rn   Úallr•   r¡   r¢   r¿   s   &&r   Úis_stride_dynamicÚ%FrameStateSizeEntry.is_stride_dynamic<  sr   € ô" �t—y‘y¤%×(Ò(¯S«SÑ0SÈÏÊÓ0S¯S¯SªSÑ0SÈÏÊÓ0S×-SÒ-SáØ�;‰;œ,Ó&ÙØ�;‰;œ*Ó$ÙØ�{‰{˜3Õ¤<Ð/Ð/r   c               ó    € V ^8„  d   QhRRRR/# )r    Úxsútuple[int, ...]r#   ztuple[AutoDynamic | int, ...]r   )r$   s   "r   r%   rš   W  s   € ÷ Uñ U˜/ð UÐ.Kñ Ur   c                	óZ   € \         ;QJ d    . R  V  4       F  NK  	  5# ! R  V  4       4      # )c              3  ór   "  € T F-  p\        V\        P                  4      '       d   \        MTx € K/  	  R # 5ir@   )rT   r¶   r·   r¡   )rj   Úxs   & r   rl   Ú4FrameStateSizeEntry._munge_symint.<locals>.<genexpr>X  s'   é € ÐTÑQSÈA¤Z°´5·<±<×%@Ò%@•\ÀaÔGÓQSùs   ‚57)rn   )rÍ   s   &r   Ú_munge_symintÚ!FrameStateSizeEntry._munge_symintV  s&   € çŒuÑTÑQSÓT�uÐTˆuÑTÑQSÓTÓTÐTr   c               ó    € V ^8„  d   QhRRRR/# )r    rÑ   rH   r#   ry   r   )r$   s   "r   r%   rš   [  s   € ÷ Uñ U˜Cð UÐ$7ñ Ur   c                	ó.   € \        V\        \        R 7      # ©)r“   r”   r•   )ry   r¡   )ÚclsrÑ   s   &&r   Úmake_scalarÚFrameStateSizeEntry.make_scalarZ  s   € ä"¨!´,Ä|ÔTÐTr   c               ó$   € V ^8„  d   QhRRRRRR/# )r    r”   rÎ   r•   r#   ry   r   )r$   s   "r   r%   rš   _  s$   € ÷ 
ñ 
Ø"ð
Ø,;ð
à	ñ
r   c                	ób   € \        \        V P                  V4      V P                  V4      R 7      # r×   )ry   r¡   rÓ   )rØ   r”   r•   s   &&&r   Úmake_tensorÚFrameStateSizeEntry.make_tensor^  s0   € ô #ÜØ×"Ñ" 4Ó(Ø×$Ñ$ VÓ,ô
ð 	
r   c               ó    € V ^8„  d   QhRRRR/# )r    r”   rÎ   r#   ry   r   )r$   s   "r   r%   rš   i  s   € ÷ 
ñ 
˜_ð 
Ð1Dñ 
r   c                	óL   € \        \        V P                  V4      \        R 7      # r×   )ry   r¢   rÓ   )rØ   r”   s   &&r   Ú	make_sizeÚFrameStateSizeEntry.make_sizeh  s#   € ä"ÜØ×"Ñ" 4Ó(Üô
ð 	
r   c               ó$   € V ^8„  d   QhRRRRRR/# )r    rÑ   r‰   Úyr#   zAutoDynamic | _Tr   )r$   s   "r   r%   rš   q  s"   € ÷ ñ �rð ˜bð Ð%5ñ r   c                	óv   € V \         J d   V# V\         J d   V # V \        J g   V\        J g   W8w  d   \        # V # r@   )r¢   r¡   )rÑ   rä   s   &&r   Ú_merge_atomÚFrameStateSizeEntry._merge_atomp  s8   € à”
‹?ØˆHØ”
‹?ØˆHØ”Ó ¤\Ó 1°Q´VÜÐØˆr   c               ó$   € V ^8„  d   QhRRRRRR/# )r    rÍ   z(AutoDynamic | AutoUnset | tuple[_T, ...]Úysr#   z6AutoDynamic | AutoUnset | tuple[AutoDynamic | _T, ...]r   )r$   s   "r   r%   rš   {  s.   € ÷ Dñ Dà4ðDð 5ðDð 
@ñ	Dr   c                	ó.  a € V\         J d   V# V\         J d   V# V\        J g   V\        J d   \        # \        V4      \        V4      8w  d   \        # \        ;QJ d     . V 3R  l\	        W4       4       F  NK  	  5# ! V 3R  l\	        W4       4       4      # )c              3  óJ   <"  € T F  w  rSP                  W4      x € K  	  R # 5ir@   )ræ   )rj   rÑ   rä   rØ   s   &  €r   rl   Ú6FrameStateSizeEntry._merge_atom_tup.<locals>.<genexpr>ˆ  s   øé € ÐC±{©t¨q�S—_‘_ Q×*Ð*³{ùs   ƒ #)r¢   r¡   Úlenrn   Úzip)rØ   rÍ   ré   s   f&&r   Ú_merge_atom_tupÚ#FrameStateSizeEntry._merge_atom_tupz  st   ø€ ð ”ÓØˆIØ”ÓØˆIØ”Ó ¤|Ó!3ÜÐÜˆr‹7”c˜"“gÔÜÐßŒuÔC´s¸2´{ÓC�uÐCˆuÔC´s¸2´{ÓCÓCÐCr   c               ó    € V ^8„  d   QhRRRR/# )r    rO   r   r#   r   )r$   s   "r   r%   rš   Š  s   € ÷ ñ ˜Tð  dñ r   c                	ó@  € V P                  V P                  VP                  4      p\        V P                  \        4      '       dl   W P                  8w  dG   \        ;QJ d    . R  V P                   4       F  NK  	  5M! R  V P                   4       4      V n        MV P                  e   RV n        W n        \        V P                  4      \        J dK   \        VP                  4      \        J d.   V P                  VP                  8w  d   V P                  V n        M)V P                  \        J d   V P                  e   RV n        V P                  V P                  VP                  4      V n        V P                  V P                  VP                  4      V n        V # )c              3  óP   "  € T F  p\        V4      \        J d   TMR x € K  	  R # 5ir@   rÅ   rÇ   s   & r   rl   Ú.FrameStateSizeEntry.__ior__.<locals>.<genexpr>”  s"   é € ð ,Ù;D°aœ˜a›¤C›‘A¨TÔ1»9ùs   ‚$&N)rï   r”   rT   rn   r—   rÆ   r“   rH   r˜   r¡   ræ   r•   )rU   rO   Únew_sizes   && r   Ú__ior__ÚFrameStateSizeEntry.__ior__Š  s%  € ð ×'Ñ'¨¯	©	°5·:±:Ó>ˆÜ�d—i‘i¤×'Ò'ØŸ9™9Ô$ß&+¤eñ ,Ø;?¿9º9ó,§e¡eñ ,Ø;?¿9º9ó,ó '�Õ#ð ×$Ñ$Ò0Ø&*�Ô#ØŒ	ô
 �—‘Ó¤Ó$Ü�U—\‘\Ó"¤cÓ)Ø—‘˜uŸ|™|Ô+à#'§;¡;ˆDÕ Ø�[‰[œLÓ(¨T×-AÑ-AÒ-MØ#'ˆDÔ Ø×&Ñ& t§{¡{°E·L±LÓAˆŒØ×*Ñ*¨4¯;©;¸¿¹ÓEˆŒØˆr   )r˜   r—   r“   r”   r•   )r   r   r   r   r~   r   r¢   r“   rt   r”   r•   r—   r˜   r°   rº   rÀ   rÊ   ru   rÓ   ÚclassmethodrÙ   rÝ   rá   ræ   rï   rö   r   r   r   r   ry   ry   ü   s*  ‡ à,7×,=Ò,=ÀjÔ,Q€FÐ)ÓQð EP×DUÒDUØôE€DÐ
Aó ð 	×Ò *Ô-ð ÐQó ð 5@×4EÒ4EØ˜eô5€NÐ1ó ð #.×"3Ò"3¸DÈ%Ô"P€O�ZÓPõ'õ:
-õ.õ0ð4 ôUó ðUð ôUó ðUð ô
ó ð
ð ô
ó ð
ð ôó ðð ôDó ðD÷ñ r   ry   Úis_unspecialized_nn_modulec          
     ó,   € V ^8„  d   QhRRRRRRRRR	R/# ©
r    Útxr   rJ   r"   Úentryry   rù   rP   r#   r   )r$   s   "r   r%   r%   ª  sA   € ÷ qñ qØ!ðqà
ðqð ðqð
 !%ðqð ñqr   c               óÈ  aaa
€ \         P                  V P                  V P                  4      p\	        4       V,          p\
        P                  P                  P                  '       Ed)   SVP                  9   pVP                  S,          p\        P                  ! V4      o
VS,          pV'       dÃ   S
P                  VP                  8w  d¨   \        P                  R S4       \        P                  RSSP                  S
P                  4       \         P"                  ! RRSRRRRR\%        S
P                  4      R	\%        SP                  4      /4       V'       d   \        P                  R
S4       RR VVV
3R lllpV'       dþ   S
P&                  VP&                  8w  dã   \)        S
P&                  \*        4      '       d¹   \)        SP&                  \*        4      '       d™   \-        S
P&                  4      \-        SP&                  4      8w  d   V! RRR4       Mj\/        \-        SP&                  4      4       F=  p	S
P&                  V	,          SP&                  V	,          8w  g   K.  V! RRV	 R2RV	4       K?  	  M
V! RRR4       V'       Ed   S
P0                  VP0                  8w  dæ   \)        S
P0                  \*        4      '       d¼   \)        SP0                  \*        4      '       dœ   \-        S
P0                  4      \-        SP0                  4      8w  d   V! RRR4       V# \/        \-        SP0                  4      4       F=  p	S
P0                  V	,          SP0                  V	,          8w  g   K.  V! RRV	 R2RV	4       K?  	   V# V! RRR4       V# VP                  S,          o
\        P                  RSS
P                  SP                  4       SVP                  S&   SpV# )ú2marking %s as dynamic (from automatic dynamic/PGO)z%automatic dynamic int %s val %s != %sr}   rJ   Údim_changedr“   Úreasonzscalar changeÚcachedÚnewz¼%s is converted to a symbolic integer. It is an attribute of a user defined nn module class. If you wish to keep it static, you can mark the nn module class as `torch._dynamo.mark_static`.c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r    Útup_namer"   Úshort_reasonÚlong_reasonÚirL   r#   r´   r   )r$   s   "r   r%   Ú.update_automatic_dynamic.<locals>.__annotate__Ø  s4   € ÷ !	ñ !	Øð!	Ø),ð!	Ø;>ð!	ØCMð!	àñ!	r   c                óf  <€ Vf   \        SV 4      M\        SV 4      V,          pVf   \        SV 4      M\        SV 4      V,          p\        P                  RS4       \        P	                  RV SVVV4       \
        P                  ! RRSRVf   RMTRVR\        V4      R	\        V4      /4       R # )
Nrÿ   z#automatic dynamic %s %s %s %s != %sr}   rJ   r   rÉ   r  r  r  )ÚgetattrÚsymbolic_shape_logÚinfoÚlogÚdebugr   Úinstantr"   )	r  r  r  r  Ú	entry_tupÚold_entry_tuprý   rJ   Ú	old_entrys	   &&&&  €€€r   Úlog_tupÚ)update_automatic_dynamic.<locals>.log_tupØ  sÄ   ø€ ð -.ªI”˜˜xÔ(¼7À5È(Ó;SÐTUÕ;Vð ð
 ’9ô ˜	 8Ô,ä˜Y¨Ó1°!Õ4ð ô
 ×#Ñ#ØDØôô �I‰IØ5ØØØàØôô ×&Ò&Ø#à˜DØ!¨AªI¡5¸1Ø˜kØœc -Ó0Øœ3˜y›>ðö	r   r”   r‡   zdimensionality changezsize(r`   zsize changerO   r•   zstride(zstride changez9automatic dynamic is off, overwriting int %s val %s -> %sr@   )rF   rr   Úf_coderg   Úget_code_stater¶   Ú_dynamoÚconfigÚautomatic_dynamic_shapesr}   Úcopyr“   r  r  r  r  r   r  r"   r”   rT   rn   rí   Úranger•   )rü   rJ   rý   rù   Úcode_idÚframe_stateÚ	is_updateÚ	mut_entryr  r  r  s   &ff$      @r   Úupdate_automatic_dynamicr!  ª  s
  ú€ ô �k‰k˜"Ÿ)™) R§Z¡ZÓ0€GÜ Ó" 7Õ+€KÜ‡}�}×Ñ×4×4Ñ4Ø˜K×9Ñ9Ñ9ˆ	Ø×1Ñ1°$Õ7ˆ	Ü—I’I˜iÓ(ˆ	Ø�UÕˆ	÷ ˜×)Ñ)¨Y×-=Ñ-=Ô=Ü×#Ñ#ØDØôô �I‰IØ7ØØ—‘Ø× Ñ ô	ô ×&Ò&Ø#à˜DØ! 8Ø˜oØœc )×"2Ñ"2Ó3Øœ3˜uŸ|™|Ó,ðô	÷ *Ü—‘ðOð ô	÷!	ô !	÷F ˜Ÿ™¨9¯>©>Ô9Ü˜)Ÿ.™.¬%×0Ò0´ZÀÇ
Á
ÌE×5RÒ5RÜ�y—~‘~Ó&¬#¨e¯j©j«/Ô9Ù˜F EÐ+BÕCä"¤3 u§z¡z£?Ö3˜Ø$Ÿ>™>¨!Õ,°·
±
¸1µÖ=Ù# F¨e°A°3°a¨L¸-ÈÖKò 4ñ ˜ ¨Ô1çˆ9˜×)Ñ)¨Y×-=Ñ-=Ô=Ü˜)×*Ñ*¬E×2Ò2´zÀ%Ç,Á,ÔPU×7VÒ7VÜ�y×'Ñ'Ó(¬C°·±Ó,=Ô=Ù˜H eÐ-DÔEð$ Ðô! #¤3 u§|¡|Ó#4Ö5˜Ø$×+Ñ+¨AÕ.°%·,±,¸qµ/ÖAÙ# H°¸°s¸!¨n¸oÈqÖQò 6ð  Ðñ ˜ '¨7Ô3ð Ðð  ×1Ñ1°$Õ7ˆ	Ü�	‰	ØGØØ×ÑØ�L‰Lô		
ð /4ˆ×%Ñ% dÑ+Øˆ	àÐr   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R/# rû   r   )r$   s   "r   r%   r%     s:   € ÷ .ñ .Ø!ð.à
ð.ð ð.ð
 !%ð.ð ñ.r   c               ó@  € V P                   ;pf   \        V VVVR7      # VP                  f   W$P                  P                  V&   V# R pVP                   F5  pWP                  9   g   K  \        V VVP                  V,          VR7      pK7  	  Vf   \        R4      hV# )N)rù   zCexpected at least one matching automatic_dynamic entry across ranks)Údistributed_stater!  Ú
all_statesÚlocal_stater}   r¸   )rü   rJ   rý   rù   ÚstÚresÚ	sub_states   &&&$   r   Úprocess_automatic_dynamicr*    s³   € ð ×"Ñ"Ð"ˆÒ+Ü'ØØØØ'Aô	
ð 	
ð 
�‰Ò	ð 27�‰×(Ñ(¨Ñ.Øˆð ˆØŸœˆIØ×2Ñ2Ö2Ü.ØØØ×/Ñ/°Õ5Ø/Iô	’ñ 'ð Š;Ü ØUóð ð ˆ
r   c               ó    € V ^8„  d   QhRRRR/# )r    Úkeyr"   r#   r   )r$   s   "r   r%   r%   O  s   € ÷ !ñ !˜#ð ! #ñ !r   c                óø   € R p\         P                  ! 4       '       d1   \         P                  ! 4       '       d   \         P                  ! 4       p\        P
                  P                  P                  pV  RV RV 2# )Nra   )ÚdistÚis_availableÚis_initializedÚget_rankr¶   Úcompilerr  Úcache_key_tag)r,  ÚrankÚtags   &  r   Úformat_cache_keyr6  O  s]   € ð €DÜ×Ò×Òœt×2Ò2×4Ò4Ü�}Š}‹ˆä
�.‰.×
Ñ
×
-Ñ
-€CØˆU�!�D�6˜˜3˜%Ð Ð r   c               ó   € V ^8„  d   QhRR/# )r    r#   ú
str | Noner   )r$   s   "r   r%   r%   Z  s   € ÷ ñ �zñ r   c                 óŒ  € \         P                  P                  P                  '       d   \	        R 4       R# \         P                  P                  P
                  ;p e.   V P                  R4      '       d   \        R4      h\        V 4      # \         P                  P                  4       ;pe   Vw  r#\        RV RV 24      # R# )úGdynamo_pgo force disabled by torch.compiler.config.force_disable_cachesNúmast:z•torch.compiler.config.job_id with prefix 'mast:' is reserved for automatically generated job id associated with a specific MAST job name and version.ra   )r¶   r2  r  Úforce_disable_cachesr   Újob_idÚ
startswithr   r6  Ú_utils_internalÚget_mast_job_name_version)ÚrÚname_versionÚmast_job_nameÚmast_job_versions       r   Úget_cache_keyrE  Z  s²   € ä‡~�~×Ñ×1×1Ð1ÜØUô	
ñ ô �^‰^×"Ñ"×)Ñ)Ð)ˆÒ6Ø�<‰<˜× Ò Ü-ð$óð ô
   Ó"Ð"ä×-Ñ-×GÑGÓIÐIˆÒVØ*6Ñ'ˆÜ %¨ °aÐ8HÐ7IÐ JÓKÐKár   c               ó    € V ^8„  d   QhRRRR/# )r    Ú
sticky_keyr"   r#   r8  r   )r$   s   "r   r%   r%   t  s   € ÷ (ñ ( Cð (¨Jñ (r   c                ó†   € \         P                  P                  P                  '       d   \	        R 4       R# \        V 4      # )r:  N)r¶   r2  r  r<  r   r6  )rG  s   &r   Úget_extra_cache_keyrI  t  s3   € Ü‡~�~×Ñ×1×1Ð1ÜØUô	
ñ ä˜JÓ'Ð'r   c               ó    € V ^8„  d   QhRRRR/# )r    Ú	cache_keyr"   r#   r8  r   )r$   s   "r   r%   r%     s   € ÷ ?ñ ?˜sð ? zñ ?r   c                ó  € \         P                  P                  P                  '       g   \        P                  R 4       R# ^ RIHp \        P                  ! RRRV  R24      p\        P                  P                  V! 4       RV4      # )z'automatic_dynamic_local_pgo not enabledN)Ú	cache_dirz[<>:"/\\|?*]Ú_Úcode_state_z.pklÚdynamo)r¶   r  r  Úautomatic_dynamic_local_pgor  r  Ú%torch._inductor.runtime.runtime_utilsrM  ÚreÚsubr)   r*   r¬   )rK  rM  Úcode_state_keys   &  r   Úcode_state_pathrV    s_   € Ü�=‰=×Ñ×;×;Ð;Ü�	‰	Ð;Ô<Ùå?ä—V’V˜O¨S°KÀ	¸{È$Ð2OÓP€NÜ�7‰7�<‰<™	› X¨~Ó>Ð>r   c               ó   € V ^8„  d   QhRR/# )r    r#   rP   r   )r$   s   "r   r%   r%   Š  s   € ÷ ñ ¨Dñ r   c                 ó”  € \         P                  P                  P                  '       d   R # \         P                  P                  P
                  ;p e   V # \        4       '       g   R # \         P                  P                  4       '       d   R #  ^ RI	H
p T\         P                  P                  R4      8¬  #   \         d     R # i ; i)F)ÚREMOTE_CACHE_VERSIONz'pytorch/remote_cache:dynamo_pgo_version)r¶   r2  r  r<  r  Úautomatic_dynamic_remote_pgor   r?  Úis_fb_unit_testÚtorch._inductor.fb.remote_cacherY  ÚModuleNotFoundErrorÚjustknobs_getval_int)rA  rY  s     r   Ú"should_use_remote_dynamo_pgo_cacher_  Š  sž   € Ü‡~�~×Ñ×1×1Ð1Ùä�]‰]×!Ñ!×>Ñ>Ð>ˆÒKØˆä�;Š;Ùä×Ñ×,Ñ,×.Ò.ÙðÝHð  ¤5×#8Ñ#8×#MÑ#MØ1ó$ñ ð øô ô Úðús   ÂB8 Â8CÃCc               ó   € V ^8„  d   QhRR/# )r    r#   zRemoteCache[JsonDataTy] | Noner   )r$   s   "r   r%   r%   ¡  s   € ÷ ñ Ð8ñ r   c                 óX   € ^ RI Hp  \        4       '       g   R# V ! R\        4       RR4      # )é    ©Úcreate_cacheNz
dynamo-pgoÚFbRemoteDynamoPGOCacheÚRemoteDynamoPGOCache)Útorch._inductor.remote_cacherd  r_  r   rc  s    r   Úget_remote_cacherh  ¡  s,   € Ý9ä-×/Ò/ÙáØÜ‹Ø Øó	ð r   c               ó    € V ^8„  d   QhRRRR/# )r    Ú
code_staterw   r#   úOrderedSet[str]r   )r$   s   "r   r%   r%   ¯  s   € ÷ 
ñ 
¨ð 
°ñ 
r   c                ó0  € \        4       pV P                  P                  4        Fm  w  r#R p\        VP                  \
        4      '       d   \        VP                  9   pMVP                  \        8X  d   RpV'       g   K\  VP                  V4       Ko  	  V# )FT)	r   r}   ÚitemsrT   r”   rn   r¡   r“   Úadd)rj  Údynamic_sourcesÚsrcÚfsÚdynamics   &    r   Ú_collect_dynamic_sourcesrs  ¯  st   € Ü'1£|€OØ×/Ñ/×5Ñ5Ö7‰ˆØˆÜ�b—g‘gœu×%Ò%Ü" b§g¡gÑ-‰GØ�Y‰Yœ,Ô&ØˆGß‰7Ø×Ñ Ö$ñ 8ð Ðr   c               ó    € V ^8„  d   QhRRRR/# )r    Úall_sourcesrk  r#   r   )r$   s   "r   r%   r%   ¼  s   € ÷ ñ ¨/ð ¸oñ r   c                ó¾   € ^ RI Hp \        4       pV  FF  pV\        9   d   K  V! V4      '       d   \        P	                  V4       K5  VP	                  V4       KH  	  V# )rb  )Úis_dynamic_source)Útorch._dynamo.variables.builderrw  r   r„   rn  )ru  rw  Úmissing_sourcesrp  s   &   r   Ú_collect_missing_sourcesrz  ¼  sV   € ÝAô (2£|€OÛˆØÔ(Ô(ÙÙ˜s×#Ò#Ü"×&Ñ& sÔ+ÙØ×Ñ˜CÖ ñ ð Ðr   c               ó    € V ^8„  d   QhRRRR/# )r    r  rf   r#   r´   r   )r$   s   "r   r%   r%   Ë  s   € ÷ ñ ¨ð ¸4ñ r   c                ón  € \         P                  V R 4      p\        4       V,          p\        V4      pRP	                  V4      pRP	                  \        V4      4      pV'       d<   \        R;pRR7      ;_uu_ 4        \        P                  ! VVVR7       R R R 4       R # R #   + '       g   i     R # ; i)NÚ,zpgo.dynamic_whitelistT©Úlog_pt2_compile_event)Úrecompile_dynamic_whitelistÚmissing_dynamic_whitelist)	rF   rr   r  rs  r¬   rz  r	   r   Úpt2_compile)r  r  r  Úall_dynamic_sourcesÚframe_whitelistÚmissing_whitelistrJ   s   &      r   Úlog_frame_dynamic_whitelistr†  Ë  s•   € ä�k‰k˜& $Ó'€GÜ Ó" 7Õ+€KÜ2°;Ó?ÐØ—h‘hÐ2Ó3€OØŸ™Ô!9Ð:MÓ!NÓOÐßÜÐ"9Ð9˜$ÐQU×VÖVÜ×*Ò*ØØ,;Ø*;õ÷ WÑVñ ßV×VÐVús   Á=B#Â#B4	c               ó   € V ^8„  d   QhRR/# r³   r   )r$   s   "r   r%   r%   Û  s   € ÷ )ñ ) dñ )r   c                 ój   € \         '       g'   \        P                  P                  R RRR7       Rs R# R# )Údynamic_shapes_analysisz$Dynamic shape recompilation detectedz PGO detected a recompilation due to dynamic shapes.             Please follow the instruction from the action link to reduce             recompilation overhead.)ÚcategoryÚinsightÚinsight_descriptionTN)rƒ   r¶   r?  Úadd_mlhub_insightr   r   r   Ú_log_size_mismatch_recompilerŽ  Û  s9   € ç$Ó$Ü×Ñ×/Ñ/Ø.Ø:ð!%ð 	0ô 	
ð %)Ò!ñ %r   c               ó    € V ^8„  d   QhRRRR/# )r    Úcsúdefaultdict[CodeId, CodeState]r#   r"   r   )r$   s   "r   r%   r%   é  s   € ÷ ñ Ð8ð ¸Sñ r   c                ó  € R P                  R V P                  4        4       4      p\        4       pV P                  4        F  pVP	                  \        V4      4       K  	  V'       d   VRRP                  V4       R2,          pV# )Ú
c              3  óš   "  € T FA  w  rV R 2RP                  R VP                  P                  4        4       4      ,           x € KC  	  R# 5i)z:
r“  c              3  óR   "  € T F  w  rR V RVP                  4        2x € K  	  R# 5i)z  z: N)r°   )rj   rp  rq  s   &  r   rl   Ú.render_code_state.<locals>.<genexpr>.<genexpr>ì  s)   é € ð 
Ù5P©'¨#ˆb���R˜Ÿ	™	›�}Õ%Ó5Pùs   ‚%'N)r¬   r}   rm  )rj   ÚkÚvs   &  r   rl   Ú$render_code_state.<locals>.<genexpr>ê  sU   é € ð ñ
 ‰DˆAð	 ˆ#ˆSˆ	Ø
�)‰)ñ 
Ø56×5HÑ5H×5NÑ5NÔ5Pó
ó 
÷	
ò 	
ó ùs   ‚A	Az°

PGO detected a recompilation due to dynamic shapes. To reduce shape recompilations by compiling dynamically to start, set environment variable TORCH_COMPILE_DYNAMIC_SOURCES="r}  Ú")r¬   rm  r   ÚvaluesÚupdaters  )r�  Úcode_state_strro  Ústates   &   r   Úrender_code_staterŸ  é  s†   € Ø—Y‘Yñ ð
 —H‘H”Jóó €Nô (2£|€OØ—‘–ˆØ×ÑÔ7¸Ó>Ö?ñ çØðGàGJÇxÁxÐP_ÓG`ÐFaÐabðdõ	
ˆð
 Ðr   c                  ób   € ] tR tRt]R R l4       t]]R R l4       4       t]R R l4       tRt	R	# )
ÚPGOCacheArtifactiý  c               ó   € V ^8„  d   QhRR/# r³   r   )r$   s   "r   r%   ÚPGOCacheArtifact.__annotate__   s   € ÷ ñ  ñ r   c                	ó‚   € \        V P                  V P                  4      V P                  4      pVf   \	        R4      hR # )Nz:write_local_impl returned None during PGO cache population)Úwrite_local_implÚ!_rewrite_cache_key_for_mega_cacher,  r1   r¸   )rU   Úmetas   & r   Úpopulate_cacheÚPGOCacheArtifact.populate_cacheÿ  s@   € äØ×2Ñ2°4·8±8Ó<¸d¿l¹ló
ˆð Š<Ü ØLóð ñ r   c               ó   € V ^8„  d   QhRR/# r^   r   )r$   s   "r   r%   r£    s   € ÷ ñ �#ñ r   c                 	ó   € R # )Úpgor   r   r   r   rÆ   ÚPGOCacheArtifact.type	  s   € ñ r   c               ó    € V ^8„  d   QhRRRR/# )r    Úoriginal_keyr"   r#   r   )r$   s   "r   r%   r£    s   € ÷ ñ ¸ð Àñ r   c                óX   € V P                  R4      '       g   V # \        4       ;pe   V# V # )zØ
The PGO cache artifact key for a MAST job contains the job name and the version.
When we want to use the cache artifact on a different MAST job, we need to
update the key to use the new MAST job's name and version.
r;  )r>  rE  )r¯  Únew_keys   & r   r¦  Ú2PGOCacheArtifact._rewrite_cache_key_for_mega_cache  s3   € ð ×&Ñ& w×/Ò/àÐÜ$“Ð&ˆGÒ3ØˆNØÐr   r   N)
r   r   r   r   r   r¨  ru   rÆ   r¦  r   r   r   r   r¡  r¡  ý  sD   † àôó ðð Øôó ó ðð ôó ôr   r¡  c               ó$   € V ^8„  d   QhRRRRRR/# )r    r,  r"   Útyr#   r‘  r   )r$   s   "r   r%   r%     s"   € ÷ ñ ˆSð �cð Ð<ñ r   c                ó0  € \        \        \        4      '       g   \        R \	        \        4       24      h\
        P                  RW\        \        4      4       \        RV R2RR 4       \        RR4       \        P                  ! \        4      s\        # )z.expected _CODE_STATE to be a defaultdict, got z$get_code_state %s hit %s, %d entriesÚget_Ú_code_stateÚstringc                 ó    € \        \        4      # r@   ©rŸ  r‚   r   r   r   rz   Úhit.<locals>.<lambda>'  s
   € Ô!¤+Ô.r   r¬  T)rT   r‚   r   r¸   rÆ   r  r  rí   r   r
   r  Údeepcopyr�   )r,  r´  s   &&r   Úhitr½    s   € ä”k¤;×/Ò/ÜØ<¼TÄ+Ó=NÐ<OÐPó
ð 	
ô ‡H�HÐ3°S¼cÄ+Ó>NÔOÜØ
ˆrˆd�+ÐØÙ.ôô
 �E˜4Ô Ü—}’}¤[Ó1ÐÜÐr   c               ó    € V ^8„  d   QhRRRR/# ©r    rK  r"   r#   r€   r   )r$   s   "r   r%   r%   .  s   € ÷ ñ  Cð Ð,Qñ r   c                óò  € \        V 4      pVEe   \        P                  P                  V4      '       dÞ   \	        R;pRR7      ;_uu_ 4        \
        P                  ! W R7       \        VR4      ;_uu_ 4       p VP                  4       p\        P                  ! V4      s\
        P                  ! W#P                  4       R7       \        \        P                  4       V 4      P!                  V4       \#        VR4      uuR R R 4       uuR R R 4       # R #   \$         d    \&        P)                  RTRR	7        Mi ; i R R R 4       M  + '       g   i     M; iR R R 4       R #   + '       g   i     R # ; i)
Nzpgo.get_local_code_stateTr~  ©rK  r'   ©Úcache_size_bytesÚlocalz&get_code_state failed while reading %s©Úexc_info)rV  r)   r*   r+   r	   r   r‚  r,   r-   ÚpickleÚloadsr‚   Útellr   r¡  rÆ   Úrecordr½  Ú	Exceptionr  Úwarning)rK  r*   rJ   Úfr1   s   &    r   Úget_local_code_staterÎ  .  s-  € ä˜9Ó%€DØÓœBŸG™GŸN™N¨4×0Ò0ÜØ.Ð.ˆDÀd÷
ö 
ô ×*Ò*¨4ÕEô �d˜D×!Ô! Qð.ØŸf™f›h�GÜ"(§,¢,¨wÓ"7�KÜ&×2Ò2°4Ï&É&Ë(ÕSô *Ô*:×*?Ñ*?Ó*AÀ9ÓM×TÑTØôô ˜t WÓ-÷ "Ñ!÷
ò 
ñ( øô !ô Ü—K‘KØ@À$ÐQUð  ö ðúð÷ "×!×!Ð!ú÷
ñ( ÷)
ö 
ñ( úsO   Á,E%Á9E	Á;ADÃ8E	Ã>
E%Ä#D;Ä8E	Ä:D;Ä;E	Ä?	E%ÅEÅE%Å%E6	c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r    Úremote_cachezRemoteCache[JsonDataTy]rK  r"   Ú
event_namer8  r#   r€   r   )r$   s   "r   r%   r%   I  s0   € ÷ (ñ (Ø)ð(àð(ð ð(ð +ñ	(r   c                óÔ  € R p V P                  V4      pVeå    \        V\        4      '       g   \        R\	        V4       24      hVR,          p\        V\
        4      '       g   \        R\	        V4       24      h\        P                  ! V4      pVe"   \        P                  ! V\        V4      R7       \        P                  ! V4      p\        \        P	                  4       V4      P                  V4       V# \"        P'                  RV4        V#   \          d    \"        P%                  RTRR7        T# i ; i  \          d    \"        P%                  R	TRR7        T# i ; i)
Nz&expected cache_data to be a dict, got Údataz-expected cache_data['data'] to be a str, got rÂ  z1get_code_state failed parsing remote result on %sTrÅ  z get_code_state remote miss on %sz'get_code_state failed remote read on %s)ÚgetrT   Údictr¸   rÆ   r"   Úbase64Ú	b64decoder   r‚  rí   rÇ  rÈ  r   r¡  rÊ  rË  r  rÌ  r  )rÐ  rK  rÑ  rj  Ú
cache_datarÓ  Úpayloads   &&&    r   Úlookup_remote_cache_entryrÚ  I  sn  € ð
 €Jð!DØ!×%Ñ% iÓ0ˆ
ð Ò!ðÜ! *¬d×3Ò3Ü(Ø@ÄÀjÓAQÐ@RÐSóð ð " &Õ)�Ü! $¬×,Ò,Ü(ØGÌÈTË
À|ÐTóð ô !×*Ò*¨4Ó0�ØÒ)Ü&×2Ò2Ø"´S¸³\õô $Ÿ\š\¨'Ó2�
ô &Ô&6×&;Ñ&;Ó&=¸yÓI×PÑPØôð
 Ðô �H‰HÐ7¸ÕCØÐøô ô Ü—‘ØGØØ!ð õ ð Ððûô) ô YÜ�‰Ð=¸yÐSWˆÕXð> ÐðAYús#   „E  šB4D Ä#D=Ä<D=Å #E'Å&E'c               ó    € V ^8„  d   QhRRRR/# r¿  r   )r$   s   "r   r%   r%   t  s   € ÷ ñ  Sð Ð-Rñ r   c                ó  € \        4       pVed   \        R;pRRR7      ;_uu_ 4        \        P                  ! W R7       \	        WV4      pVe   Vs\        V R4      uuR R R 4       #  R R R 4       R # R #   + '       g   i     R # ; i)Nzpgo.get_remote_code_stateTÚ!pgo_get_remote_code_state_time_us©r  Údynamo_compile_column_usrÁ  Úremote)rh  r	   r   r‚  rÚ  r‚   r½  ©rK  rÐ  rJ   rj  s   &   r   Úget_remote_code_staterâ  t  s…   € ä#Ó%€LØÒÜØ/Ð/ˆDØ"&Ø%H÷
ö 
ô
 ×*Ò*¨4ÕEÜ2°<ÈDÓQˆJØÒ%Ø(�Ü˜9 hÓ/÷
ò 
ð &÷
ó ÷
ö 
ñ ús   §5A4Á4B	c               ó    € V ^8„  d   QhRRRR/# ©r    rK  r"   r#   r´   r   )r$   s   "r   r%   r%   …  s   € ÷ #ñ #¨3ð #°4ñ #r   c           	     ó¤  a€ \         f   \        R4      h\        4       pVeš   \        R;pRRR7      ;_uu_ 4        \        P
                  ! W R7       \        W4      o\        P                  RT Se   \        S4      M^ 4       Se+   \         '       d   \        R	4      hSs \        R
RV3R l4       RRR4       R# R#   + '       g   i     R# ; i)zg
Reads an additional PGO profile from the given cache key, and merges it with the default PGO profile.
NzF_CODE_STATE must be initialized before reading extra remote code statezpgo.get_extra_remote_code_stateTrÝ  rÞ  rÁ  z'get_extra_code_state %s hit, %d entrieszBexpected _CODE_STATE to be empty before merging extra remote stateÚget_extra_remote_code_stater¸  c                 ó   <€ \        S 4      # r@   )rŸ  )rj  s   €r   rz   Ú-get_extra_remote_code_state.<locals>.<lambda>§  s   ø€ Ô-¨jÔ9r   )r‚   r¸   rh  r	   r   r‚  rÚ  r  r  rí   r   rá  s   &  @r   ræ  ræ  …  sÔ   ø€ ô
 ÒÜØTó
ð 	
ô $Ó%€LØÒÜØ5Ð5ˆDØ"&Ø%H÷
ö 
ô
 ×*Ò*¨4ÕEÜ2°<ÓKˆJÜ�H‰HØ9ØØ#-Ò#9”�J”¸qôð
 Ò%ß“;Ü(Ø\óð ð )�ä)Ø1ØÜ9ô÷'
ñ 
ñ  ÷
÷ 
ð 
ús   »AB>ÂB>Â>C	c               ó   € V ^8„  d   QhRR/# )r    r#   r‘  r   )r$   s   "r   r%   r%   «  s   € ÷  ñ  Ð6ñ  r   c                 ó�  € \         e   \         # \        \        4      s \        4       p V f   \         # \	        V 4      pVf   \        V 4       \         '       gC   \        P                  P                  P                  ;pe   \        V4      pVe   \        V4       \        P                  R4       \         f   \        R4      h\         # )Nzget_code_state using defaultz._CODE_STATE should have been initialized above)r‚   r   rw   rE  rÎ  râ  r¶   r2  r  Úpgo_extra_read_keyrI  ræ  r  r  r¸   )rK  Úlocal_code_stateÚsticky_readÚextra_read_keys       r   r  r  «  s©   € äÒÜÐô œiÓ(€Kä“€IØÒÜÐô ,¨IÓ6Ðð ÒÜ˜iÔ(÷ ‹KÜ!ŸN™N×1Ñ1×DÑDÐDˆ[ÒQä,¨[Ó9ˆØÒ%Ü'¨Ô7ä‡H�HÐ+Ô,äÒÜÐMÓNÐNÜÐr   c               ó   € V ^8„  d   QhRR/# r³   r   )r$   s   "r   r%   r%   Î  s   € ÷ 3ñ 3˜ñ 3r   c                 ó’  € \         f   \        P                  R4       R # \         \        8X  d   \        P                  R4       R # \	        4       p V f   \        P                  R4       R # \        V 4       \        V 4       \        P                  P                  P                  ;pe   \        V4      pVe   \        V4       R # R # R # )Nz1put_code_state: never initialized, will not writez#put_code_state: no change, skippingz&put_code_state: no cache key, skipping)r‚   r  r  r�   rE  Úput_local_code_stateÚput_remote_code_stater¶   r2  r  Úpgo_extra_write_keyrI  )rK  Ústicky_writeÚextra_write_keys      r   Úput_code_staterö  Î  sœ   € ÜÒÜ�‰ÐDÔEÙäÔ&Ô&Ü�‰Ð6Ô7Ùä“€IØÒÜ�‰Ð9Ô:Ùä˜Ô#Ü˜)Ô$ÜŸ™×-Ñ-×AÑAÐAˆÒNÜ-¨lÓ;ˆØÒ&Ü! /Ö2ñ 'ñ Or   c               ó$   € V ^8„  d   QhRRRRRR/# )r    rK  r"   Úpickled_codeÚbytesr#   ztuple[str, int] | Noner   )r$   s   "r   r%   r%   ä  s"   € ÷ ñ  ð °5ð Ð=Sñ r   c           	     óþ  € \        V 4      pVf   R # TR,           pVR,           p^ RIHp \        P                  ! \        P
                  P                  V4      RR7       V! V\        R7      ;_uu_ 4        \        VR4      ;_uu_ 4       pVP                  V4       VP                  4       pR R R 4       \        P                  ! W24       R R R 4       VX3#   + '       g   i     L2; i  + '       g   i     TX3# ; i)Nz.tmpz.lock)ÚFileLockT)Úexist_ok)ÚtimeoutÚwb)rV  Útorch.utils._filelockrû  r)   Úmakedirsr*   ÚdirnameÚLOCK_TIMEOUTr,   ÚwriterÉ  Úreplace)rK  rø  r*   Útmp_pathÚ	lock_pathrû  rÍ  r”   s   &&      r   r¥  r¥  ä  s½   € Ü˜9Ó%€Dà‚|Ùð
 �f�}€HØ�w•€Iõ /ä‡K‚K”—‘—‘ Ó%°Õ5á	�)¤\×	2Ö	2Ü�(˜D×!Ô! QØ�G‰G�LÔ!Ø—6‘6“8ˆD÷ "ô 	�
Š
�8Ô"÷	 
3ð
 �ˆ:Ð÷	 "×!ú÷ 
3Ö	2ð
 �ˆ:Ðús$   Á5C)Â
"C	Â,C)ÃC&Ã!C)Ã)C<	c               ó    € V ^8„  d   QhRRRR/# rä  r   )r$   s   "r   r%   r%   ý  s   € ÷ 
ñ 
 Cð 
¨Dñ 
r   c           	     óH  € \        R ;pRR7      ;_uu_ 4        \        P                  ! WR7       \        f   \	        R4      h\
        P                  ! \        4      p\        \        P                  4       V 4      P                  V4       \        W4      pVf!   \        P                  R4        RRR4       R# Vw  rE\        P                  ! WR7       \        P                  RV\        \        4      4       \        R	R
R 4       RRR4       R#   + '       g   i     R# ; i)zpgo.put_local_code_stateTr~  rÁ  Nz?_CODE_STATE must be initialized before writing local code statez$put_code_state: local cache disabledrÂ  z*put_code_state: wrote local %s, %d entriesrñ  r¸  c                 ó    € \        \        4      # r@   rº  r   r   r   rz   Ú&put_local_code_state.<locals>.<lambda>  ó
   € Ô%¤kÔ2r   )r	   r   r‚  r‚   r¸   rÇ  Údumpsr   r¡  rÆ   rÊ  r¥  r  r  rí   r   )rK  rJ   rø  r§  r*   r”   s   &     r   rñ  rñ  ý  sß   € Ü	Ð8Ð8�dÐPT×	UÖ	UÜ×&Ò& tÕAÜÒÜ ØQóð ô —|’|¤KÓ0ˆäÔ.×3Ñ3Ó5°yÓA×HÑHÈÔVä 	Ó8ˆØŠ<Ü�H‰HÐ;Ô<Ø÷ 
VÑ	Uð ‰
ˆä×&Ò& tÕCÜ�‰Ð=¸tÄSÌÓEUÔVÜ!Ø"ØÙ2ô	
÷' 
V×	U×	UÒ	Uús   ˜BDÂ9ADÄD!	c               ó$   € V ^8„  d   QhRRRRRR/# )r    rK  r"   Úextra_code_staterP   r#   r´   r   )r$   s   "r   r%   r%     s!   € ÷ %
ñ %
 Sð %
¸Dð %
ÈTñ %
r   c           
     óŠ  € V'       g   R MRp\        RV 2;pRRR7      ;_uu_ 4        \        P                  ! W0R7       \        f   \	        R4      h\        4       pVf"   \        P                  R	V4        RRR4       R# \        P                  ! \        4      p\        P                  ! V\        V4      R
7       R\        P                  ! V4      P                  R4      /pVP                  W4       \        P                  RW \        \        4      4       \        VRR 4       RRR4       R#   + '       g   i     R# ; i)rò  Úput_extra_remote_code_statezpgo.TÚ!pgo_put_remote_code_state_time_usrÞ  rÁ  Nz@_CODE_STATE must be initialized before writing remote code statez%s: remote cache disabledrÂ  rÓ  Úasciiz%s: wrote remote %s, %d entriesr¸  c                 ó    € \        \        4      # r@   rº  r   r   r   rz   Ú'put_remote_code_state.<locals>.<lambda><  r  r   )r	   r   r‚  r‚   r¸   rh  r  r  rÇ  r  rí   rÖ  Ú	b64encodeÚdecodeÚputr   )rK  r  rÑ  rJ   rÐ  r1   rØ  s   &&     r   rò  rò    s   € ÷  ñ 	 à*ð ô
 
Ø�z�lÐ#Ð#ˆØ"Ø!D÷
ö 
ô
 	×&Ò& tÕAÜÒÜ ØRóð ô (Ó)ˆàÒÜ�H‰HÐ0°*Ô=Ø÷
ñ 
ô" —,’,œ{Ó+ˆÜ×&Ò& t¼cÀ'»lÕKà”F×$Ò$ WÓ-×4Ñ4°WÓ=ð"
ˆ
ð 	×Ñ˜Ô/Ü�‰Ø-¨zÄcÌ+ÓFVô	
ô 	"ØØÙ2ô	
÷7
÷ 
÷ 
ò 
ús   ¨AD1ÂB%D1Ä1E	c               ó   € V ^8„  d   QhRR/# r³   r   )r$   s   "r   r%   r%   A  s   € ÷ &ñ &˜$ñ &r   c                 ó   € R s R sRsR # )NF)r‚   r�   rƒ   r   r   r   Úreset_code_stater  A  s   € à€KØÐØ %Òr   r@   rS   )iÚ__conditional_annotations__rˆ   Ú
__future__r   rÖ  r  r~   ÚenumÚ	functoolsÚloggingr)   rÇ  rS  r.   Úcollectionsr   Útypingr   r   Útyping_extensionsr   r   Útorch._dynamo.configr¶   Útorch._utils_internalÚtorch.compiler.configÚtorch.distributedÚdistributedr.  Útorch._dynamo.utilsr   r	   r
   r   Útorch._environmentr   Útorch._logging._internalr   Útorch.compiler._cacher   r   r   Útorch.utils._ordered_setr   ÚtypesÚtorch._dynamo.symbolic_convertr   rg  r   r   rB   r   Ú	getLoggerr   r  r  r  Úcacher4   r=   rC   Ú	dataclassrF   rw   r�   rt   r‚   rƒ   Úsetr„   r†   r‰   ÚEnumr‹   r�   r¢   r�   r¡   ry   r!  r*  r6  rE  rI  rV  r_  rh  rs  rz  r†  rŽ  rŸ  Úregisterr¡  r½  rÎ  rÚ  râ  ræ  r  rö  r¥  rñ  rò  r  )r  s   @r   Ú<module>r5     s~  øðô	õ #ã Û Û Û Û Û Û 	Û Û 	Û Ý #ß )ß ,ã Û Û Ý  ÷ó õ )Ý >÷ñ õ
 0÷ ÛåHßDô	 *ô 	ð ×Ò˜Ó!€Ø×&Ò&Ð'NÓOÐ à€ðj ‡�ô	ó ð	õõð ×Ò˜dÔ#÷-
ð -
ó $ð-
ð` ×Ñ÷ð ó ðð ;?Ð Ð7Ó >Ø59€Ð2Ó 9Ø"'Ð ˜4Ó 'Ù#&£5Ð ˜Ó (ð ×Ò˜dÔ#÷ð ó $ðñ( ˆTƒ]€ô�—	‘	ô ð �_‰_€
ô�$—)‘)ô ð × Ñ €ð ×Ñ÷jð jó ðjðZqð
 (-÷qðh.ð
 (-÷.õb!õõ4(õ?õõ.õ
õõõ )õð( ×Ñô�}ó ó ðõ>õ"÷6(õVõ"#õL õF3õ,õ2
÷6%
÷R&r   