+
    –°³jUã  ã                   ó¾  a € Re t…0 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t
^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHtHt ^ RIHtHt ^ RIHt ^ RIt^ RIHtHtHt ^ RIHt ^ RI H!t! ^ RI"H#t# ^ R	I$H%t& ^ R
I'H(t( ^ RI)H*t* ^ RI+H,t, ^ RI-H.t. ^ RI/H0t0 ^ RI1H2t2H3t3 ^ RI4H5t5 ^ RI6H7t7 ^ RI8H9t9 ^ RI:H;t;H<t< ^RI=H%t%H>t> ^RI>H?t? ^RI@HAtAHBtBHCtCHDtDHEtE ^RIFHGtG ]	P�                  ! ]I4      tJRsK] ^ k RsL] ^k RsM] ^k ]*! ]IR4      tN]*! ]IR4      tO]P],          tQ]P¤                  ! RRR.4      tS. RfOtT]9! RR.4      tU]P¬                  R  R! l4       tWR" R# ltXRgR$ R% lltYR& R' ltZRhR( R) llt[R* R+ lt\R, R- lt]]P¼                  R. R/ l4       t_/ s`] ^k / sa] ^k Rsb] ^k / sc] ^k / sd] ^k / te] ^k ^ sf] ^	k ]PÎ                   ! R0 R14      4       th/ si] ^
k R2 R3 ltjR4 R5 ltkR6 R7 ltl]P¼                  R8 R9 l4       tm ! R: R;4      tn ! R< R=4      toR> R? ltpR@ RA ltqRB RC ltrRD RE ltsRF RG lttRH RI ltu]P¼                  RJ RK l4       tv]PÎ                   ! RL RM4      4       tw]PÎ                   ! RN RO4      4       tx]Pò                  ! 4       tzRP RQ lt{RR RS lt|RT RU lt}RV RW lt~RX RY ltRZ R[ lt€RiR\ R] llt�R^ R_ lt‚R` Ra ltƒRbR/Rc Rd llt„R# )jé    N)ÚCallableÚIteratorÚSequence)ÚAnyÚIO)Úpatch)Ú
draw_graphÚget_aot_graph_nameÚget_graph_being_compiled)Úfx)Úsave_graph_repro)Úget_debug_dir©Úconfig)Úutils)ÚgetArtifactLogger)Útrace_structured)Úsignpost_event)ÚGraphModule)Ú_extract_tensor_metadataÚTensorMetadata)Úlegalize_graph)ÚFileLike)Ú
OrderedSet)Útree_leavesÚtree_map)r   Úir)ÚExternKernel)ÚBaseSchedulerNodeÚFusedSchedulerNodeÚNopKernelSchedulerNodeÚ
OutputNodeÚSchedulerNode)ÚVFÚir_pre_fusionÚir_post_fusionÚBufMetaÚnameÚn_originÚdotÚrawc                ó$   € V ^8„  d   QhR\         /# ©é   Úreturn)Úbool)Úformats   "ÚV/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_inductor/debug.pyÚ__annotate__r3   B   s   € ÷ +ñ +”ñ +ó    c                  ó2   € \         P                  ! R 4      RJ# )r*   N)ÚshutilÚwhich© r4   r2   Úhas_dotr9   A   s   € ä�<Š<˜Ó dÐ*Ð*r4   c                ó>   € V ^8„  d   QhR\         R,          R\         /# )r.   ÚfnameNr/   ©Ústr)r1   s   "r2   r3   r3   F   s   € ÷ 7ñ 7¤C¨$¥Jð 7´3ñ 7r4   c                 óž   € V e;   \         P                  P                  V 4      w  rV'       d   VP                  R4      # \        P
                  # )NÚ.)ÚosÚpathÚsplitextÚlstripÚfunctorch_configÚtorch_compile_graph_format)r;   Ú_Úexts   &  r2   Ú_get_graph_output_formatrH   F   s;   € ØÒÜ—‘×!Ñ! %Ó(‰ˆßØ—:‘:˜c“?Ð"Ü×6Ñ6Ð6r4   c                ód   € V ^8„  d   QhR\         \        ,          R\        R\        R,          RR/# )r.   ÚnodesÚprint_graphr;   Nr/   )Úlistr   r0   r=   )r1   s   "r2   r3   r3   N   s:   € ÷ 7ñ 7ÜÔ!Õ"ð7äð7ô ��:ð7ð 
ñ	7r4   c           
     ób  € \        V4      pV\        9  d(   \        4       '       g   \        P	                  R4       R# Vf   \        4       p\        V 4      pVP                   EFJ  pRVP                  9  d   K  VP                  R,          P                  p\        V\        4      '       d3   \        V^,          \        4      '       d   V^,          3pM‚V^,          pMx\        V\        4      '       dc    VP                  R,          P                  pVP                  4       ^ ,          P                   P#                  4       pV'       d   \        V4      MRpRp	\        V\&        P(                  4      '       d   VP*                  P,                  p	\/        WiRRRRR4      p
W¥P                  R&   EKM  	  V'       d   \1        V4       \3        / V4      p\5        V4       VP6                  P9                  4        \;        W²R\<        P>                  P@                  R7       R#   \$         d    Rp LÖi ; i)z
Draw a graph in fname.
z*draw_buffers() requires `graphviz` packageNÚfusion_metaÚtensor_metaF)Ú
clear_metaÚdot_graph_shaper8   )!rH   Ú_RAW_DOT_GRAPH_FORMATSr9   ÚlogÚwarningr   Úcreate_fx_from_snodesrJ   ÚmetaÚgroupÚ
isinstanceÚtupleÚintr=   ÚsnodeÚget_outputsÚnodeÚmaybe_get_sizeÚ	Exceptionr   ÚComputedBufferÚdataÚdtyper   Úprintr   r   ÚgraphÚlintr	   r   ÚtracerQ   )rJ   rK   r;   Úgraph_formatrd   r]   rW   r[   Úsizerb   ÚmetadataÚgms   &&&         r2   Údraw_buffersrk   N   sŸ  € ô ,¨EÓ2€LØÔ1Ô1¼'¿)º)Ü�‰Ð@ÔAÙà‚}Ü(Ó*ˆä! %Ó(€Eà—•ˆØ §	¡	Ô)ÙØ—	‘	˜-Õ(×.Ñ.ˆÜ�eœU×#Ò#Ü˜% �(¤C×(Ò(Ø˜q�˜‘à˜a�‘Ü˜œs×#Ò#ðØŸ	™	 -Õ0×6Ñ6�Ø×(Ñ(Ó*¨1Õ-×2Ñ2×AÑAÓC�ß'+œ˜dœ°�ð
 ˆÜ�dœB×-Ñ-×.Ò.Ø—I‘I—O‘OˆEä! %°°d¸DÀ$ÈÓMˆà#+�	‰	�-Ô ñ7 ÷: ÜˆeŒä	�R˜Ó	€BÜ�2ÔØ‡H�H‡M�M„OÜØ
˜e´V·\±\×5QÑ5Q÷øô% ô Ø’ðús   Ã6AHÅ
HÈH.È-H.c                óZ   € V ^8„  d   QhR\         \        ,          R\        P                  /# )r.   Úsnodesr/   )rL   r   r   ÚGraph)r1   s   "r2   r3   r3   ˆ   s(   € ÷ `ñ `¤$Ô'8Õ"9ð `¼b¿h¹hñ `r4   c           	     ód  a€ R R lp\         P                  ! R. RO4      p/ p/ p\        P                  P	                  4       pRp. pRpV  EF¶  p	V	P                  4       '       d   Rp
T
pM‹V	P                  4       '       d   Rp
T
pMp\        V	\        4      '       d   Rp
T
pMU\        V	\        4      '       d   Rp
V	P                  pM0\        V	\        4      '       d   R	p
V	P                  pM\        R
4      h\        P                  P                  P                  V	P!                  4       R4      pV
 RV 2pV! V4      p/ p\#        V	R4      '       d   RV	P%                  4       /pVP'                  VRVR7      pR V3R lloS! V	4      '       d   VP)                  V4       V	P+                  4       pVVn        V! W‰V
4      VP.                  R&   WôV&   V	P1                  4        F  pWóVP+                  4       &   K  	  Ve   EK´  TpEK¹  	  V  FØ  p	V	P+                  4       pV	P2                  P4                  pVV,          p. pV FŽ  pVP,                  V9   d   VVP,                  ,          pMLVP7                  V4      ;_uu_ 4        VP9                  VP,                  4      pVVVP,                  &   RRR4       XV8X  d   K}  VP)                  V4       K�  	  \;        V4      Vn        KÚ  	  TP?                  \A        V4      ^8X  d   V^ ,          4       V# \;        V4      4       V#   + '       g   i     L}; i)ú:
Creates a FX Graph from a list of SchedulerNode objects.
c                óJ   € V ^8„  d   QhR\         R\        R\        3,          /# )r.   r(   r/   .)r=   r   rZ   )r1   s   "r2   r3   Ú+create_fx_from_snodes.<locals>.__annotate__�   s#   € ÷ ñ œCð ¤H¨S´#¨XÕ$6ñ r4   c                 ó   € R  R lpWn         V# )c                ó0   € V ^8„  d   QhR\         R\        /# )r.   Úargsr/   )r   rZ   )r1   s   "r2   r3   ÚBcreate_fx_from_snodes.<locals>.get_fake_func.<locals>.__annotate__Ž   s   € ÷ 	ñ 	œð 	¤ñ 	r4   c                  ó   € ^ # )r   r8   )ru   s   *r2   Úfunc1Ú;create_fx_from_snodes.<locals>.get_fake_func.<locals>.func1Ž   s   € Ùr4   )Ú__name__)r(   rx   s   & r2   Úget_fake_funcÚ,create_fx_from_snodes.<locals>.get_fake_func�   s   € õ	ð ŒØˆr4   Ú
FusionMetaNÚexternÚtemplateÚnopÚcomputeÚfusedzUnknown node typeÚoriginal_atenz: Ú
get_deviceÚdevice©ru   Úkwargsc                óF   € V ^8„  d   QhR\         \        ,          R\        /# )r.   r[   r/   )r   r    r0   )r1   s   "r2   r3   rr   ¼   s!   € ÷ 	ñ 	Ô.Ô1CÕCð 	Ìñ 	r4   c                 ól  <€ \        V \        4      '       dO   \        ;QJ d)    V3R  lV P                   4       F  '       g   K   R# 	  R# ! V3R  lV P                   4       4      # \        ;QJ d*    R V P	                  4        4       F  '       g   K   R# 	  R# ! R V P	                  4        4       4      # )c              3   ó4   <"  € T F  pS! V4      x € K  	  R # 5i©Nr8   )Ú.0ÚxÚ	in_outputs   & €r2   Ú	<genexpr>Ú;create_fx_from_snodes.<locals>.in_output.<locals>.<genexpr>¾   s   øé € Ð>±¨A™9 QŸ<˜<³ùs   ƒTFc              3   ó|   "  € T F2  pVP                    F  p\        VP                  \        4      x € K!  	  K4  	  R # 5ir‹   )ÚusersrX   r]   r"   )rŒ   ÚbufÚusers   &  r2   r�   r�   ¿   s6   é € ð á.�CØŸIœI�Dô ˜4Ÿ9™9¤j×1Ð1á%ñ 2Û.ùs   ‚:<)rX   r    Úanyrm   r\   )r[   rŽ   s   &€r2   rŽ   Ú(create_fx_from_snodes.<locals>.in_output¼   s�   ø€ Ü˜%Ô!3×4Ò4ß“sÔ>°·²Ó>—s”sÐ>’sÐ>�sÔ>°·²Ó>Ó>Ð>ß“3ñ à ×,Ñ,Ô.ó—3”3ð ’3ð �3ñ à ×,Ñ,Ô.óó ð r4   rN   )rW   r[   Útyper8   )!ÚcollectionsÚ
namedtupleÚtorchr   rn   Ú	is_externÚis_templaterX   r!   r#   rW   r    ÚRuntimeErrorÚ	_inductorr   Úget_fused_kernel_nameÚ	get_nodesÚhasattrr„   Úcall_functionÚappendÚget_namer(   rV   r\   Úread_writesÚreadsÚinserting_beforeÚplaceholderrY   ru   ÚoutputÚlen)rm   r{   r}   Úbuf_to_fx_nodeÚnode_to_fx_noderd   Ú
first_nodeÚoutputsrW   r[   Ú	node_typeÚ
fused_nameÚ	func_nameÚ	node_funcr‡   Úfx_noder(   r“   ÚdepsÚnew_argsÚdepÚdep_noderŽ   s   &                     @r2   rU   rU   ˆ   sÔ  ø€ õ
ô ×'Ò'¨Ò6PÓQ€Jà€NØ€OÜ�H‰H�N‰NÓ€EØ€Jà€GØ€Eô ˆØ�?‰?×ÒØ ˆIØ‰EØ×Ñ× Ò Ø"ˆIØ‰EÜ˜Ô5×6Ò6ØˆIØ‰EÜ˜œ}×-Ò-Ø!ˆIØ—K‘K‰EÜ˜Ô1×2Ò2ØˆIØ—K‘K‰EäÐ2Ó3Ð3ä—_‘_×*Ñ*×@Ñ@Ø�O‰OÓ˜ó
ˆ
ð !�k  J <Ð0ˆ	Ù! )Ó,ˆ	ØˆÜ�5˜,×'Ò'Ø × 0Ñ 0Ó 2Ð3ˆFØ×%Ñ% i°bÀÐ%ÓHˆ÷	ð 	ñ �U×ÒØ�N‰N˜7Ô#Ø�~‰~ÓˆØˆŒá&0°¸yÓ&Iˆ�‰�]Ñ#à '˜ÑØ×$Ñ$Ö&ˆCØ-4˜3Ÿ<™<›>Ó*ñ 'ð ÕØ ‹Jñe ój ˆØ�~‰~ÓˆØ× Ñ ×&Ñ&ˆà! $Õ'ˆØˆÛˆCØ�x‰x˜>Ô)Ø)¨#¯(©(Õ3‘à×+Ñ+¨J×7Õ7Ø$×0Ñ0°·±Ó:�HØ/7�N 3§8¡8Ñ,÷ 8ð ˜7Ô"ÙØ�O‰O˜HÖ%ñ ô ˜X“ˆŽñ# ð& 
‡L�Lœs 7›|¨qÔ0�˜•ÔEØ€Lô 7<¸G³nÔEØ€L÷ 8×7ús   É?+L	ÌL/c          
      óŠ   € V ^8„  d   QhR\         R,          R\        \        \        3,          R\        R,          R\        RR/# )r.   rJ   NÚnode_name_to_buf_nameÚparent_buf_nameÚ	n_originsr/   )ÚSchedulerNodeListÚdictr=   rZ   )r1   s   "r2   r3   r3   ë   sK   € ÷ $ñ $Ü˜tÕ#ð$ä¤¤S �>ð$ô ˜4•Zð$ô ð	$ð
 
ñ$r4   c                 óª  € V f   R # V  FÆ  pVP                  4       pVP                  4       pVe&   \        V4      ^8”  d   \        TTVf   TMT4       KL  \        V4      ^8X  d   V^ ,          V8X  g   \	        R4      hVP
                  pVe   VP                  f   K•  VP                   F!  pVP                  p	W‘9  g   K  Vf   TMTW&   K#  	  KÈ  	  R # )Nz6expected a single child node equal to the current node)r¤   r    rª   Ú$update_orig_fx_node_name_to_buf_nameÚAssertionErrorr]   Úoriginsr(   )
rJ   r¹   rº   r»   r]   Úbuf_nameÚchildren_nodesÚir_nodeÚoriginÚ	node_names
   &&&&      r2   r¿   r¿   ë   sÔ   € ð ‚}ÙÛˆà—=‘=“?ˆØŸ™Ó)ˆØÒ%¬#¨nÓ*=ÀÔ*AÜ0ØØ%Ø+Ò3‘¸ôñ
 ô ˜Ó'¨1Ô,°ÀÕ1BÀdÔ1JÜ$ØLóð ð —)‘)ˆØŠ?˜gŸo™oÒ5ÙØ—o”oˆFØŸ™ˆIð Ö5à /Ò 7‘H¸_ð &Ó0ó &ó+ r4   c                ót   € V ^8„  d   QhR\         \        \        3,          R\         \        \        3,          /# )r.   r¹   r/   )r½   r=   r'   )r1   s   "r2   r3   r3     s-   € ÷ !ñ !Ü¤¤S �>ð!ä	Œ#Œwˆ,Õñ!r4   c                 ó  € / pV P                  4        F2  w  r#W19  d   \        V.4      W&   K  W,          P                  V4       K4  	  / pV P                  4        F#  w  r#\        W,          4      p\	        W54      WB&   K%  	  V# r‹   )Úitemsr   Úaddrª   r'   )r¹   Úbuf_name_to_n_noderÆ   rÂ   Únode_name_to_buf_metaÚn_nodes   &     r2   Úget_node_name_to_buf_metarÎ     s‹   € ð ÐØ4×:Ñ:Ö<Ñˆ	ØÔ-Ü+5°y°kÓ+BÐÓ(ð Õ(×,Ñ,¨YÖ7ñ  =ð ÐØ4×:Ñ:Ö<Ñˆ	ÜÐ'Õ1Ó2ˆÜ+2°8Ó+DÐÓ(ñ  =ð !Ð r4   c                ó\   € V ^8„  d   QhR\         P                  P                  R\        RR/# )r.   rj   rm   r/   N©rš   r   r   r¼   )r1   s   "r2   r3   r3   $  s5   € ÷ Iñ IÜ�‰×ÑðIäðIð 
