Ë
    [^(h×  ã                   óÆ  — d dl Z d dlZd dlZd dlmZ dedefd„Zdedefd„Zdedefd„Zde	e   d	e	e   de	e   fd
„Z
dedeeeeef   f   defd„Zdededefd„Z ed«      fdedefd„Zedk(  rq	  e j"                  d¬«      Zej'                  ded¬«       ej'                  de ed«      d¬«       ej)                  «       Z eej,                  ej.                  «      Zyy)é    N)ÚPathÚsource_codeÚreturnc                 ób   — t        j                  dd| «      }t        j                  dd|«      }|S )Nz(\n.+\s\'\'\'\n)ú
z(\'\'\'\,.+))ÚreÚsub)r   Úremove_headÚremove_tails      ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/utils/_get_clean_triton.pyÚ"remove_triton_function_declarationr      s-   € Ü—&‘&Ð,¨d°KÓ@€KÜ—&‘&˜¨$°Ó<€KØÐó    c                 ó�   — t         j                  | dd«      }t         j                  |dd«      }t         j                  |dd«      }|S )Nzasync_compile = AsyncCompile()Ú zasync_compile.wait(globals())zdel async_compile)ÚstrÚ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                 óJ  — d}d}t        j                  || t         j                  «      D �cg c]#  }|j                  «       |j	                  d«      f‘Œ% }}t        |«      D ]:  \  }}| j                  ||«      }|dk7  r| d | d|› �z   | |t        |«      z   d  z   } Œ;Œ< | S c c}w )Nz/(\w+)\s*=\s*async_compile\.triton\('triton_',\szdef triton_é   éÿÿÿÿz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öàð 
�‰‹�e—k‘k !“nÒ%ð€Gð ô '/¨wÓ&7ò Ñ"ˆ	�?à ×%Ñ%Ð&8¸)ÓDˆ
Ø˜Òð ˜K˜ZÐ(Ø˜Ð)Ð*ñ+à˜j¬3Ð/AÓ+BÑBÐDÐEñFñ ð ðð Ðùò)s   ¬(B Úoriginal_paramsÚ
new_paramsc                 óZ   — t        t        |«      «      D ]  }||   dk(  sŒ| |   ||<   Œ |S )NÚT)Úranger    )r)   r*   Úidxs      r   Úmerge_paramsr/   /   s<   € Ü”S˜“_Ó%ò 3ˆØ�c‰?˜cÓ!Ø-¨cÑ2ˆJ�sŠOð3ð Ðr   ÚoriginalÚkernel_to_paramsc                 ó    ‡— d}dt         fˆfd„}t        j                  ||| «      }t        j                  dd|t        j                  ¬«      }|S )Nz(\w+)\.run\((.*)\)r   c                 óä   •— | j                  d«      }| j                  d«      }‰|   \  }}t        |j                  d«      |j                  d«      «      }|› d|› ddj                  |«      › d�}|S )Nr   é   z, ú[z](ú))r   r/   ÚsplitÚjoin)r#   Ú	func_nameÚparamsr*   ÚgridÚ
new_stringr1   s         €r   r   z"add_launch_params.<locals>.replace<   sv   ø€ à—K‘K “Nˆ	Ø—‘˜Q“ˆØ+¨IÑ6Ñˆ
�DÜ! &§,¡,¨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   )r0   r1   r!   r   ÚtransformedÚremove_inductor_wrapperss    `    r   Úadd_launch_paramsr@   6   sQ   ø€ ð $€Gð	œ#õ 	ô —&‘&˜ '¨8Ó4€Kä!Ÿv™vØ-ØØÜ�i‰iô	 Ðð $Ð#r   Úinput_filenameÚoutput_filenamec           	      óÜ  — t        | «      5 }|j                  «       }d d d «       }d|v rt        d«      ‚t        |«      }t	        |«      }| › d�}t
        j                  j                  |«      st        d|› d| › d�«      ‚t        |«      5 }|j                  «       }d d d «       D �cg c]  }|j                  d«      ‘Œ }	}|	D �
��ci c]5  \  }
}}|
j                  «       |j                  «       |j                  «       f“Œ7 }}}
}t        ||«      }t        |d«      5 }|j                  |«       d d d «       |S # 1 sw Y   �Œ!xY w# 1 sw Y   Œ¬xY wc c}w c c}}}
w # 1 sw Y   |S xY w)	Nzdef triton_(z]Need to run original Pytorch code generating kernels with TORCHINDUCTOR_UNIQUE_KERNEL_NAMES=1z.launch_paramszMissing z1. Run `TORCHINDUCTOR_DUMP_LAUNCH_PARAMS=1 python z first.ú|Úw)ÚopenÚreadÚRuntimeErrorr   r   ÚosÚpathÚexistsÚ	readlinesr7   Ústripr@   Úwrite)rA   rB   Úfiler   Útransformed_codeÚlaunch_params_filenameÚfÚlaunch_params_metaÚiÚsplit_paramsÚaÚbÚcÚkernel_args_grids                 r   Úprocess_filerZ   S   sy  € Ü	ˆnÓ	ð " Ø—i‘i“kˆ÷"ð #ÐØ˜Ñ$ÜØkó
ð 	
ô :Ð:JÓKÐÜ+Ð,<Ó=Ðà .Ð/¨~Ð>ÐÜ�7‰7�>‰>Ð0Ô1ÜØÐ-Ð.Ð._Ð`nÐ_oÐovÐwó
ð 	
ô 
Ð$Ó	%ð +¨ØŸ[™[›]Ð÷+ð +=Ö= Q�A—G‘G˜C•LÐ=€LÐ=ØIU×VÐV¹g¸aÀÀA˜Ÿ™›	 A§G¡G£I¨q¯w©w«yÐ#9Ñ9ÐVÐÒVÜ(Ð)9Ð;KÓLÐä	ˆo˜sÓ	#ð % tØ�
‰
Ð#Ô$÷%àÐ÷7"ñ "ú÷$+ð +üò >ùÜV÷%àÐús/   ŒD<ÂE	Â*EÃ
:EÄ E!Ä<EÅ	EÅ!E+ztriton_only_repro.pyÚ
input_pathÚoutput_pathc                 ó>   — t        t        | «      t        |«      «      S )zÔRun experiments and output results to file

    Args:
        input_path (Optional[Path]): Path to inductor generated output codede
        output_path (Optional[Path]): Path to write out the new python file
    )rZ   r   )r[   r\   s     r   Úget_clean_tritonr^   r   s   € ô œ˜J›¬¨[Ó)9Ó:Ð:r   Ú__main__z=Clean Inductor generated code to remove Inductor dependencies)Údescriptionz&Path to inductor generated output code)ÚtypeÚhelpz--output_pathz)Path to write out the clean triton output)ra   Údefaultrb   )ÚargparserI   r   Úpathlibr   r   r   r   r(   Úlistr/   ÚdictÚtupler@   rZ   r^   Ú__name__ÚArgumentParserÚparserÚadd_argumentÚ
parse_argsÚargsr[   r\   Úresult© r   r   ú<module>rq      sq  ðã Û 	Û 	Ý ð°Cð ¸Có ð cð ¨có ð ð ¨ó ð4 $ s¡)ð ¸¸c¹ð ÀtÈCÁyó ð$Øð$Ø%)¨#¨u°S¸#°X©Ð*>Ñ%?ð$àó$ð: ð °sð ¸só ñ@ +/Ð/EÓ*Fñ	;Øð	;Ø#'ó	;ð ˆzÒðð %ˆX×$Ñ$ØSô€Fð
 ×ÑØ˜4Ð&Nð ô ð ×ÑØØÙÐ+Ó,Ø8ð	 ô ð ×ÑÓ€Dñ ˜dŸo™o¨t×/?Ñ/?Ó@�Fð1 r   