+
    ˜°³j3  ã                   óà  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHt R R ltR R ltR R lt	R	 R
 lt
R R ltR R R llt]! R4      R3R R llt]R8X  d—    ] P                  ! RR7      t]P#                  R]RR7       ]P#                  R]]! R4      RR7       ]P#                  RRRR7       ]P%                  4       t]! ]P(                  ]P*                  ]P,                  '       * 4      tR# R# )!é    N)ÚPathc                ó0   € V ^8„  d   QhR\         R\         /# ©é   Úsource_codeÚreturn©Ústr)Úformats   "Ú^/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/utils/_get_clean_triton.pyÚ__annotate__r   
   s   € ÷ ñ ´Cð ¼Cñ ó    c                 óf   € \         P                  ! R RV 4      p\         P                  ! RRV4      pV# )z(\n.+\s\'\'\'\n)Ú
z(\'\'\'\,.+))ÚreÚsub)r   Úremove_headÚremove_tails   &  r   Ú"remove_triton_function_declarationr   
   s-   € Ü—&’&Ð,¨d°KÓ@€KÜ—&’&˜¨$°Ó<€KØÐr   c                ó0   € V ^8„  d   QhR\         R\         /# r   r	   )r   s   "r   r   r      s   € ÷ ñ ¤cð ¬cñ r   c                 ó�   € \         P                  V R R4      p\         P                  VRR4      p\         P                  VRR4      pV# )zasync_compile = AsyncCompile()Ú zasync_compile.wait(globals())zdel async_compile)r
   Úreplace)r   Úremove_top_levelÚremove_compileÚ