ñIr4   c                óò   € / p\        W4       Vf   R# \        V4      pV P                  P                   F>  pVP                  V9   g   K  VP                  VP                  4      VP                  R&   K@  	  R# )rp   NÚbuf_meta)r¿   rÎ   rd   rJ   r(   ÚgetrV   )rj   rm   r¹   rÌ   r]   s   &&   r2   Úannotate_orig_fx_with_snodesrÔ   $  sc   € ð -/ÐÜ(¨ÔGØÒ$ÙÜ5Ð6KÓLÐØ—‘—”ˆØ�9‰9Ð-Ö-Ø$9×$=Ñ$=¸d¿i¹iÓ$HˆD�I‰I�jÓ!ó r4   c                ó2   € V ^8„  d   QhR\         R,          /# ©r.   r/   N©r   )r1   s   "r2   r3   r3   6  s   € ÷ %ñ %œH T�Nñ %r4   c               #   óÎ  "  € \         P                  P                  R R4      R8H  p ^ RIp\        P
                  ! VP                  P                  P                  4      p\        P                  ! 4       pV '       g    Rx € VP                  4        R# VP                  \        RR4      4       \         P                  P                  \!        4       R4      p\         P"                  ! VRR7       \        P$                  ! \         P                  P                  VR\'        4        R	24      4      pVP)                  \        P*                  4       VP-                  \        P.                  ! R
4      4       VP1                  V4        Rx € VP3                  V4       VP                  4        R#   TP                  4        i ; i  TP3                  T4       TP                  4        i ; i5i)ÚTORCH_COMPILE_DEBUGÚ0Ú1Nz*functorch.compile.config.debug_partitionerTÚtorchinductor©Úexist_okÚaot_z
_debug.logú3[%(filename)s:%(lineno)d %(levelname)s] %(message)s)r@   ÚenvironrÓ   Útorch._functorch.aot_autogradÚloggingÚ	getLoggerÚ
_functorchÚaot_autogradrz   Ú
contextlibÚ	ExitStackÚcloseÚenter_contextr   rA   Újoinr   ÚmakedirsÚFileHandlerr
   ÚsetLevelÚDEBUGÚsetFormatterÚ	FormatterÚ
addHandlerÚremoveHandler)Úcompile_debugrš   rS   ÚstackrA   Úfhs         r2   Úenable_aot_loggingr÷   5  sY  é € ä—J‘J—N‘NÐ#8¸#Ó>À#ÑE€Mã(ä
×
Ò
˜E×,Ñ,×9Ñ9×BÑBÓ
C€Cä× Ò Ó"€Eßð	Ûà�K‰KŒMÙð 
×ÑœÐJÈDÓQÔRä�7‰7�<‰<œ›¨Ó9€DÜ‡K‚K�˜tÕ$ä	×	Ò	Ü
�‰�‰ØØÔ%Ó'Ð(¨
Ð3ó	
ó
€Bð ‡K�K”—‘ÔØ‡O�OÜ×ÒÐOÓPôð ‡N�N�2ÔðÛà×Ñ˜"ÔØ�‰Žøð3 �K‰K�Mûð0 	×Ñ˜"ÔØ�‰�üs7   ‚A9G%Á<F* Â DG%ÆF? Æ#G%Æ*F<Æ<G%Æ?#G"Ç"G%c                   ó8   a € ] tR tRt o RtRtRtV 3R ltRtV t	R# )Ú_KernelExternInfoij  FNc                óp   <€ V ^8„  d   Qh/ S[ ;R&   S[R,          ;R&   S[S[S[3,          R,          ;R&   # )r.   r›   NÚsemantic_keyÚshapes)r0   r=   r½   r   )r1   Ú__classdict__s   "€r2   r3   Ú_KernelExternInfo.__annotate__j  s;   ø‡ ‚ áÑñ ñ ˜•*Ñ#ñ ñ ‘‘c��N˜TÕ!Ñ(ò	 r4   r8   )
rz   Ú
__module__Ú__qualname__Ú__firstlineno__r›   rû   rü   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©rý   s   @r2   rù   rù   j  s   ø‡ € à€IØ#€LØ$(€F÷	 ƒ r4   rù   c                óh   € V ^8„  d   QhR\         \        \         \        \        3,          3,          /# r-   ©r½   r=   r   )r1   s   "r2   r3   r3   t  s%   € ÷ %ñ %¤d¬3´´S¼#°XµÐ+>Õ&?ñ %r4   c                  ó   € \         # r‹   )Ú_kernel_information_jsonsr8   r4   r2   Úget_kernel_information_jsonsr
  t  s   € Ü$Ð$r4   c                ó4   € V ^8„  d   QhR\         R\         RR/# )r.   Úoriginal_kernel_nameÚalias_kernel_namer/   Nr<   )r1   s   "r2   r3   r3   x  s"   € ÷ 	
ñ 	
´#ð 	
Ì#ð 	
ÐRVñ 	
r4   c                ó†   € V \         9   d   \         V ,          \         V&   V \        9   d   \        V ,          \        V&   R# R# )zEExpose existing kernel provenance under an additional generated name.N)Ú_inductor_kernel_stack_traceÚ._inductor_triton_kernel_to_post_grad_node_info)r  r  s   &&r2   Úalias_kernel_provenancer  x  sD   € àÔ;Ô;Ü:VØ õ;
Ô$Ð%6Ñ7ð ÔMÔMä:Ð;OÕPô 	7Ð7HÓIñ Nr4   c                ó   € V ^8„  d   QhRR/# rÖ   r8   )r1   s   "r2   r3   r3   „  s   € ÷ 1ñ 1°tñ 1r4   c                  ó
   € ^ s R# )r   N)Ú(_inductor_kernel_provenance_debug_handler8   r4   r2   Ú-reset_inductor_kernel_provenance_debug_handler  „  s   € à/0Ò,r4   c                ó2   € V ^8„  d   QhR\         R,          /# rÖ   r×   )r1   s   "r2   r3   r3   Š  s   € ÷ 6Lñ 6L¤(¨4¥.ñ 6Lr4   c               #  óL  "  € \         p \        P                  4       p\        P                  4       p\        P                  4       p\
        P                  4       p\        p\        \        4      pRs / s/ s/ s/ s^ s/ s Rx € V s VsVsVsVsVsVsR#   T s TsTsTsTsTsTsi ; i5i)zvContext manager that resets provenance tracking globals upon entering
and restores their original values when exiting.Néÿÿÿÿ)	Ú_pre_grad_graph_idÚ _inductor_post_to_pre_grad_nodesÚcopyr  Ú#_inductor_pre_grad_node_stack_tracer  r  r½   Ú_inductor_kernel_extern_info)Úoriginal_pre_grad_graph_idÚoriginal_post_to_pre_grad_nodesÚ-original_triton_kernel_to_post_grad_node_infoÚ+original_inductor_pre_grad_node_stack_traceÚ$original_inductor_kernel_stack_traceÚ0original_inductor_kernel_provenance_debug_handleÚ$original_inductor_kernel_extern_infos          r2   Úreset_provenance_globalsr%  ‰  s  é € ô "4ÐÜ&F×&KÑ&KÓ&MÐ#ä6×;Ñ;Ó=ð 2ô 	,×0Ñ0Ó2ð 0ô ,H×+LÑ+LÓ+NÐ(ä0ð 5ô ,0Ô0LÓ+MÐ(ð ÐØ')Ð$Ø57Ð2Ø*,Ð'Ø#%Ð ð 01Ð,Ø#%Ð ðLÛð 8ÐØ+JÐ(à9ð 	7ð (LÐ$à7ð 	,ð =ð 	1ð (LÒ$øð 8ÐØ+JÐ(à9ð 	7ð (LÐ$à7ð 	,ð =ð 	1ð (LÑ$üs   ‚A:B$Á=B ÂB$ÂB!Â!B$c                   óJ  a € ] tR tRt o ]P
                  ! 4       t]V 3R lR l4       tV 3R lR lt	V 3R lR lt
RV 3R lR	 llt]P                  RV 3R
 lR ll4       tV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltRtV tR# )ÚDebugContextiÃ  c                ó4   <€ V ^8„  d   QhRS[ RS[ R,          /# )r.   Úfolder_namer/   Nr<   )r1   rý   s   "€r2   r3   ÚDebugContext.__annotate__Ç  s   ø€ ÷ ñ ¡cð ©c°D­jñ r4   c                ó2  € \         P                  P                  ;'       g    \        4       p\        P
                   FD  p\        P                  P                  VR V  RV 24      p \        P                  ! VRR7       Vu # 	  R#   \         d     KX  i ; i)rÜ   r?   FrÝ   N)r   rf   Ú	debug_dirr   r'  Ú_counterr@   rA   rë   rì   ÚFileExistsError)r)  r,  ÚnÚdirnames   &   r2   Úcreate_debug_dirÚDebugContext.create_debug_dirÆ  s„   € ä—L‘L×*Ñ*×=Ð=¬m«oˆ	Ü×&Ô&ˆAÜ—g‘g—l‘lØØØ�-˜q  Ð$óˆGð
