Ë
    úÍ:jü  ã                   óÐ  — d dl Z d dlZd dlmZ e j                  defd„«       Ze j                  defd„«       Ze j                  defd„«       Ze j                  defd„«       Z	e j                  defd„«       Z
e j                  defd	„«       Z e j                  d«      defd
„«       Ze j                  defd„«       Ze j                  defd„«       Ze j                  defd„«       Zy)é    N)ÚAnyÚreturnc                  óJ   — 	 ddl m}  | d uS # t        $ r Y yt        $ r Y yw xY w)Nr   ©Ú
triton_keyF)Útriton.compiler.compilerr   ÚImportErrorÚRuntimeErrorr   s    úh/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/torch/utils/_triton.pyÚhas_triton_packager      s2   € ðÝ7à Ð%Ð%øÜò ÙÜò Ùðús   ‚	 Œ	"—"¡"c                  ó®   — dd l } | j                  j                  «       xr6 | j                  j                  «       dk\  xr | j                  j
                   S )Nr   ©é	   r   )ÚtorchÚcudaÚis_availableÚget_device_capabilityÚversionÚhip)r   s    r   Ú_device_supports_tmar      sK   € ãð 	�
‰
×ÑÓ!ò 	"Ø�J‰J×,Ñ,Ó.°&Ñ8ò	"à—‘×!Ñ!Ð!ðó    c                  ó^   — t        «       rt        «       r
	 ddlm} m} yy# t
        $ r Y yw xY w)Nr   ©Úcreate_1d_tma_descriptorÚcreate_2d_tma_descriptorTF)r   r   Ú$triton.tools.experimental_descriptorr   r   r	   r   s     r   Ú has_triton_experimental_host_tmar      s9   € äÔÜÔ!ð÷ð
 ð øô ò Øàðús   –   	,«,c                  óZ   — t        «       rt        «       r	 ddlm}  yy# t        $ r Y yw xY w)Nr   ©ÚTensorDescriptorTF)r   r   Útriton.tools.tensor_descriptorr    r	   r   s    r   Ú%has_triton_tensor_descriptor_host_tmar"   .   s9   € äÔÜÔ!ðõð ð øô ò Øàðús   – ž	*©*c                  ó.   — t        «       xs
 t        «       S )N)r"   r   © r   r   Úhas_triton_tmar%   >   s   € ä0Ó2ÒXÔ6VÓ6XÐXr   c                  ó  — t        «       r[dd l} | j                  j                  «       r=| j                  j	                  «       dk\  r | j
                  j                  s
	 ddlm}m	} yy# t        $ r Y nw xY w	 ddlm} y# t        $ r Y yw xY w)Nr   r   )Ú&experimental_device_tensormap_create1dÚ&experimental_device_tensormap_create2dT©Úmake_tensor_descriptorF)r   r   r   r   r   r   r   Útriton.language.extra.cudar'   r(   r	   Útriton.languager*   )r   r'   r(   r*   s       r   Úhas_triton_tma_devicer-   C   s‡   € äÔÛð �J‰J×#Ñ#Ô%Ø—
‘
×0Ñ0Ó2°fÒ<Ø—M‘M×%Ò%ð÷ð
 ð øô ò ÙðúðÝBàøÜò Øàðús$   ÁA' Á'	A3Á2A3Á7A> Á>	B
Â	B
c                  óè   — t        «       rYdd l} | j                  j                  «       r;| j                  j	                  «       dk\  r| j
                  j                  s	 ddlm} yy# t        $ r Y yw xY w)Nr   r   r)   TF)
r   r   r   r   r   r   r   r,   r*   r	   )r   r*   s     r   Úhas_triton_stable_tma_apir/   c   sf   € äÔÛð �J‰J×#Ñ#Ô%Ø—
‘
×0Ñ0Ó2°fÒ<Ø—M‘M×%Ò%ðÝBàð øô ò ØØðús   ÁA% Á%	A1Á0A1c                  ó¼   ‡‡— t        «       syddlmŠ dt        dt        fd„} dt        dt        fd„}dt        dt        fd„}| ||d	œŠdt        fˆˆfd
„} |«       S )NFr   )Úget_interface_for_deviceÚdevice_interfacer   c                 óP   — | j                   j                  «       j                  dk\  S )Né   )ÚWorkerÚget_device_propertiesÚmajor©r2   s    r   Úcuda_extra_checkz$has_triton.<locals>.cuda_extra_check}   s"   € Ø×&Ñ&×<Ñ<Ó>×DÑDÈÑIÐIr   c                 ó:   — dd l }d|j                  j                  v S )Nr   Úcpu)Útriton.backendsÚbackends)r2   Útritons     r   Úcpu_extra_checkz#has_triton.<locals>.cpu_extra_check€   s   € Ûà˜Ÿ™×0Ñ0Ð0Ð0r   c                  ó   — y)NTr$   r8   s    r   Ú_return_truez has_triton.<locals>._return_true…   s   € Ør   )r   Úxpur;   c                  ó|   •— ‰j                  «       D ](  \  } } ‰| «      }|j                  «       sŒ ||«      sŒ( y y)NTF)Úitemsr   )ÚdeviceÚextra_checkr2   r1   Útriton_supported_devicess      €€r   Ú is_device_compatible_with_tritonz4has_triton.<locals>.is_device_compatible_with_tritonŽ   sG   ø€ Ø#;×#AÑ#AÓ#Cò 	ÑˆF�KÙ7¸Ó?ÐØ×,Ñ,Õ.±;Ð?OÕ3PÙð	ð r   )r   Útorch._dynamo.device_interfacer1   r   Úbool)r9   r?   rA   rH   r1   rG   s       @@r   Ú
has_tritonrK   v   su   ù€ äÔØåGðJ¬3ð J´4ó Jð1¬#ð 1´$ó 1ð
¤sð ¬tó ð !ØØñ Ðð¬dö ñ ,Ó-Ð-r   c                  ó^   — ddl m}  ddlm} |j                  j                  «       } | |«      S )Nr   )Úmake_backend)Údriver)r   rM   Útriton.runtime.driverrN   ÚactiveÚget_current_target)rM   rN   Útargets      r   Útriton_backendrS   ˜   s%   € å5Ý,à�]‰]×-Ñ-Ó/€FÙ˜ÓÐr   c                  óÖ   — ddl m}  t        «       } | «       › d|j                  «       › �}t	        j
                  |j                  d«      «      j                  «       j                  «       S )Nr   r   ú-zutf-8)	r   r   rS   ÚhashÚhashlibÚsha256ÚencodeÚ	hexdigestÚupper)r   ÚbackendÚkeys      r   Útriton_hash_with_backendr^   ¡   sR   € å3äÓ€GÙ‹\ˆN˜!˜GŸL™L›NÐ+Ð
,€Cô �>‰>˜#Ÿ*™* WÓ-Ó.×8Ñ8Ó:×@Ñ@ÓBÐBr   )Ú	functoolsrW   Útypingr   ÚcacherJ   r   r   r   r"   r%   r-   Ú	lru_cacher/   rK   rS   Ústrr^   r$   r   r   ú<module>rd      sT  ðÛ Û Ý ð ‡�ð˜Dò ó ðð ‡�ð˜dò ó ðð ‡�ð¨$ò ó ðð  ‡�ð¨tò ó ðð ‡�ðY˜ò Yó ðYð ‡�ð˜tò ó ðð> €×Ñ�TÓð 4ò ó ðð$ ‡�ð.�Dò .ó ð.ðB ‡�ð ˜ò  ó ð ð ‡�ðC #ò Có ñCr   