remove_dels   &   r   Úremove_async_compiler      sE   € Ü—{‘{ ;Ð0PÐRTÓUÐÜ—[‘[Ð!1Ð3RÐTVÓW€NÜ—‘˜^Ð-@À"ÓE€JØÐr   c                ó0   € V ^8„  d   QhR\         R\         /# r   r	   )r   s   "r   r   r      s   € ÷ ñ ¤ð ¬ñ r   c                 ój  € R pRp\         P                  ! W\         P                  4       Uu. uF$  pVP                  4       VP	                  ^4      3NK&  	  pp\        V4       FG  w  rVV P                  W%4      pVR8w  d+   V RV RV 2,           W\        V4      ,           R ,           p KG  KI  	  V # u upi )z/(\w+)\s*=\s*async_compile\.triton\('triton_',\szdef triton_Nzdef éÿÿÿÿ)r   ÚfinditerÚDOTALLÚendÚgroupÚreversedÚfindÚlen)r   ÚpatternÚtriton_kernel_declÚmatchÚmatchesÚ	end_indexÚcaptured_stringÚ
index_of_Bs   &       r   Úrename_kernelsr/      sË   € Ø@€GØ&Ðô —[’[ ´r·y±yÔAóáAˆEð 
�‰‹�e—k‘k !“nÓ%ÙAð ð ô '/¨wÖ&7Ñ"ˆ	à ×%Ñ%Ð&8ÓDˆ
Ø˜Ôð ˜K˜ZÐ(Ø˜Ð)Ð*õ+à¬3Ð/AÓ+BÕBÐDÐEõFò ñ ñ '8ð Ðùò)s   ¬*B0c                ó~   € V ^8„  d   QhR\         \        ,          R\         \        ,          R\         \        ,          /# )r   Úoriginal_paramsÚ
new_paramsr   )Úlistr
   )r   s   "r   r   r   1   s-   € ÷ ñ ¤$¤s¥)ð ¼¼c½ð ÄtÌCÅyñ r   c                 ón   € \        \        V4      4       F  pW,          R 8X  g   K  W,          W&   K  	  V# )ÚT)Úranger'   )r1   r2   Úidxs   && r   Úmerge_paramsr8   1   s1   € Ü”S˜“_Ö%ˆØ�?˜cÖ!Ø-Õ2ˆJ‹Oñ &ð Ðr   c                ó€   € V ^8„  d   QhR\         R\        \         \        \         \         3,          3,          R\         /# )r   ÚoriginalÚkernel_to_paramsr   )r
   ÚdictÚtuple)r   s   "r   r   r   8   s6   € ÷ $ñ $Üð$Ü%)¬#¬u´S¼#°X­Ð*>Õ%?ð$äñ$r   c                 óœ   a€ R pR V3R llp\         P                  ! W#V 4      p\         P                  ! RRV\         P                  R7      pV# )z(\w+)\.run\((.*)\)c                ó$   € V ^8„  d   QhR\         /# )r   r   r	   )r   s   "r   r   Ú'add_launch_params.<locals>.__annotate__>   s   € ÷ 	ñ 	œ#ñ 	r   c                 óê   <€ V P                  ^4      pV P                  ^4      pSV,          w  r4\        VP                  R4      VP                  R4      4      pV RV RRP                  V4       R2pV# )é   z, Ú[z](Ú))r$   r8   ÚsplitÚjoin)r*   Ú	func_nameÚparamsr2   ÚgridÚ
new_stringr;   s   &     €r   r   Ú"add_launch_params.<locals>.replace>   st   ø€ à—K‘K “Nˆ	Ø—‘˜Q“ˆØ+¨IÕ6Ñˆ
Ü! &§,¡,¨tÓ"4°j×6FÑ6FÀtÓ6LÓMˆ
ð "�{ ! D 6¨¨D¯I©I°jÓ,AÐ+BÀ!ÐDˆ
ØÐr   z"@triton_heuristics[^@]*@triton.jitz@triton.jit)Úflags)r   r   r"   )r:   r;   r(   r   ÚtransformedÚremove_inductor_wrapperss   &f    r   Úadd_launch_paramsrO   8   sM   ø€ ð $€G÷	ð 	ô —&’&˜¨8Ó4€Kä!ŸvšvØ-ØØÜ�i‰iô	 Ðð $Ð#r   Tc                óH   € V ^8„  d   QhR\         R\         R\        R\         /# )r   Úinput_filenameÚoutput_filenameÚauto_generate_paramsr   )r
   Úbool)r   s   "r   r   r   U   s,   € ÷ ?ñ ?Üð?Ü*-ð?ÜEIð?äñ?r   c           	      ó  € \        V 4      ;_uu_ 4       pVP                  4       pR R R 4       XpRV9   d   \        R4      h\        V4      p\	        V4      pV  R2p\
        P                  P                  V4      '       Eg   V'       dü   \        RV R24        \
        P                  P                  4       pRVR&   \        P                  ! \        P                  V .TRR\
        P                  P                  V 4      ;'       g    R	R
7      pVP                   ^ 8w  dX   \        RV  R24       \        RVP"                   24       \        RVP$                   24       \        RVP                    24      h\        RV 24       \
        P                  P                  V4      '       g   \        RV RV  R24      h\        V4      ;_uu_ 4       p
V
P+                  4       pR R R 4       X Uu. uF  qÌP-                  R4      NK  	  ppV UUUu/ uF5  w  rïpVP/                  4       VP/                  4       VP/                  4       3bK7  	  pppp\1        VV4      p\        VR4      ;_uu_ 4       pVP3                  V4       R R R 4       \        RV 24       V#   + '       g   i     ELz; i  \&         d!   p	\        RT  R\)        T	4       24      T	hR p	?	ii ; i  + '       g   i     EL; iu upi u upppi   + '       g   i     L‚; i)Nzdef triton_(z]Need to run original Pytorch code generating kernels with TORCHINDUCTOR_UNIQUE_KERNEL_NAMES=1z.launch_paramszLaunch params file z not found. Generating...Ú1Ú TORCHINDUCTOR_DUMP_LAUNCH_PARAMSTÚ.)ÚenvÚcapture_outputÚtextÚcwdzError running Ú:zstdout: zstderr: zBFailed to generate launch params. Command failed with return code zSuccessfully generated z,Failed to generate launch params by running z: zMissing z1. Run `TORCHINDUCTOR_DUMP_LAUNCH_PARAMS=1 python z` first.Ú|Úw)ÚopenÚreadÚRuntimeErrorr   r   ÚosÚpathÚexistsÚprintÚenvironÚcopyÚ
subprocessÚrunÚsysÚ
executableÚdirnameÚ
returncodeÚstdoutÚstderrÚ	Exceptionr
   Ú	readlinesrE   ÚstriprO   Úwrite)rQ   rR   rS   Úfiler   Útransformed_codeÚlaunch_params_filenamerY   ÚresultÚeÚfÚlaunch_params_metaÚiÚsplit_paramsÚaÚbÚcÚkernel_args_grids   &&&               r   Úprocess_filer‚   U   sÇ  € ô 
ˆn×	Ô	 Ø—i‘i“kˆ÷ 
ð #ÐØ˜Ô$ÜØkó
ð 	
ô :Ð:JÓKÐÜ+Ð,<Ó=Ðà .Ð/¨~Ð>Ðô �7‰7�>‰>Ð0×1Ó1×6JÜÐ#Ð$:Ð#;Ð;TÐUÔVð	ä—*‘*—/‘/Ó#ˆCØ69ˆCÐ2Ñ3ä—^’^Ü—‘ Ð0ØØ#ØÜ—G‘G—O‘O NÓ3×:Ð:°sôˆFð × Ñ  AÔ%Ü˜ ~Ð&6°aÐ8Ô9Ü˜ §¡ Ð0Ô1Ü˜ §¡ Ð0Ô1Ü"ØXÐY_×YjÑYjÐXkÐlóð ô Ð+Ð,BÐ+CÐDÔEô �7‰7�>‰>Ð0×1Ò1ÜØÐ-Ð.Ð._Ð`nÐ_oÐowÐxó
ð 	
ô 
Ð$×	%Ô	%¨ØŸ[™[›]Ð÷ 
&ñ +=Ó=Ñ*< Q—G‘G˜C–LÑ*<€LÐ=ÙIUÕVÉ¹g¸aÀA˜Ÿ™›	 A§G¡G£I¨q¯w©w«yÐ#9Ò9ÉÐÒVÜ(Ð)9Ð;KÓLÐä	ˆo˜s×	#Ô	# tØ�
‰
Ð#Ô$÷ 
$ä	Ð# OÐ#4Ð
5Ô6ØÐ÷y 
×	Ð	ûôP ô 	ÜØ>¸~Ð>NÈbÔQTÐUVÓQWÐPXÐYóàðûð	ú÷ 
&×	%Ð	%üò >ùÜV÷ 
$×	#úsO   ”JÂA,J* ÄA>J* ÇKÇ,K,È;K1É,K8ÊJ'	Ê*KÊ5KËKËK)	Ë8L	ztriton_only_repro.pyc                ó<   € V ^8„  d   QhR\         R\         R\        /# )r   Ú
input_pathÚoutput_pathrS   )r   rT   )r   s   "r   r   r   —   s+   € ÷ Qñ QÜðQäðQô ñQr   c                ó@   € \        \        V 4      \        V4      V4      # )a
  Run experiments and output results to file