Ü—’˜G¨eÕ4Ø’ñ 'ñ øô	 #ô ò ðús   Á'BÂBÂBc                ó   <€ V ^8„  d   QhRR/# rÖ   r8   )r1   rý   s   "€r2   r3   r*  Ø  s   ø€ ÷ -ñ -˜$ñ -r4   c                óV   € R V n         R V n        \        P                  ! 4       V n        R # r‹   )Ú_profÚ_pathrç   rè   Ú_stack)Úselfs   &r2   Ú__init__ÚDebugContext.__init__Ø  s    € ØˆŒ
ØˆŒ
Ü ×*Ò*Ó,ˆŽr4   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r.   Únew_pathr/   Nr<   )r1   rý   s   "€r2   r3   r*  Ý  s   ø€ ÷ ñ ™Sð  Tñ r4   c                óþ  € V P                   '       g   R # VP                  R4      '       g   \        V4      h^ RIHp  V! V R24      ;_uu_ 4        \
        P                  P                  V4      '       d   \        P                  ! V4       \        P                  ! V P                   V4       R R R 4       R #   + '       g   i     R # ; i  \         d&    \        P                  RT P                   T4        R # i ; i)Nz.debug)ÚFileLockz.lockz(Failed to copy debug files from %s to %s)r6  ÚendswithrÀ   Úfilelockr>  r@   rA   Úexistsr6   ÚrmtreeÚcopytreeÚOSErrorrS   rT   )r8  r<  r>  s   && r2   r  ÚDebugContext.copyÝ  s«   € Ø�z�zˆzÙØ× Ñ  ×*Ò*Ü  Ó*Ð*Ý%ð	Ù˜X˜J eÐ,×-Õ-Ü—7‘7—>‘> (×+Ò+Ü—M’M (Ô+Ü—’ §
¡
¨HÔ5÷ .×-×-Ò-ûô ô 	Ü�K‰KØ:¸D¿J¹JÈ÷ð	ús0   ¾C ÁAB8Â.C Â8C		ÃC Ã	C Ã,C<Ã;C<c                óH   <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[S[,          /# ©r.   ÚfilenameÚ
write_moderu   r‡   r/   )r=   r   r   )r1   rý   s   "€r2   r3   r*  î  sH   ø€ ÷ 	Uñ 	Uáð	Uñ ð	Uñ ð		Uñ
 ð	Uñ 
‰C�ñ	Ur4   c                ó¬   € V P                   '       g   \        R 4      h\        \        P                  P                  V P                   V4      V.VO5/ VB # ©úexpected self._path to be set©r6  rÀ   Úopenr@   rA   rë   )r8  rH  rI  ru   r‡   s   &&&*,r2   ÚfopenÚDebugContext.fopenî  sC   € ð �z�zˆzÜ Ð!@ÓAÐAÜ”B—G‘G—L‘L §¡¨XÓ6¸
ÐTÀTÒTÈVÑTÐTr4   c                óX   <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[S[S[,          ,          /# rG  )r=   r   r   r   )r1   rý   s   "€r2   r3   r*  ú  sF   ø€ ÷ 
ñ 
áð
ñ ð
ñ ð	
ñ
 ð
ñ 
‘"‘S•'Õ	ñ
r4   c              /  ó
  "  € V P                   '       g   \        R 4      h\        \        P                  P                  V P                   V4      V.VO5/ VB ;_uu_ 4       pVx € RRR4       R#   + '       g   i     R# ; i5i)rL  NrM  )r8  rH  rI  ru   r‡   Úfs   &&&*, r2   Úfopen_contextÚDebugContext.fopen_contextù  s]   é € ð �z�zˆzÜ Ð!@ÓAÐAÜ”"—'‘'—,‘,˜tŸz™z¨8Ó4°jÐRÀ4ÒRÈ6×RÒRÐVWØŠG÷ S×R×RÒRüs   ‚ABÁ A/Á%
BÁ/B 	Á:	Bc                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r.   Úsuffixr/   r<   )r1   rý   s   "€r2   r3   r*    s   ø€ ÷ 0ñ 0™sð 0¡sñ 0r4   c                ó�   € V P                   '       g   \        R 4      h\        P                  P	                  V P                   V4      # rK  )r6  rÀ   r@   rA   rë   )r8  rW  s   &&r2   rH  ÚDebugContext.filename  s0   € Ø�z�zˆzÜ Ð!@ÓAÐAÜ�w‰w�|‰|˜DŸJ™J¨Ó/Ð/r4   c                ó   <€ V ^8„  d   QhRR/# rÖ   r8   )r1   rý   s   "€r2   r3   r*    s   ø€ ÷ .ñ .˜Dñ .r4   c                ó^  € \         P                  P                  eþ   ^ R IpV P                  '       g   \        R4      h\        P                  P                  V P                  \        P                  P                  V P                  4       R24      pVP                  VR4      ;_uu_ 4       pVP                  V P                  \        P                  P                  V P                  4      R7       R R R 4       \         P                  P                  V4       R # R #   + '       g   i     L3; i)NrL  z.tar.gzzw:gz)Úarcname)r   rf   Ú
upload_tarÚtarfiler6  rÀ   r@   rA   rë   ÚbasenamerN  rÊ   )r8  r^  Útar_fileÚtars   &   r2   r]  ÚDebugContext.upload_tar  sÁ   € Ü�<‰<×"Ñ"Ò.Ûà—:—:�:Ü$Ð%DÓEÐEÜ—w‘w—|‘|Ø—
‘
œrŸw™w×/Ñ/°·
±
Ó;Ð<¸GÐDóˆHð —‘˜h¨×/Ô/°3Ø—‘˜Ÿ
™
¬B¯G©G×,<Ñ,<¸T¿Z¹ZÓ,H�ÔI÷ 0ä�L‰L×#Ñ# HÖ-ñ /÷ 0×/ús   Â,ADÄD,	c                ó   <€ V ^8„  d   QhRR/# rÖ   r8   )r1   rý   s   "€r2   r3   r*    s   ø€ ÷ >ñ >˜4ñ >r4   c                óà  a€ \         P                  '       df   \        P                  ! R 4      oSP                  pSP                  \        P                  4       R V3R llpV P                  P                  W!4       V P                  P                  \        P                  ! V 4      4       \         P                  P                  '       g   R# V P                  \        4       4      V n        \         P                  P"                  '       d!   V P%                  R\        P                  4       \         P                  P&                  '       d#   V P%                  R\        P(                  4       R# R# )ztorch._dynamoc                ó(   € V ^8„  d   QhR\         RR/# )r.   Úlevelr/   N©r   )r1   s   "r2   r3   Ú,DebugContext.__enter__.<locals>.__annotate__  s   € ÷ $ñ $¤sð $¨tñ $r4   c                 ó*   <€ SP                  V 4       R # r‹   )rî   )rf  rS   s   &€r2   Úreset_log_levelÚ/DebugContext.__enter__.<locals>.reset_log_level  s   ø€ Ø—‘˜UÖ#r4   Nz	debug.logzinfo.log)r   Údebugrã   rä   rf  rî   rï   r7  Úcallbackrê   r$   Úset_debug_handlerrf   Úenabledr1  r
   r6  Ú	debug_logÚ_setup_log_captureÚinfo_logÚINFO)r8  Ú
prev_levelrj  rS   s   &  @r2   Ú	__enter__ÚDebugContext.__enter__  sæ   ø€ Ü�<�<ˆ<Ü×#Ò# OÓ4ˆCØŸ™ˆJØ�L‰LœŸ™Ô'÷$ð $ð �K‰K× Ñ  Ô=à�‰×!Ñ!¤!×"5Ò"5°dÓ";Ô<ä�|‰|×#×#Ð#Ùà×*Ñ*Ô+=Ó+?Ó@ˆŒ
ä�<‰<×!×!Ð!Ø×#Ñ# K´·±Ô?Ü�<‰<× × Ð Ø×#Ñ# J´·±Ö=ñ !r4   c                ó*   <€ V ^8„  d   QhRS[ RS[RR/# )r.   rH  rf  r/   N)r=   rZ   )r1   rý   s   "€r2   r3   r*  /  s)   ø€ ÷ 4ñ 4áð4ñ ð4ð 
ñ	4r4   c                óÖ  € \         P                  ! R 4      pV P                  P                  V P	                  V4      4      p\         P
                  ! V4      pVP                  V4       VP                  \         P                  ! R4      4       VP                  V4       VP                  \        VP                  V4      4       V P                  P                  VP                  V4       R# )ztorch._inductorrà   N)rã   rä   r7  rê   rO  ÚStreamHandlerrî   rð   rñ   rò   Úminrf  rm  ró   )r8  rH  rf  rS   ÚfdÚchs   &&&   r2   rq  ÚDebugContext._setup_log_capture/  s¨   € ô
 ×ÒÐ 1Ó2ˆØ�[‰[×&Ñ& t§z¡z°(Ó';Ó<ˆÜ×"Ò" 2Ó&ˆØ
�‰�EÔØ
�‰Ü×ÒÐSÓTô	
ð 	�‰�rÔØ�‰”S˜Ÿ™ EÓ*Ô+Ø�‰×Ñ˜S×.Ñ.°Ö3r4   c                ój   <€ V ^8„  d   QhRS[ S[,          R,          RS[R,          RS[R,          RR/# )r.   Úexc_typeNÚexc_valÚexc_tbr/   )r—   ÚBaseExceptionr   )r1   rý   s   "€r2   r3   r*  ?  sF   ø€ ÷ ñ á‘}Õ%¨Õ,ðñ  Õ%ðñ �d•
ð	ð
 
ñr4   c                óH  € V P                   '       d+   V P                   P                  4        V P                  4        V P                  '       d:   V P	                  4        \
        P                  R \        4       V P                  4       V P                  P                  4        R# )z%s debug trace: %sN)
r5  ÚdisableÚ_save_profile_datar6  r]  rS   rT   r   r7  ré   )r8  r  r€  r�  s   &&&&r2   Ú__exit__ÚDebugContext.__exit__?  se   € ð �:�:ˆ:Ø�J‰J×ÑÔ Ø×#Ñ#Ô%à�:�:ˆ:Ø�O‰OÔÜ�K‰KÐ,Ô.FÓ.HÈ$Ï*É*ÔUØ�‰×ÑÖr4   c                ó   <€ V ^8„  d   QhRR/# rÖ   r8   )r1   rý   s   "€r2   r3   r*  N  s   ø€ ÷ 
#ñ 
# Dñ 
#r4   c                óì  € V P                   '       g   \        R 4      hV P                   P                  V P                  R4      4       V P	                  R4      ;_uu_ 4       p\
        P                  ! V P                   VR7      pVP                  4        VP                  R4       VP                  ^d4       VP                  R4       VP                  ^d4       RRR4       R#   + '       g   i     R# ; i)zexpected self._prof to be setzcompile.profzcompile.stats)ÚstreamÚcumtimeÚtottimeN)
r5  rÀ   Ú
dump_statsrH  rO  ÚpstatsÚStatsÚ
strip_dirsÚ
sort_statsÚprint_stats)r8  r{  Ústatss   &  r2   r…  ÚDebugContext._save_profile_dataN  sª   € Ø�z�zˆzÜ Ð!@ÓAÐAØ�
‰
×Ñ˜dŸm™m¨NÓ;Ô<Ø�Z‰Z˜×(Ô(¨BÜ—L’L §¡°BÔ7ˆEØ×ÑÔØ×Ñ˜YÔ'Ø×Ñ˜cÔ"Ø×Ñ˜YÔ'Ø×Ñ˜cÔ"÷ )×(×(Ò(ús   Á!A7C"Ã"C3	c                óB   <€ V ^8„  d   QhRS[ RS[R,          R,          /# )r.   r(   r/   N).N)r=   r   )r1   rý   s   "€r2   r3   r*  Z  s%   ø€ ÷ ñ ¡ð ©°Õ(;¸dÕ(Bñ r4   c                ó  € \         P                  P                  '       d7   \        \         P                  V4      '       d    \        \	        V 4      V4      # R R lpV#   \
         d    \        P                  R RR7        R# i ; i)z Ignoring exception in debug codeT©Úexc_infoNc                ó4   € V ^8„  d   QhR\         R\         RR/# ©r.   ru   r‡   r/   Nrg  )r1   s   "r2   r3   Ú.DebugContext.__getattr__.<locals>.__annotate__c  s!   € ÷ ñ œsð ¬cð °dñ r4   c                  ó   € R # r‹   r8   r†   s   *,r2   ÚignoredÚ)DebugContext.__getattr__.<locals>.ignoredc  s   € Ùr4   )r   rf   ro  ÚgetattrÚDebugFormatterr_   rS   rT   )r8  r(   r�  s   && r2   Ú__getattr__ÚDebugContext.__getattr__Z  sj   € Ü�<‰<××Ð¤G¬F¯L©L¸$×$?Ò$?ðÜœ~¨dÓ3°TÓ:Ð:õð ˆNøô ô Ü—‘Ð>È�ÔNÚðús   ÁA Á"BÂB)r6  r5  r7  N)Úw)rz   rÿ   r   r  Ú	itertoolsÚcountr-  Ústaticmethodr1  r9  r  rO  rç   ÚcontextmanagerrT  rH  r]  ru  rq  r†  r…  r¡  r  r  r  s   @r2   r'  r'  Ã  s¨   ø‡ € Ø�ŠÓ €Hà÷ó ð÷"-ð -÷
ð ÷"	Uò 	Uð ×Ñ÷
ñ 
ó ð
÷0ð 0÷
.ð .÷>ð >÷.4ð 4÷ ð ÷
#ð 
#÷ö r4   r'  c                   óâ   a € ] tR tRt o V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt]	V 3R lR l4       t
V 3R lR ltV 3R lR ltRV 3R lR lltV 3R lR ltRtV tR# )r   ii  c                ó$   <€ V ^8„  d   QhRS[ RR/# )r.   Úhandlerr/   N)r'  )r1   rý   s   "€r2   r3   ÚDebugFormatter.__annotate__j  s   ø€ ÷ ñ ¡ð °ñ r4   c                óx   € VP                   V n         VP                  V n        VP                  V n        Wn        R # r‹   )rO  rT  rH  rª  )r8  rª  s   &&r2   r9  ÚDebugFormatter.__init__j  s-   € Ø—]‘]ˆŒ
Ø$×2Ñ2ˆÔØ×(Ñ(ˆŒØŽr4   c                óv   <€ V ^8„  d   QhRS[ P                  P                  RS[S[ P                  ,          RR/# ©r.   rj   Úinputsr/   N©rš   r   r   rL   ÚTensor)r1   rý   s   "€r2   r3   r«  p  s<   ø€ ÷ <ñ <á�H‰H× Ñ ð<ñ ‘U—\‘\Õ"ð<ð 
ñ	<r4   c                óN  € V P                  R 4      ;_uu_ 4       pRp\        P                  P                  P                  P
                  '       dS   \        P                  P                  P                  V4      p\        P                  P                  VP                  4      p\        P                  P                  P                  P
                  p\        P                  P                  P                  RRRR/4      ;_uu_ 4        \        VVVRVVR7       RRR4       RRR4       V P                  R4      ;_uu_ 4       pVP                  VP!                  RR7      4       RRR4       R#   + '       g   i     L]; i  + '       g   i     Lh; i  + '       g   i     R# ; i)	zfx_graph_runnable.pyNztrace.enabledFztrace.save_real_tensorsÚinductor)Úsave_dirÚstable_hashzfx_graph_readable.py©Úprint_output)rO  rš   rž   r   rf   Úsave_real_tensorsÚ_subclassesÚ
fake_utilsÚtry_convert_fake_to_realr@   rA   r0  r(   r   r   ÚwriteÚprint_readable)r8  rj   r°  r{  rµ  r¶  s   &&&   r2   Úfx_graphÚDebugFormatter.fx_graphp  s,  € ð
 �Z‰ZÐ.×/Ô/°2ØˆHÜ�‰×%Ñ%×+Ñ+×=×=Ð=Ü×*Ñ*×5Ñ5×NÑNÈvÓV�ÜŸ7™7Ÿ?™?¨2¯7©7Ó3�ô
  Ÿ/™/×0Ñ0×6Ñ6×HÑHˆKÜ—‘×'Ñ'×-Ñ-Ø  %Ð)BÀEÐJ÷õ ô !ØØØØØ%Ø +õ÷÷ 0ð, �Z‰ZÐ.×/Ô/°2Ø�H‰H�R×&Ñ&°EÐ&Ó:Ô;÷ 0Ñ/÷÷ ú÷ 0×/ú÷, 0×/Ð/ús0   šC,F ÄE-	ÄF Å"FÅ-E=Å8F Æ F	ÆF$	c                óv   <€ V ^8„  d   QhRS[ P                  P                  RS[S[ P                  ,          RR/# r¯  r±  )r1   rý   s   "€r2   r3   r«  Ž  s<   ø€ ÷ <ñ <á�H‰H× Ñ ð<ñ ‘U—\‘\Õ"ð<ð 
ñ	<r4   c                ó´   € V P                  R 4      ;_uu_ 4       pVP                  VP                  RR7      4       RRR4       R#   + '       g   i     R# ; i)zfx_graph_transformed.pyFr·  N)rO  r½  r¾  )r8  rj   r°  r{  s   &&& r2   Úfx_graph_transformedÚ#DebugFormatter.fx_graph_transformedŽ  s?   € ð
 �Z‰ZÐ1×2Ô2°bØ�H‰H�R×&Ñ&°EÐ&Ó:Ô;÷ 3×2×2Ò2ús   š"AÁA	c                ó$   <€ V ^8„  d   QhRS[ RR/# ©r.   rJ   r/   N©r¼   )r1   rý   s   "€r2   r3   r«  –  s   ø€ ÷ ,ñ ,Ñ#4ð ,¸ñ ,r4   c                ó²   € V P                  R 4      ;_uu_ 4       pVP                  V P                  V4      4       RRR4       R#   + '       g   i     R# ; i)zir_pre_fusion.txtN©rO  r½  Ú	_write_ir©r8  rJ   r{  s   && r2   r%   ÚDebugFormatter.ir_pre_fusion–  s8   € Ø�Z‰ZÐ+×,Ô,°Ø�H‰H�T—^‘^ EÓ*Ô+÷ -×,×,Ò,úó   š!AÁA	c                ó$   <€ V ^8„  d   QhRS[ RR/# rÆ  rÇ  )r1   rý   s   "€r2   r3   r«  š  s   ø€ ÷ ,ñ ,Ñ$5ð ,¸$ñ ,r4   c                ó²   € V P                  R 4      ;_uu_ 4       pVP                  V P                  V4      4       RRR4       R#   + '       g   i     R# ; i)zir_post_fusion.txtNrÉ  rË  s   && r2   r&   ÚDebugFormatter.ir_post_fusionš  s8   € Ø�Z‰ZÐ,×-Ô-°Ø�H‰H�T—^‘^ EÓ*Ô+÷ .×-×-Ò-úrÍ  c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r.   rJ   r/   )r¼   r=   )r1   rý   s   "€r2   r3   r«  Ÿ  s   ø€ ÷ ñ Ñ*ð ©sñ r4   c                ó¾   € \         P                  ! 4       pV  F3  pVP                  VP                  4       4       VP                  R 4       K5  	  VP	                  4       # )z


)ÚioÚStringIOr½  Ú	debug_strÚgetvalue)rJ   r“   r]   s   &  r2   rÊ  ÚDebugFormatter._write_irž  sD   € ä�kŠk‹mˆÛˆDØ�I‰I�d—n‘nÓ&Ô'Ø�I‰I�hÖñ ð �|‰|‹~Ðr4   c                ó$   <€ V ^8„  d   QhRS[ RR/# rÆ  rÇ  )r1   rý   s   "€r2   r3   r«  ¦  s   ø€ ÷ 
ñ 
Ñ#4ð 
¸ñ 
r4   c                ót   € \        VV P                  R \        P                  P                   24      R7       R# )zgraph_diagram.)r;   N)rk   rH  r   rf   Úgraph_diagram_format)r8  rJ   s   &&r2   Úgraph_diagramÚDebugFormatter.graph_diagram¦  s+   € ÜØØ—-‘- .´·±×1RÑ1RÐ0SÐ TÓU÷	
r4   c                óR   <€ V ^8„  d   QhRS[ P                  P                  RS[RR/# )r.   rj   rJ   r/   NrÐ   )r1   rý   s   "€r2   r3   r«  ¬  s3   ø€ ÷ 
ñ 
á�H‰H× Ñ ð
ñ !ð
ð 
ñ	
r4   c           	     óÊ   € \        W4       \        VV P                  R \        P                  P
                   24      R\        R\        P                  P                  R7       R# )zorig_fx_graph_diagram.FT)r;   rP   ÚprogÚparse_stack_tracerQ   N)rÔ   r	   rH  r   rf   Úorig_fx_graph_diagram_formatÚGRAPHVIZ_COMMAND_SCALABLErQ   )r8  rj   rJ   s   &&&r2   Údraw_orig_fx_graphÚ!DebugFormatter.draw_orig_fx_graph¬  sP   € ô
 	% RÔ/ÜØØ—-‘-Ø(¬¯©×)RÑ)RÐ(SÐTóð Ü*Ø"Ü"ŸL™L×8Ñ8÷		
r4   c                ó*   <€ V ^8„  d   QhRS[ RS[ RR/# )r.   rH  Ú	extensionr/   Nr<   )r1   rý   s   "€r2   r3   r«  ½  s'   ø€ ÷ Iñ I¡Cð I±Cð IÀ4ñ Ir4   c                óV   € \         P                  ! WP                  R V 24      4       R# )zoutput_code.N)r6   r  rH  )r8  rH  ræ  s   &&&r2   Úoutput_codeÚDebugFormatter.output_code½  s   € Ü�Š�HŸm™m¨l¸9¸+Ð,FÓGÖHr4   c                óˆ   <€ V ^8„  d   QhRS[ RS[S[P                  ,          RS[RS[3,          RS[RS[RS[R,          R	R/# )
r.   r(   Úinput_nodesÚtimingsÚChoiceCallerÚelapseÚprecompile_elapseÚprescreening_elapseNr/   )r=   rL   r   ÚIRNoder½   Úfloat)r1   rý   s   "€r2   r3   r«  À  sp   ø€ ÷ Tñ TáðTñ ™"Ÿ)™)•_ðTñ �n¡eÐ+Õ,ð	Tñ
 ðTñ !ðTñ # T�\ðTð 
ñTr4   c                ó>  aa€ ^RI Ho R VV3R lloRTR\        P                  P	                  4       R\        P                  P                  4       RV Uu. uF  pS! V4      NK  	  upRVR	VR
V/pV P                  RRRR7      ;_uu_ 4       p	VP                  4        FZ  w  r«\        V
P                  4       4      pVP                  V4       W¼R&   \        P                  ! WÉ4       V	P                  R4       K\  	  RRR4       R# u upi   + '       g   i     R# ; i)é   )ÚFixedLayoutc                óf   € V ^8„  d   QhR\         P                  R\        \        \        3,          /# ©r.   r]   r/   )r   rñ  r½   r=   )r1   s   "r2   r3   Ú;DebugFormatter.log_autotuning_results.<locals>.__annotate__Ë  s&   € ÷ 6	ñ 6	¤"§)¡)ð 6	´´S¼#°Xµñ 6	r4   c                 óì  <€ \        V R 4      '       d   V P                  pMRpR VR\        V 4      P                  /p V P	                  4       p\        VS4      '       dÆ   S! VP                  VP                  \        P                  P                  P                  VP                  4      \        P                  P                  P                  VP                  4      \        P                  P                  P                  VP                  ^ R7      R7      p\!        V4      VR&   M\!        V4      VR&     \!        V P%                  4       4      VR&    \!        V P'                  4       4      VR&    \!        \        P                  P                  P                  V P)                  4       4      4      VR&    \!        \        P                  P                  P                  V P+                  4       4      4      VR	&    \!        \        P                  P                  P                  V P-                  4       4      4      VR
&   \        V R4      '       d@   \        V P.                  \0        P2                  4      '       d   S! V P.                  4      VR&   V#   \"         d     ELgi ; i  \"         d     EL\i ; i  \"         d     ELQi ; i  \"         d     ELi ; i  \"         d     Lìi ; i  \"         d     L¹i ; i)r(   Ú r—   )Úfallback)rb   rh   ÚstrideÚoffsetÚlayoutrb   r…   rü  rh   Únumelra   )r¡   r(   r—   rz   Úget_output_specrX   r…   rb   r$   rd   ÚsizevarsÚoptimization_hintsrh   rü  Úoptimization_hintrý  r=   r_   Ú	get_dtyper„   Ú
get_strideÚget_sizeÚ	get_numelra   r   rñ  )r]   rÆ   Ú	node_inforþ  Ústatic_layoutrõ  Úbuild_node_infos   &    €€r2   r
  Ú>DebugFormatter.log_autotuning_results.<locals>.build_node_infoË  sl  ø€ Ü�t˜V×$Ò$Ø ŸI™I‘	à�	à˜	Øœ˜T›
×+Ñ+ðˆIðØ×-Ñ-Ó/�Ü˜f k×2Ò2Ù$/ØŸ™Ø$Ÿl™lÜŸW™W×-Ñ-×@Ñ@ÀÇÁÓMÜ Ÿw™w×/Ñ/×BÑBÀ6Ç=Á=ÓQÜ Ÿw™w×/Ñ/×AÑAØ"ŸM™M°Að  Bó  ô%�Mô +.¨mÓ*<�I˜hÒ'ä*-¨f«+�I˜hÒ'ðÜ%(¨¯©Ó)9Ó%:�	˜'Ñ"ðÜ&)¨$¯/©/Ó*;Ó&<�	˜(Ñ#ðÜ&)Ü—G‘G×$Ñ$×7Ñ7¸¿¹Ó8IÓJó'�	˜(Ñ#ð
Ü$'Ü—G‘G×$Ñ$×7Ñ7¸¿¹»ÓHó%�	˜&Ñ!ð
Ü%(Ü—G‘G×$Ñ$×6Ñ6°t·~±~Ó7GÓHó&�	˜'Ñ"ô
 �t˜V×$Ò$¬°D·I±I¼r¿y¹y×)IÒ)IÙ$3°D·I±IÓ$>�	˜&Ñ!ØÐøô= ô Úðûô ô Úðûô ô Úðûô ô Úðûô ô Ùðûô ô Ùðúsu   ½C&J Ä$J Ä4J ÅJ0 Å.AK Æ2AK Ç6AK% ÊJÊJÊJ-Ê,J-Ê0J?Ê>J?ËKËKËK"Ë!K"Ë%K3Ë2K3Úop_nameÚcuda_device_nameÚcuda_device_countrë  Úautotuning_timeÚprecompile_timeÚprescreening_timezautotuning_result_json_list.txtÚatzutf-8)ÚencodingÚbenchmark_resultÚ
N)r   rõ  rš   ÚcudaÚget_device_nameÚdevice_countrT  rÉ   r½   Ú	info_dictÚupdateÚjsonÚdumpr½  )r8  r(   rë  rì  rî  rï  rð  r]   Úgeneral_propertiesr{  ÚcallerÚtimer  rõ  r
  s   &&&&&&&      @@r2   Úlog_autotuning_resultsÚ%DebugFormatter.log_autotuning_resultsÀ  s  ù€ õ 	$÷6	ñ 6	ðr �tØ¤§
¡
× :Ñ :Ó <Ø¤§¡×!8Ñ!8Ó!:Ø¹kÓJ¹k°d™O¨DÖ1¹kÑJØ˜vØÐ0ØÐ!4ð
Ðð ×ÑØ-¨t¸gð  ÷ 
ô 
àØ '§¡¦‘�Ü  ×!1Ñ!1Ó!3Ó4�	Ø× Ñ Ð!3Ô4Ø04Ð,Ñ-Ü—	’	˜)Ô(Ø—‘˜–ñ !0÷
ñ 
ùò K÷

÷ 
ð 
ús   ÁDÂA/DÄD	)rH  rO  rT  rª  N)Úpy)rz   rÿ   r   r  r9  r¿  rÃ  r%   r&   r¦  rÊ  rÛ  rã  rè  r   r  r  r  s   @r2   r   r   i  sw   ø‡ € ÷ð ÷<ð <÷<<ð <÷,ð ,÷,ð ,ð ÷ó ð÷
ð 
÷
ð 
÷"Iò I÷Tö Tr4   r   c                ó(   € V ^8„  d   QhR\         RR/# rÆ  rÇ  )r1   s   "r2   r3   r3     s   € ÷ !ñ !Ô.ð !°4ñ !r4   c                 óè   € \         P                  \        P                  4      '       d*   \         P	                  R \
        P                  V 4      4       \        P                  P                  V 4       R# )zBEFORE FUSION
%sN)
Úir_pre_fusion_logÚisEnabledForrã   rs  Úinfor   rÊ  r$   rl  r%   ©rJ   s   &r2   Úlog_ir_pre_fusionr)    sE   € Ü×%Ñ%¤g§l¡l×3Ò3Ü×ÑÐ2´N×4LÑ4LÈUÓ4SÔTä‡G�G×Ñ˜%Ö r4   c                ó(   € V ^8„  d   QhR\         RR/# rÆ  rÇ  )r1   s   "r2   r3   r3     s   € ÷ "ñ "Ô/ð "°Dñ "r4   c                 óè   € \         P                  \        P                  4      '       d*   \         P	                  R \
        P                  V 4      4       \        P                  P                  V 4       R# )zAFTER FUSION
%sN)
Úir_post_fusion_logr&  rã   rs  r'  r   rÊ  r$   rl  r&   r(  s   &r2   Úlog_ir_post_fusionr-    sE   € Ü×&Ñ&¤w§|¡|×4Ò4Ü×ÑÐ 2´N×4LÑ4LÈUÓ4SÔTä‡G�G×Ñ˜5Ö!r4   c                óL   € V ^8„  d   QhR\         \        R,          ,          RR/# )r.   ÚscheduleNr/   )rL   r=   )r1   s   "r2   r3   r3   %  s#   € ÷ 
ñ 
¬¬S°4­ZÕ(8ð 
¸Tñ 
r4   c                 ó‚   a €  \        R R V 3R lR7       R#   \         d    \        P                  RRR7        R# i ; i)Úartifactc                  ó   € R RRR/# )r(   Úinductor_collective_scheduler  r  r8   r8   r4   r2   Ú<lambda>Ú+_dump_collective_schedule.<locals>.<lambda>)  s   € ØÐ6Ø˜Fñ!r4   c                  ó   <€ S # r‹   r8   ©r/  s   €r2   r4  r5  -  s   ø€ ™xr4   ©Úmetadata_fnÚ
payload_fnzAFailed to log inductor_collective_schedule via structured loggingTr—  N)r   r_   rS   rl  r7  s   fr2   Ú_dump_collective_scheduler;  %  sE   ø€ ð
ÜØñô (÷	
øô ô 
Ü�	‰	ØOØð 	÷ 	
ð
ús   ƒ ˜">½>c                ó>   € V ^8„  d   QhR\         \        ,          RR/# rÆ  )r   r   )r1   s   "r2   r3   r3   6  s    € ÷ 	,ñ 	,¤8Ô,=Õ#>ð 	,À4ñ 	,r4   c           
      óÐ   € V  Uu. uF?  p\        \        VR R4      ;p\        P                  4      '       g   K2  \        VRR4      NKA  	  ppV'       d   \	        V4       R# R# u upi )r]   NÚpython_kernel_name)rX   rŸ  r   Ú_CollectiveKernelr;  )rJ   r]   Úopr/  s   &   r2   Úlog_collective_schedulerA  6  se   € ñ óáˆDÜœG D¨&°$Ó7Ð7�b¼×9MÑ9M×Nô 	0Œ�Ð(¨$Ö/Ùð ð ÷ Ü! (Ö+ñ ùòs
   …/A#¹A#c                ó`   € V ^8„  d   QhR\         \        \        \        3,          ,          RR/# )r.   Únode_runtimesr/   N)r   rY   r   rò  )r1   s   "r2   r3   r3   B  s,   € ÷ =Sñ =S¬x¼¼cÄ5¸jÕ8IÕ/Jð =SÈtñ =Sr4   c                óP  aa€  \         P                  P                  P                  oR V3R llpR R lp. oV  EF  w  r4\	        VP
                  RVP                  4       4      p\        P                  ! VP
                  4      '       d   RMRp. p VP                  4        F”  pVP
                  p	V	P                  4       p
\        V	P                  \        P                  4      '       d   V	P                  4       MRpV	P!                  4       pVP#                  R	V! V
4      R
V! V4      RV! V4      /4       K–  	  SP#                  RVRVRVRV/4       EK  	  \'        RR V3R lR7       R#   \$         d     L@i ; i  \$         d    \(        P+                  RRR7        R# i ; i)zDLog per-op runtime estimates and output tensor metadata for TLParse.c                ój   € V ^8„  d   QhR\         \        ,          R,          R\        \        ,          /# )r.   r�   Nr/   )r   r   rL   )r1   s   "r2   r3   Ú1log_runtime_and_tensor_meta.<locals>.__annotate__H  s+   € ÷ 	Kñ 	K”x¤•} tÕ+ð 	K´´Sµ	ñ 	Kr4   c                 ó2   <€ V e   \        S! V 4      4      # . # r‹   )rL   )r�   Úto_optimization_hintss   &€r2   Úto_listÚ,log_runtime_and_tensor_meta.<locals>.to_listH  s   ø€ Ø56²]”4Ñ-¨aÓ0Ó1ÐJÈÐJr4   c                ó>   € V ^8„  d   QhR\         R\        R,          /# )r.   rb   r/   N)r   r=   )r1   s   "r2   r3   rF  K  s   € ÷ 	ñ 	¤ð 	¬¨d­
ñ 	r4   c                 óJ   € V f   R # \        V 4      pVP                  R4      pV# )Nztorch.)r=   Úremoveprefix)rb   Úss   & r2   Údtype_to_strÚ1log_runtime_and_tensor_meta.<locals>.dtype_to_strK  s&   € ØŠ}ÙÜ�E“
ˆAØ—‘˜xÓ(ˆAØˆHr4   r>  Ú
collectiver�   NÚshaperü  rb   r(   r—   Úestimated_runtime_nsr®   r1  c                  ó   € R RRR/# )r(   Ú inductor_runtime_and_tensor_metar  r  r8   r8   r4   r2   r4  Ú-log_runtime_and_tensor_meta.<locals>.<lambda>x  s   € ØÐ:Ø˜Fñ!r4   c                  ó   <€ R S /# ©Úopsr8   rX  s   €r2   r4  rV  |  s	   ø€   s™|r4   r8  z.Failed to log inductor_runtime_and_tensor_metaTr—  )r$   rd   r  r  rŸ  r]   r¤   r   Úis_collectiver\   r^   rX   rþ  r   ÚLayoutr  Úmaybe_get_dtyper£   r_   r   rS   rl  )rC  rI  rO  rN  Ú
runtime_nsr(   Úop_typer®   r“   ÚirnoderR  rü  rb   rY  rH  s   &            @@r2   Úlog_runtime_and_tensor_metar`  B  sŠ  ù€ ð:SÜ !§¡× 0Ñ 0× CÑ CÐ÷	Kð 	Kõ	ð %'ˆÜ*‰MˆAÜ˜1Ÿ6™6Ð#7¸¿¹»ÓFˆDÜ&+×&9Ò&9¸!¿&¹&×&AÒ&A‘lÀyˆGð -/ˆGðØŸ=™=ž?�CØ ŸX™X�FØ"×1Ñ1Ó3�Eô & f§m¡m´R·Y±Y×?Ò?ð ×)Ñ)Ô+à!ð ð
 #×2Ñ2Ó4�EØ—N‘Nà#¡W¨U£^Ø$¡g¨f£oØ#¡\°%Ó%8ðöñ +ð& �J‰Jà˜DØ˜GØ*¨JØ˜wð	÷ñ5 +ôF 	Øñô ,÷	
øô ô Ùðûô( ô SÜ�	‰	ÐBÈTˆ	×RðSús7   „BE? ÂB(E.Ä;1E? Å.E<Å9E? Å;E<Å<E? Å?"F%Æ$F%c                ó   € V ^8„  d   QhRR/# rÖ   r8   )r1   s   "r2   r3   r3   ‚  s   € ÷ Bñ B˜Tñ Br4   c                 ó–   € \         '       g   R#  \        RR R R7       R#   \         d    \        P	                  RRR7        R# i ; i)	z:Emit a structured artifact with the graph execution order.Nr1  c                  ó   € R RRR/# )r(   Úgraph_executionr  r  r8   r8   r4   r2   r4  Ú%log_graph_execution.<locals>.<lambda>‰  s   € ØÐ)Ø˜Fñ!r4   c                  ó   € R \         /# )Úgraph_execution_order)ÚGRAPH_EXECUTION_ORDERr8   r4   r2   r4  re  �  s   € Ð 7Ô9NÑOr4   r8  zFailed to log graph_executionTr—  )rh  r   r_   rS   rl  r8   r4   r2   Úlog_graph_executionri  ‚  sK   € ç Ó Ùð
BÜØññ P÷	
øô ô BÜ�	‰	Ð1¸Dˆ	×AðBús   �" ¢"AÁAc                ó2   € V ^8„  d   QhR\         R,          /# rÖ   r×   )r1   s   "r2   r3   r3   ”  s   € ÷ !ñ !¬h°t­nñ !r4   c               #  ón   "  € . s / sRs Rx € \        4        RsRs RsR#   \        4        RsRs Rsi ; i5i)z5Record graph execution order and log it once on exit.TNF)rh  ÚGRAPH_COMPILE_IDSÚRECORD_GRAPH_EXECUTIONri  r8   r4   r2   Ú$record_and_log_graph_execution_orderrn  “  sT   é € ð ÐØÐØ!Ðð!ÛäÔØ!&ÐØ $ÐØ Òøô 	ÔØ!&ÐØ $ÐØ Ñüs   ‚5Š  Ž5 2²5c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )ÚTensorMetadataHolderi£  c                óF   <€ V ^8„  d   Qh/ S[ ;R&   S[P                  ;R&   # )r.   Útensor_metadatar…   )r   rš   r…   )r1   rý   s   "€r2   r3   Ú!TensorMetadataHolder.__annotate__£  s!   ø‡ ‚ á#Ñ#ñ ñ �L‰LÑò r4   r8   N©rz   rÿ   r   r  r  r  r  r  s   @r2   rp  rp  £  ó   ø‡ ‡ „ r4   rp  c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )ÚSymExprMetadataHolderi©  c                ó®   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[S[,          S[,          R,          ;R&   S[S[ S[S[,          S[,          3,          ;R&   # )r.   ÚpytypeÚexprNÚhintÚsymbol_hints)r=   r   rZ   rò  r0   r½   )r1   rý   s   "€r2   r3   Ú"SymExprMetadataHolder.__annotate__©  sV   ø‡ ‚ á�Kñ ñ �Iñ ñ ‘�+™Õ
˜tÕ
#Ñ#ñ	 ñ
 ‘s™C¡%�K©$Õ.Ð.Õ/Ñ/ò r4   r8   Nrt  r  s   @r2   rw  rw  ©  ru  r4   rw  c                óÆ   € V ^8„  d   QhR\         R,          R\        \        \        3,          R\        \        \        \        \        \        ,          3,          3,          /# )r.   Úpre_grad_graph_idNÚpost_to_pre_grad_nodes_jsonr/   )rZ   r½   r=   r   rL   )r1   s   "r2   r3   r3   ´  sN   € ÷ `ñ `Ü˜T•zð`ä!%¤c¬3 h¥ð`ô 
Œ#Œt”Cœœc��NÕ#Ð
#Õ$ñ`r4   c                óR  a€ R/ R/ /p\        V\        4      '       g   \        P                  R4       V# \        V \        4      '       g   V# \
        P                  ! \        4      p\
        P                  ! \        4      p R R lpVP                  4        EFv  w  rg\        V\        4      '       g   \        P                  R4       Vu # V EF:  pV! V4      '       g   Vu u # VP                  R4      V 8X  d=   W8R,          ,          P                  V4       WF,          P                  VR,          4       VP                  R	. 4       U	u. uF  q™V3NK  	  p
p	V
'       g   K–  V
P                  4       w  poV! V4      '       g   Vu u # VP                  R4      V 8X  d>   W;R,          ,          P                  S4       VS,          P                  VR,          4       V
P                  V3R
 lVP                  R	. 4       4       4       K±  	  EKy  	  R R lpV! V4       V! V4       RVRV/# u up	i   \         dh   p\        RRRRR\!        T4      R\"        P$                  ! 4       /4       \        P                  RT4       \        P                  RT 4       Tu Rp?# Rp?ii ; i)zl
Create bidirectional mappings between pre_grad graph nodes
and post_grad graph code nodes, and vice versa.
Ú	preToPostÚ	postToPrezDProvenance tracking error: post_to_pre_grad_nodes_json is not a dictc                óR   € V ^8„  d   QhR\         \        \        3,          R\        /# r÷  )r½   r=   r   r0   )r1   s   "r2   r3   Ú8create_mapping_pre_post_grad_nodes.<locals>.__annotate__Ò  s"   € ÷ 	ñ 	œt¤C¬ H�~ð 	´$ñ 	r4   c                 ó¸   € \        V \        4      '       g   \        P                  R 4       R# RV 9  g   RV 9  g   RV 9  d   \        P                  R4       R# R# )zWProvenance tracking error: node provenance in post_to_pre_grad_nodes_json is not a dictFÚgraph_idr(   Ú	from_nodezZProvenance tracking error: node provenance in post_to_pre_grad_nodes_json has wrong formatT)rX   r½   rS   Úerror)r]   s   &r2   Úcheck_formatÚ8create_mapping_pre_post_grad_nodes.<locals>.check_formatÒ  sQ   € Ü˜d¤D×)Ò)Ü—	‘	Ømôñ Ø Ô%¨°tÔ);¸{ÐRVÔ?VÜ—	‘	Øpôñ Ùr4   zJProvenance tracking error: post_to_pre_grad_nodes_json value is not a listr‡  r(   rˆ  c              3   ó*   <"  € T F  qS3x € K
  	  R # 5ir‹   r8   )rŒ   r/  Ú
parent_keys   & €r2   r�   Ú5create_mapping_pre_post_grad_nodes.<locals>.<genexpr>ö  s   øé € ð !Ù1R¨A˜J�Ó1Rùs   ƒc                óJ   € V ^8„  d   QhR\         \        \        3,          RR/# ©r.   Údr/   Nr  )r1   s   "r2   r3   r…  ú  ó"   € ÷ 	ñ 	¤T¬#¬s¨(¥^ð 	¸ñ 	r4   c                 óT   € V  F  p\        W,          4      W&   K  	  \        V 4      p R # r‹   ©rL   r½   ©r‘  Úkeys   & r2   Úconvert_sets_to_listsÚAcreate_mapping_pre_post_grad_nodes.<locals>.convert_sets_to_listsú  ó"   € Û�Ü˜a�f›�“ñ ä�Q“ŠAr4   r´  Úprovenance_tracking_errorÚfunctionÚ"create_mapping_pre_post_grad_nodesÚ	error_msgÚstack_tracez post_to_pre_grad_nodes_json:  %szpre_grad_graph_id:  %sN)rX   r½   rS   r‰  rZ   r˜   Údefaultdictr   rÉ   rL   rÓ   rÊ   ÚpopÚextendr_   r   r=   Ú	tracebackÚ
format_exc)r  r€  Úempty_returnÚpre_to_postÚpost_to_prerŠ  Ú	outer_keyÚ
node_arrayr]   r/  rõ   Úcurrent_noder—  Úer�  s   &&            @r2   rœ  rœ  ´  sc  ø€ ð 	�RØ�Rð5€Lô
 Ð1´4×8Ò8Ü�	‰	ØRô	
ð ÐäÐ'¬×-Ò-ð Ðä"-×"9Ò"9¼*Ó"E€KÜ"-×"9Ò"9¼*Ó"E€KðDõ	ð &A×%FÑ%F×%HÑ!ˆIÜ˜j¬$×/Ò/Ü—	‘	Ø`ôð $Ò#Ü"�Ù# D×)Ò)Ø'Ô'à—8‘8˜JÓ'Ð+<Ô<Ø V¥Õ-×1Ñ1°)Ô<ØÕ*×.Ñ.¨t°F­|Ô<ð 26·±¸+ÀrÔ1JÓKÑ1J¨A˜Y›Ñ1J�ÐKß‘eØ/4¯y©y«{Ñ,�L *Ù'¨×5Ò5Ø+Ô+Ø#×'Ñ'¨
Ó3Ð7HÔHØ#°Õ$8Õ9×=Ñ=¸jÔIØ# JÕ/×3Ñ3°LÀÕ4HÔIØ—L‘Lô !Ø1=×1AÑ1AÀ+ÈrÔ1Ró!ö ô# #ñ &Iõ6	ñ 	˜kÔ*Ù˜kÔ*à˜Ø˜ð
ð 	
ùò) Løô0 ô ô 	ØØ'àÐ@ØœS ›VØœy×3Ò3Ó5ðô	
ô 	�	‰	Ð4Ð6QÔRÜ�	‰	Ð*Ð,=Ô>ØÕûðúsR   ÂA
H4 ÃH4 Ã'A&H4 ÅH/ÅH4 Å% H4 ÆH4 ÆB"H4 È/H4 È4J&È?AJ!ÊJ&Ê!J&c                ó–   € V ^8„  d   QhR\         \        \        3,          R\         \        \         \        \        3,          3,          /# )r.   Útriton_kernel_to_post_grad_jsonr/   r  )r1   s   "r2   r3   r3     s6   € ÷ 9ñ 9Ü%)¬#¬s¨(¥^ð9ä	Œ#Œt”Cœ�H�~Ð
Õñ9r4   c                óT  € R/ R/ /p\        V \        4      '       g   \        P                  R4       V# \        P
                  ! \        4      p V P                  4        FT  w  r4\        V\        4      '       g   \        P                  R4       Vu # V F  pW%,          P                  V4       K  	  KV  	  R R lpV! V4       RV RV/#   \         dR   p\        RRR	R
R\        T4      R\        P                  ! 4       /4       \        P                  RT 4       Tu Rp?# Rp?ii ; i)ziCreate bidirectional mappings between triton kernel name and post_grad
graph code nodes, and vice versa.
ÚcppCodeToPostÚpostToCppCodezHProvenance tracking error: triton_kernel_to_post_grad_json is not a dictzNProvenance tracking error: triton_kernel_to_post_grad_json value is not a listc                óJ   € V ^8„  d   QhR\         \        \        3,          RR/# r�  r  )r1   s   "r2   r3   Ú=create_node_mapping_kernel_to_post_grad.<locals>.__annotate__6  r’  r4   c                 óT   € V  F  p\        W,          4      W&   K  	  \        V 4      p R # r‹   r”  r•  s   & r2   r—  ÚFcreate_node_mapping_kernel_to_post_grad.<locals>.convert_sets_to_lists6  r™  r4   r´  rš  r›  Ú"create_mapping_kernel_to_post_gradr�  rž  z$triton_kernel_to_post_grad_json:  %sN)rX   r½   rS   r‰  r˜   rŸ  r   rÉ   rL   rÊ   r_   r   r=   r¢  r£  )r¬  r¤  Úpost_to_cpp_coder§  r¨  Ú	curr_noder—  rª  s   &       r2   Ú'create_node_mapping_kernel_to_post_gradr·    s.  € ð 	˜Ø˜ð/€Lô
 Ð5´t×<Ò<Ü�	‰	ØVô	
ð Ðä'2×'>Ò'>¼zÓ'JÐð$Ø%D×%JÑ%JÖ%LÑ!ˆIÜ˜j¬$×/Ò/Ü—	‘	Ødôð $Ò#Û'�	Ø Õ+×/Ñ/°	Ö:ó (ñ &Mõ	ñ 	Ð.Ô/àÐ<ØÐ-ð
ð 	
øô ô ô 	ØØ'àÐ@ØœS ›VØœy×3Ò3Ó5ðô	
ô 	�	‰	Ø2Ð4Sô	
ð Õûðús&   ÁAC Â7C ÃD'ÃAD"ÄD'Ä"D'c                óF   € V ^8„  d   QhR\         \        \        3,          /# r-   r  )r1   s   "r2   r3   r3   S  s   € ÷ #ñ #¤t¬C´¨H¥~ñ #r4   c                  óæ  €  / p \         '       d�   \        \        4      p/ \        CVCp \        P
                  P                  '       dH   \        P                  P                  R R4      ;_uu_ 4       p\        P                  ! W4       RRR4       RV R&   V #   + '       g   i     L; i  \         d<   p\        RRRRR	\        T4      R
\        P                   ! 4       /4       / u Rp?# Rp?ii ; i)z/inductor_provenance_tracking_node_mappings.jsonr£  Ng       @Úversionr´  rš  r›  Údump_inductor_provenance_infor�  rž  )r  r·  r  r  r   rf   ro  r$   rl  rO  r  r  r_   r   r=   r¢  r£  )Únode_mappingÚnode_mapping_kernelr{  rª  s       r2   r»  r»  S  sà   € ð"ð (*ˆßÓÜ"IÜ>ó#ÐðÜ2ðà%ðˆLô �|‰|×#×#Ð#Ü—W‘W—]‘]ØEÀs÷ô àÜ—I’I˜lÔ/÷ð #&ˆ�YÑØÐ÷÷ ûô ô ô 	ØØ'àÐ;ØœS ›VØœy×3Ò3Ó5ðô	
ð �	ûðús;   ‚B* �A!B* Á1BÂB* ÂB'	Â"B* Â*C0Â50C+Ã%C0Ã+C0c                ór   € V ^8„  d   QhR\         \        ,          R\        \        \        ,          ,          /# )r.   rh   r/   )r   r   rL   rZ   r=   )r1   s   "r2   r3   r3   y  s&   € ÷ ñ ¤h¬s¥mð ¼¼SÄ3½Y½ñ r4   c                 óÀ   € . pV  FU  p\         P                  ! V4      '       d   VP                  \        V4      4       K;  VP                  \	        V4      4       KW  	  V# r‹   )r   Ú
_is_staticr£   rZ   r=   )rh   rR  Údims   &  r2   Ú_serialize_provenance_shaperÂ  y  sG   € Ø€EÛˆÜ�=Š=˜×ÒØ�L‰Lœ˜S›Ö"à�L‰Lœ˜S›Ö"ñ	 ð
 €Lr4   c                ó    € V ^8„  d   QhR\         P                  R\        \        \        \
        ,          ,          \
        3,          R,          /# )r.   r]   r/   N)r   rñ  rY   rL   rZ   r=   )r1   s   "r2   r3   r3   ƒ  s5   € ÷ 	9ñ 	9œrŸy™yð 	9¬U´4¼¼c½	µ?ÄCÐ3GÕ-HÈ4Õ-Oñ 	9r4   c                 ó²   € V P                  4       '       g   R # V P                  4       pV P                  4       pVe   Vf   R # \        V4      \	        V4      3# r‹   )Úhas_tensor_outputr^   r\  rÂ  r=   )r]   rh   rb   s   &  r2   Ú_get_tensor_metadatarÆ  ƒ  sP   € Ø×!Ñ!×#Ò#Ùà×ÑÓ €DØ× Ñ Ó"€EØ‚|�u’}Ùä& tÓ,¬c°%«jÐ8Ð8r4   c                óh   € V ^8„  d   QhR\         \        \         \        \        3,          3,          /# r-   r  )r1   s   "r2   r3   r3   �  s%   € ÷ =ñ =¬¬S´$´s¼C°xµ.Ð-@Õ(Añ =r4   c                 óº  €  \         P                  R/ 4      p \        \        P	                  4       4      \        \
        P	                  4       4      ,          p/ pV EF  p\
        P                  V. 4      p\        4       pV F$  pVP                  V P                  V. 4      4       K&  	  \        P                  V. 4      p\        V4      p\        P                  V4      p	V	e   V	P                  e   V	P                  p
M2V	e-   V	P                  '       d   \        V4      ^8X  d   V^ ,          p
MRp
RVRVRVRV
/W#&   V	f   Kç  V	P                  '       g   Kû  W#,          P                  V	P                  4       EK  	  V#   \         dR   p\        RRR	R
R\        T4      R\         P"                  ! 4       /4       \$        P'                  RT4       / u Rp?# Rp?ii ; i)zTCreate kernel information JSON with extended metadata for cross-hardware comparison.rƒ  NÚstack_tracesÚpost_grad_nodesÚpre_grad_nodesÚextern_semantic_keyr´  rš  r›  Úcreate_kernel_information_jsonr�  rž  z-create_kernel_information_json: exception: %s)r  rÓ   r   r  Úkeysr  r  rL   r  rû   r›   rª   rü   r_   r   r=   r¢  r£  rS   rT   )r¦  Úall_kernelsÚresultÚ
kernel_keyrÊ  rË  Ú	post_noderÉ  Úpre_grad_listr'  rÌ  rª  s               r2   rÍ  rÍ  �  s·  € ð;ô 7×:Ñ:¸;ÈÓKˆÜ Ô!=×!BÑ!BÓ!DÓEÌ
Ü:×?Ñ?ÓAóI
õ 
ˆð ˆÜ%ˆJÜL×PÑPØ˜BóˆOô /9«lˆNÛ,�	Ø×%Ñ% k§o¡o°iÀÓ&DÖEñ -ô 8×;Ñ;¸JÈÓKˆLÜ  Ó0ˆMô 0×3Ñ3°JÓ?ˆDØÒ D×$5Ñ$5Ò$AØ&*×&7Ñ&7Ñ#ØÒ! d§n§n n¼¸]Ó9KÈqÔ9PØ&3°AÕ&6Ñ#à&*Ð#ð  Ø! ?Ø  -Ø%Ð':ð	"ˆFÑð Ô D§K§K¢KØÕ"×)Ñ)¨$¯+©+×6ñC &ðF ˆøÜô ÜØØ'àÐ<ØœS ›VØœy×3Ò3Ó5ðô	
ô 	�‰ÐCÀQÔGØ�	ûðús1   ‚DE> Ä)E> ÅE> Å'E> Å>GÆ	AGÇGÇGc          	      ó‚   € V ^8„  d   QhR\         \        ,          \        ,          R\        R\        R\
        R,          /# )r.   Únode_scheduleÚkernel_namer›   r/   N)r   r   r   r=   r0   rZ   )r1   s   "r2   r3   r3   Ï  sE   € ÷ ñ ÜÔ-Õ.´Õ=ðäðô ðô 	ˆ4…Zñ	r4   c                óÎ  a€ \         P                  ! 4       ^ 8X  d   R#  ^RIHpHp \
        ^,          s. pV R\
         2pV'       Ed(   \        V \        4      '       g   \        R\        V 4       24      h\        P                  V\        4       4      pRVn        \        P                  V. 4      oV P                  '       d0   V P                  P                   pVS9  d   SP#                  V4       M%SP%                  V3R lV P&                   4       4       V P                  '       d@   R\)        V P                  R/ 4      9   d$   V P                  P*                  R,          Vn        M?V P&                   F/  pR\)        VR/ 4      9   g   K  VP*                  R,          Vn         M	   . p	. p
\/        V P0                  4       F\  p\        V\2        P4                  4      '       g   K%  \7        V4      pVf   K6  Vw  rÞV	P#                  V4       V
P#                  V4       K^  	  R	V	R
V
/p\7        V 4      pVe   Vw  ppVP9                  RVRV/4       Wön        \C        V PE                  4       4      pMÓ\        V \B        4      '       g   \        R\        V 4       24      h\G        4       pV  F‹  pVWC39  g   K  VPH                  f   K  \        P                  V. 4      oVP9                  VPH                  PE                  4       4       SP%                  V3R lVPH                  P&                   4       4       K�  	  \C        V4      p\J        P                  V. 4      P%                  V4       \
        #   \<         d#   p\>        PA                  RTT4        Rp?EL@Rp?ii ; i  \<         d;   p\M        RRRRR\O        T4      R\P        PR                  ! 4       /4        Rp?R# Rp?ii ; i)z—
Set the mapping between `kernel_name` and the post_grad nodes in `node_schedule`.

Returns a unique int debug handler for each call to this function.
N)ÚDisableReductionÚEnableReductionÚ:zexpected ExternKernel, got Tc              3   ób   <"  € T F$  pVP                   S9  g   K  VP                   x € K&  	  R # 5ir‹   ©r(   ©rŒ   rÅ   Úcurr_node_infos   & €r2   r�   Ú:set_kernel_post_grad_provenance_tracing.<locals>.<genexpr>ü  s*   øé € ð &á"7˜Ø—{‘{¨.Ñ8ô  �F—K–KÛ"7ùó   ƒ/›/rÌ  rV   Úinput_shapesÚinput_dtypesÚoutput_shapeÚoutput_dtypez"Shape extraction failed for %s: %szexpected list, got c              3   ób   <"  € T F$  pVP                   S9  g   K  VP                   x € K&  	  R # 5ir‹   rÜ  rÝ  s   & €r2   r�   rß  9  s,   øé € ð .ñ += Ø%Ÿ{™{°.Ñ@ô (˜FŸKžKã*<ùrà  r´  rš  r›  Ú'set_kernel_post_grad_provenance_tracingr�  rž  )*r   Ú#effective_provenance_tracking_levelÚcodegen.simd_kernel_featuresrØ  rÙ  r  rX   r   rÀ   r—   r  Ú
setdefaultrù   r›   r  Úorigin_noder(   r£   r¡  rÁ   rŸ  rV   rû   r   r°  r   rñ  rÆ  r  rü   r_   rS   rl  rL   Úget_stack_tracesr   r]   r  r   r=   r¢  r£  )rÕ  rÖ  r›   rØ  rÙ  rÉ  Úextern_infoÚorigin_node_namerÅ   rá  râ  Úinpri   rR  rb   Úshape_metadataÚoutput_metadatarã  rä  rª  Ústack_traces_setr[   rÞ  s   &&&                   @r2   ræ  ræ  Ï  s¥  ø€ ô ×1Ò1Ó3°qÔ8ÙðqßSô 	1°AÕ5Ð0Ø"$ˆØ$˜ QÔ'OÐ&PÐQˆßˆ9Ü˜m¬\×:Ò:Ü$Ø1´$°}Ó2EÐ1FÐGóð ô 7×AÑAØÔ.Ó0óˆKð %)ˆKÔ!ÜK×VÑVØ˜RóˆNð ×(×(Ð(Ø#0×#<Ñ#<×#AÑ#AÐ Ø#¨>Ô9Ø"×)Ñ)Ð*:Ô;øà×%Ñ%ô &à"/×"7Ò"7ó&ô ð ×(×(Ð(Ð-BÄgØ×)Ñ)¨6°2óGô .ð ,9×+DÑ+D×+IÑ+IØ)õ,�Õ(ð ,×3Ô3�FØ,´¸ÀÈÓ0KÖKØ39·;±;Ð?TÕ3U˜Ô0Ùñ 4ð
PØ68�Ø*,�Ü& }×';Ñ';Ö<�CÜ! #¤r§y¡y×1Ô1Ü#7¸Ó#<˜Ø#Ò+Ù$Ø'/™˜Ø$×+Ñ+¨EÔ2Ø$×+Ñ+¨EÖ2ñ =ð # LØ" Lð2�ô #7°}Ó"E�Ø"Ò.Ø1@Ñ.�L ,Ø"×)Ñ)à*¨LØ*¨Lðôð &4Ô"ô   × >Ñ >Ó @ÓA‰Lä˜m¬T×2Ò2Ü$Ð':¼4ÀÓ;NÐ:OÐ%PÓQÐQÜ0:³ÐÛ&�Ø Ð CÖCØ—z‘zÔ-äJ×UÑUØ +¨Róð 'ð )×/Ñ/°·
±
×0KÑ0KÓ0MÔNØ&×-Ñ-ô .ð +0¯*©*×*<Ò*<ó.ö ñ 'ô   Ð 0Ó1ˆLÜ$×/Ñ/°¸RÓ@×GÑGÈÔUÜ7Ð7øô3 ô PÜ—	‘	Ð>ÀÈQ×OÒOûðPûô4 ô ô 	ØØ'àÐEØœS ›VØœy×3Ò3Ó5ðô	
õ ûðúsj   Ÿ*N Á
CN Ä*AN ÆN Æ)9M/ Ç'A0M/ ÉAN Ê7N ËB'N Í/NÍ:NÎN ÎNÎN ÎO$Î*/OÏO$c                ó4   € V ^8„  d   QhR\         R\         RR/# rš  rg  )r1   s   "r2   r3   r3   Q  s&   € ÷ Zñ Z¬#ð Z¼ð ZÀñ Zr4   c                 ó|  a	a
a€ \         P                  P                  \        P                  ! 4       R4      p\         P                  P                  V4      '       g   \         P                  ! V4       R R loR V3R llo	R V	V
3R llo
\        S
W34      w  r4RpV R	V R
\        \        4       R2p\        VR4      ;_uu_ 4       p\        P                  ! W43V4       RRR4       \        P                  \        P                   4      '       d   RV RV: R2p\#        V4       R# R#   + '       g   i     LR; i)zØ
This function is used to save arguments for a compile_fx_inner function call
to the file system.  Later on one can replay the compile_fx_inner call
with the saved arguments using load_args_and_run_compile_fx_inner.
Úinductor_saved_argsc                ój   € V ^8„  d   QhR\         R\        \        ,          \        ,          R,          /# )r.   Úvaluer/   N)r   rZ   rò  r0   )r1   s   "r2   r3   Ú4save_args_for_compile_fx_inner.<locals>.__annotate__\  s(   € ÷  ñ  œCð  ¤C¬%¥K´$Õ$6¸Õ$=ñ  r4   c                 ó  € V f   R # \        V \        4      '       d   V # \        V \        \        34      '       d   V # \	        V RR 4      RJ d   \        V 4      #  \        V 4      #   \
        \        3 d    \        T 4      u # i ; i)NÚ