Args:
    input_path (Path): Path to inductor generated output code
    output_path (Path): Path to write out the new python file
    auto_generate_params (bool): Whether to automatically generate launch_params if missing
)r‚   r
   )r„   r…   rS   s   &&&r   Úget_clean_tritonr‡   —   s   € ô œ˜J›¬¨[Ó)9Ð;OÓPÐPr   Ú__main__z=Clean Inductor generated code to remove Inductor dependencies)Údescriptionr„   z&Path to inductor generated output code)ÚtypeÚhelpz--output_pathz)Path to write out the clean triton output)rŠ   Údefaultr‹   z--no-auto-generateÚ
store_truez2Disable automatic generation of launch_params file)Úactionr‹   )T)Úargparserc   r   ri   rk   Úpathlibr   r   r   r/   r8   rO   r‚   r‡   Ú__name__ÚArgumentParserÚparserÚadd_argumentÚ
parse_argsÚargsr„   r…   Úno_auto_generaterx   © r   r   Ú<module>r™      s  ðã Û 	Û 	Û Û 
Ý õõõõ4õ$÷:?ñH Ð3Ó4Ø!%÷Qð ˆzÔðð ×$Ò$ØSô€Fð
 ×ÑØ˜4Ð&Nð ô ð ×ÑØØÙÐ+Ó,Ø8ð	 ô ð ×ÑØØØAð ô ð ×ÑÓ€Dñ Ø�‰˜×)Ñ)¨t×/DÑ/DÔ+Dó‚FñA r   