is_integerF)rX   r0   rZ   rò  rŸ  Ú	TypeErrorÚ
ValueError)rö  s   &r2   Úpython_valueÚ4save_args_for_compile_fx_inner.<locals>.python_value\  sz   € ØŠ=ÙÜ�eœT×"Ò"ØˆLÜ�eœc¤5˜\×*Ò*ØˆLä�5˜,¨Ó-°Ó6Ü˜“<Ðð	 Ü�u“:ÐøÜœ:Ð&ô 	 Ü˜“<Òð	 ús   Á
A% Á%BÂBc                ó<   € V ^8„  d   QhR\         R\        R\        /# )r.   r�   ry  r/   )r   r=   rw  )r1   s   "r2   r3   r÷  k  s"   € ÷ 
ñ 
œ3ð 
¬ð 
Ô0Eñ 
r4   c                 óB  <€ V P                   pVP                  p/ pVeZ   VP                  P                   F?  pVP                  P                  V4      pVf   K$  S! V4      pVf   K2  Wt\        V4      &   KA  	  \        VVP                  S! VP                  4      V4      # r‹   )	r]   Ú	shape_envrz  Úfree_symbolsÚbacked_var_to_valrÓ   r=   rw  r{  )	r�   ry  r]   r   r|  Úsymbolr{  Úpython_hintrü  s	   &&      €r2   Úhandle_sym_exprÚ7save_args_for_compile_fx_inner.<locals>.handle_sym_exprk  s”   ø€ Ø�v‰vˆØ—N‘Nˆ	Ø68ˆØÒ ØŸ)™)×0Ô0�Ø ×2Ñ2×6Ñ6°vÓ>�ØÔ#Ù".¨tÓ"4�KØ"Ô.Ø4?¤S¨£[Ó1ñ 1ô %ØØ�I‰IÙ˜Ÿ™Ó#Øó	
ð 	
r4   c                ó0   € V ^8„  d   QhR\         R\         /# ©r.   r�   r/   rg  )r1   s   "r2   r3   r÷  }  s   € ÷ ñ œð ¤ñ r4   c                ó\  <€ \        V \        4      '       dQ   \        P                  ! V 4      pVP                  P
                   F  p\        SVP                  4      Vn        K   	  V# \        V \        P                  4      '       d*   \        \        S\        V 4      4      V P                  4      # \        V \        P                  4      '       d
   S! V R4      # \        V \        P                  4      '       d
   S! V R4      # \        V \        P                  4      '       d
   S! V R4      # V # )zã
Pickle FakeTensor/SymInt will result in errors like:
AttributeError: Can't pickle local object 'WeakValueDictionary.__init__.<locals>.remove'

Convert tensors and symbolic values to metadata. This may also make
pickle faster.
rZ   rò  r0   )rX   r   r  Údeepcopyrd   rJ   r   rV   rš   r²  rp  r   r…   ÚSymIntÚSymFloatÚSymBool)r�   rj   r]   r  Úhandle_tensors   &  €€r2   r  Ú5save_args_for_compile_fx_inner.<locals>.handle_tensor}  sÞ   ø€ ô �aœ×%Ò%Ü—’˜qÓ!ˆBØŸ™Ÿœ�Ü$ ]°D·I±IÓ>�–	ñ 'àˆIÜ�aœŸ™×&Ò&Ü'Ü˜Ô(@ÀÓ(CÓDÀaÇhÁhóð ô ˜œ5Ÿ<™<×(Ò(Ù" 1 eÓ,Ð,Ü˜œ5Ÿ>™>×*Ò*Ù" 1 gÓ.Ð.Ü˜œ5Ÿ=™=×)Ò)Ù" 1 fÓ-Ð-àˆHr4   Úcompile_fx_innerÚ/rF   z.pklÚwbNz3
Arguments for a compile_fx_inner call is saved to z’. To replay the call,
run the following:

from torch._inductor.debug import load_args_and_run_compile_fx_inner
load_args_and_run_compile_fx_inner(z
)
        )r@   rA   rë   ÚtempfileÚ
gettempdirrA  Úmkdirr   ÚnextÚsave_args_cntrN  Úpickler  rS   r&  rã   rï   rc   )ru   r‡   ÚfolderÚargs_to_saveÚkwargs_to_saveÚfn_namerA   rS  Úmessager  r  rü  s   *,       @@@r2   Úsave_args_for_compile_fx_innerr  Q  s  ú€ ô �W‰W�\‰\œ(×-Ò-Ó/Ð1FÓG€FÜ�7‰7�>‰>˜&×!Ò!Ü
�Š�Ôõ ÷
ð 
÷$ñ ô4 $,¨M¸D¸>Ó#JÑ €Là €GØˆX�Q�w�i˜q¤¤mÓ!4Ð 5°TÐ:€DÜ	ˆd�D×	Ô	˜QÜ�Š�\Ð2°AÔ6÷ 
ô ×ÑœŸ™×&Ò&ð3Ø37°&ð 9$ð %)¡8ð ,	ðˆô 	ˆgŽñ '÷ 
×	ús   ÃD+Ä+D;	c                ó0   € V ^8„  d   QhR\         R\        /# )r.   rA   r/   )r=   r   )r1   s   "r2   r3   r3   ®  s   € ÷ I1ñ I1¬Sð I1´Sñ I1r4   c           	      óV  aaa	a
aa€ ^ RI Ho ^ RIHp ^ RIHoHp \        V R4      ;_uu_ 4       p\        P                  ! V4      w  rERRR4       V! 4       o/ oR VVVV3R llo
R V	V
3R	 llo	\        P                  P                  R
SR7      pV;_uu_ 4        \        P                  ! RR4      ;_uu_ 4        \        S	XX34      w  rEV! V/ VB uuRRR4       uuRRR4       #   + '       g   i     L§; i  + '       g   i     M; iRRR4       R#   + '       g   i     R# ; i)r   )ÚConstantSource)r  )Ú
DimDynamicÚShapeEnvÚrbNc                ó0   € V ^8„  d   QhR\         R\        /# r  )rw  r   )r1   s   "r2   r3   Ú8load_args_and_run_compile_fx_inner.<locals>.__annotate__¹  s   € ÷ %Uñ %UÔ1ð %U´cñ %Ur4   c                 ó”  <€ V P                   p\        V\        4      '       d-   ^ RIp^ RIHu Hu Hp VP                  WP                  R7      p/ pVP                   FÃ  p\        V4      pVS9  d¤   V P                  P                  V4      pVf]   V P                  e   W8X  d   V P                  pM;S
P                  S! V4      4      P                  P                   SV&   SV,          WE&   K�  S
P!                  VS! V4      S	P"                  RR7      SV&   SV,          WE&   KÅ  	  VP%                  V4      pV P&                  R8X  d   S
P)                  WP                  R7      # V P&                  R8X  d   S
P+                  WP                  R7      # V P&                  R8X  d   S
P-                  V4      # \/        R	V P&                   24      h)
r   N)ÚlocalsT)Údynamic_dimÚdo_not_specialize_zero_onerZ   )r{  rò  r0   z%Unexpected symbolic expression type: )rz  rX   r=   ÚsympyÚtorch.utils._sympy.functionsr   Ú_sympyÚ	functionsÚsympifyÚ__dict__r  r|  rÓ   r{  Úcreate_unbacked_symintr]   Úcreate_symbolÚDYNAMICÚxreplacery  Úcreate_symintnodeÚcreate_symfloatnodeÚcreate_symboolnoderÀ   )r�   rz  r+  Úsympy_functionsÚreplacementsr  Úsymbol_namer{  r!  r"  r   Úsymbol_caches   &       €€€€r2   Úrestore_sym_exprÚ<load_args_and_run_compile_fx_inner.<locals>.restore_sym_expr¹  s–  ø€ Ø�v‰vˆÜ�dœC× Ò ÛçBÓBà—=‘= ×.FÑ.F�=ÓGˆDØˆØ×'Ô'ˆFÜ˜f›+ˆKØ ,Ô.Ø—~‘~×)Ñ)¨+Ó6�Ø’<Ø—v‘vÒ)¨d¬nØ Ÿv™v™à4=×4TÑ4TÙ*¨;Ó7ó5ç™$Ÿt™tð % [Ñ1ð 0<¸KÕ/H˜Ñ,Ù Ø,5×,CÑ,CØÙ" ;Ó/Ø *× 2Ñ 2Ø/3ð	 -Dó -�˜[Ñ)ð $0°Õ#<ˆLÓ ñ' (ð( �}‰}˜\Ó*ˆØ�8‰8�uÔØ×.Ñ.¨t¿&¹&Ð.ÓAÐAØ�X‰X˜Ô Ø×0Ñ0°¿F¹FÐ0ÓCÐCØ�X‰X˜ÔØ×/Ñ/°Ó5Ð5ä Ð#HÈÏÉÈ
Ð!SÓTÐTr4   c                ó0   € V ^8„  d   QhR\         R\         /# r  rg  )r1   s   "r2   r3   r&  à  s   € ÷ ñ œð ¤ñ r4   c                 óä  <€ \        V \        4      '       d;   V P                  P                   F  p\	        SVP
                  4      Vn        K   	  V # \        V \        4      '       dk   \	        SV P                  4      p\        P                  P                  P                  VP                  VP                  VP                  V P                  4      # \        V \         4      '       d	   S! V 4      # V # r‹   )rX   r   rd   rJ   r   rV   rp  rr  rš   Ú_dynamoÚtestingÚrand_stridedrR  rü  rb   r…   rw  )r�   r]   rr  r  r<  s   &  €€r2   r  Ú9load_args_and_run_compile_fx_inner.<locals>.handle_tensorà  s¸   ø€ Ü�aœ×%Ò%ØŸ™Ÿœ�Ü$ ]°D·I±IÓ>�–	ñ &àˆHÜ˜Ô/×0Ò0Ü& }°a×6GÑ6GÓHˆOÜ—=‘=×(Ñ(×5Ñ5Ø×%Ñ%Ø×&Ñ&Ø×%Ñ%Ø—‘ó	ð ô ˜Ô0×1Ò1Ù# AÓ&Ð&àˆHr4   T)Úallow_non_fake_inputsr   Ú	save_argsF)Útorch._dynamo.sourcer!  Útorch._inductor.compile_fxr  Ú%torch.fx.experimental.symbolic_shapesr"  r#  rN  r  Úloadrš   rº  ÚFakeTensorModer   r   r   )rA   r  r#  rS  ru   r‡   Ú	fake_moder!  r"  r  r<  r   r;  s   &      @@@@@@r2   Ú"load_args_and_run_compile_fx_innerrL  ®  sÕ   ý€ Ý3Ý;ßJä	ˆd�D×	Ô	˜QÜ—{’{ 1“~‰ˆ÷ 
ñ “
€IØ#%€L÷%Uó %U÷Nñ ô$ ×!Ñ!×0Ñ0Ø"¨ið 1ó €I÷ 
Š”F—L’L ¨e×4Õ4Ü °°f¨~Ó>‰ˆÙ Ð0¨Ñ0÷ 5Ñ4�Š÷E 
×	ú÷D 5×4ú���Šús/   ¯C'Â DÂ:C:	Ã
DÃ'C7	Ã:D
ÄDÄD(	Úpackage_pathc          
      óÆ   € V ^8„  d   QhR\         R\        3,          R\        P                  P                  R\
        \        \        3,          R\        R,          R\        /# )r.   Úfunc.Úexported_programÚinductor_configsrM  Nr/   )r   r=   rš   ÚexportÚExportedProgramr½   r   r   )r1   s   "r2   r3   r3   ú  s`   € ÷ Rñ RÜ
�3œ�8Õ
ðRä—l‘l×2Ñ2ðRô œ3¤˜8•nð	Rô
 ˜T•/ðRô 	ñRr4   c          	      ó0  € ^ RI Hp ^ RIHp ^ RIHp ^ RIHp VP                  P                  pVP                  RR7      p	\        V	\        P                  P                  4      '       g   \        R\!        V	4       24      hVP"                  w  r« V'       d'   VP                  P$                  ^8X  d   V! VRVR	7       V'       dÏ   VP                  P$                  ^8X  d´   \&        P(                  ! V	4      p\&        P(                  ! VP"                  4      p\&        P(                  ! V4      pV! VV^ ,          V^,          VR	7      w  rþ\+        V4      p\        P,                  P-                  VVRR
7      pV ! VP                  RR7      VVVRRR7       V ! V	V
VVVVR7      #   T d)   pT! TRRTR7       \.        P1                  R4       ThRp?i\2         d;   pT'       d,   RpTP                  P$                  ^8X  d   RpT! TRTTR7       ThRp?ii ; i)r   )ÚAccuracyError)Údump_to_minifyr   )Ú_aoti_flatten_inputsF)Úcheck_guardsz#expected torch.fx.GraphModule, got Úaot_inductor)Úoptions)ÚstrictTÚaccuracy)rQ  rM  Úload_and_runÚcheck_accuracy)rQ  rM  r]  Úaot_inductor_accuracyÚminify)ÚcommandrZ  zAccuracy failedNÚrun)Útorch._dynamo.debug_utilsrU  Útorch._dynamo.repro.aotirV  Útorch._inductorr   rG  rW  rY  Údump_aoti_minifierÚmodulerX   rš   r   r   rÀ   r—   Úexample_inputsÚrepro_levelr  r
  rY   rR  rS   rT   r_   )rO  rP  rQ  rM  rU  rV  r   rW  Úuse_minifierrj   ru   r‡   Úgm_copyÚexample_inputs_copyÚconfig_copyÚflat_example_inputsÚtuple_inputsÚflattened_eprª  ra  s   &&$$                r2   Úaot_inductor_minifier_wrapperrq  ú  sü  € õ 8Ý7Ý&Ý?à×&Ñ&×9Ñ9€Là	×	 Ñ	 ¨eÐ	 Ó	4€BÜ�bœ%Ÿ(™(×.Ñ.×/Ò/ÜÐBÄ4ÈÃ8À*ÐMÓNÐNà#×2Ñ2�L€Dð>ß˜F×/Ñ/×;Ñ;¸qÔ@áØ ØØ(õ÷
 ˜F×/Ñ/×;Ñ;¸qÔ@ô —m’m BÓ'ˆGÜ"&§-¢-Ð0@×0OÑ0OÓ"PÐÜŸ-š-Ð(8Ó9ˆKÙ/CØØ# AÕ&Ø# AÕ&Ø#ô	0Ñ,Ðô !Ð!4Ó5ˆLÜ Ÿ<™<×.Ñ.¨w¸ÈUÐ.ÓSˆLÙØ×#Ñ#°Ð#Ó7ØØ!,Ø)Ø!Ø)õñ ØØØØ-Ø%Ø%ô
ð 	
øð ô ÙØØ#ØØ$õ		
ô 	�‰Ð%Ô&ØˆûÜô ßØˆGà×"Ñ"×.Ñ.°!Ô3Ø�áØ ØØØ(õ	ð ˆûðús1   Â5F# ÃCF# Æ#HÆ*#GÇHÇHÇ5HÈHc                ó´  € V ^8„  d   Qh/ ^ \         9   d-   \        \        \        \        3,          ,          R,          ;R&   ^\         9   d
   \
        ;R&   ^\         9   d)   \        \        \        R,          3,          R,          ;R&   ^\         9   d7   \        \        \        \        \        \        ,          3,          3,          ;R&   ^\         9   d&   \        \        \        \        ,          3,          ;R&   ^\         9   d   \        R,          ;R&   ^\         9   d   \        \        \        3,          ;R&   ^\         9   d&   \        \        \        \        ,          3,          ;R	&   ^\         9   d,   \        \        \        \        \        3,          3,          ;R
&   ^	\         9   d
   \        ;R&   ^
\         9   d   \        \        \        3,          ;R&   # )r.   Nrh  rm  rl  r  r  r  r  r  r	  r  r  )	Ú__conditional_annotations__rL   r½   r=   Úobjectr0   rZ   r   rù   )r1   s   "r2   r3   r3      sf  € × Ñ ÷h =Ò <”tœD¤¤f Õ-Õ.°Õ5Ñ <ñi ÷j %Ò $œÑ $ñk ÷l 7Ò 6”4œœS 4�Z˜Õ(¨4Õ/Ñ 6ñm ÷@ GÒ F¤$¤s¬D´´d¼3µi°Õ,@Ð'@Õ"AÑ FñA ÷B JÒ I´´S¼$¼s½)°^Õ0DÑ IñC ÷D &Ò %”C˜$•JÑ %ñE ÷F 9Ò 8¤T¬#¬s¨(¥^Ñ 8ñG ÷H 8Ò 7œd¤3¬¬S­	 >Õ2Ñ 7ñI ÷J :Ò 9œ4¤¤T¬#¬s¨(¥^Ð 3Õ4Ñ 9ñK ÷L 2Ò 1¬#Ñ 1ñM ÷` @Ò ?œd¤3Ô(9Ð#9Õ:Ñ ?òa r4   )r*   z-Gnslimit=2z-Gnslimit1=2z-Gmaxiter=5000)FN)Nr   )F)†rs  r˜   rç   r  ÚdataclassesÚ	functoolsrÓ  r¤  r  rã   r@   Úos.pathr  rŽ  r6   r  r¢  Úcollections.abcr   r   r   Útypingr   r   Úunittest.mockr   rš   Úfunctorch.compiler	   r
   r   r   Útorch._dynamo.repro.after_aotr   Útorch._dynamo.utilsr   Útorch._functorchr   rD   re  r   Útorch._loggingr   Útorch._logging._internalr   Útorch._utils_internalr   Útorch.fx.graph_moduler   Útorch.fx.passes.shape_propr   r   Útorch.fx.passes.tools_commonr   Útorch.typesr   Útorch.utils._ordered_setr   Útorch.utils._pytreer   r   rú  r   r   Ú	schedulerr   r    r!   r"   r#   Úvirtualizedr$   rä   rz   rS   rh  rm  rl  r%  r,  rL   r¼   r™   r'   râ  rR   Úcacher9   rH   rk   rU   r¿   rÎ   rÔ   r§  r÷   r  r  r  r  r  r	  r  Ú	dataclassrù   r  r
  r  r  r%  r'  r   r)  r-  r;  rA  r`  ri  rn  rp  rw  r¥  r  rœ  r·  r»  rÂ  rÆ  rÍ  ræ  r  rL  rq  r3   )rs  s   @r2   Ú<module>rŒ     sí  øðß Ð Û Û Û Û Û 	Û Û Û Û 	Û Û Û Û Û Û ß 8Ñ 8ß Ý ã ß VÑ VÝ Ý :Ý -Ý 7Ý !Ý ,Ý 5Ý 0Ý -ß OÝ 7Ý  Ý /ß 5ç Ý ÷õ õ ð ×Ò˜Ó!€ð 9=Ð Ó <Ø$Ð Ó $Ø26Ð Ó 6á% h°Ó@Ð Ù& xÐ1AÓBÐ Ø˜•IÐ Ø
×
 Ò
  ¨V°ZÐ,@Ó
A€ÚTÐ Ù# U¨E NÓ3Ð ð ‡�ô+ó ð+õ7÷7õt`÷F$õN!õ$Ið" ×Ñô%ó ð%ðV EGÐ  Ó FØGIÐ .Ó IØ!%Ð Ó %Ø68Ð #Ó 8Ø57Ð Ó 7Ø79Ð Ó 9Ø01Ð (Ó 1ð ×Ñ÷)ð )ó ð)ð >@Ð Ó ?õ%õ	
õ1ð
 ×Ñô6Ló ð6L÷rcñ c÷Lkñ kõ\!õ"õ
õ"	,õ=Sõ@Bð" ×Ñô!ó ð!ð ×Ñ÷ð ó ðð
 ×Ñ÷0ð 0ó ð0ð —’Ó!€õ`õF9õx#õLõ	9õ=÷@õDZõzI1ðXRð
 %)÷Rñ Rr4   