
    Th                        S SK r S SKrS SKJr  \ R                  S\4S j5       r\ R                  S\4S j5       r\ R                  S\4S j5       r\ R                  S\4S j5       r	\ R                  S\4S j5       r
\ R                  S\4S	 j5       r\ R                  " S5      S\4S
 j5       r\ R                  S\4S j5       r\ R                  S\4S j5       r\ R                  S\4S j5       rg)    N)Anyreturnc                  N     SSK Jn   U S L$ ! [         a     g[         a     gf = f)Nr   
triton_keyF)triton.compiler.compilerr   ImportErrorRuntimeErrorr   s    M/var/www/fran/franai/venv/lib/python3.13/site-packages/torch/utils/_triton.pyhas_triton_packager      s2    7%%  s   	 
$	$$c                      SS K n U R                  R                  5       =(       a?    U R                  R                  5       S:  =(       a    U R                  R
                  (       + $ )Nr   	   r   )torchcudais_availableget_device_capabilityversionhip)r   s    r   _device_supports_tmar      sK     	

! 	"JJ,,.&8	"!!!    c                  t    [        5       (       a  [        5       (       a
   SSKJn Jn  gg! [
         a     gf = f)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      s?    !!
    s   * 
77c                  p    [        5       (       a  [        5       (       a   SSKJn   gg! [         a     gf = f)Nr   TensorDescriptorTF)r   r   triton.tools.tensor_descriptorr    r	   r   s    r   %has_triton_tensor_descriptor_host_tmar"   .   s?    !!    s   ( 
55c                  8    [        5       =(       d
    [        5       $ )N)r"   r    r   r   has_triton_tmar%   >   s    02X6V6XXr   c                  >   [        5       (       af  SS Kn U R                  R                  5       (       aC  U R                  R	                  5       S:  a%  U R
                  R                  (       d
   SSKJnJ	n  gg! [         a     Of = f SSKJn  g! [         a     gf = f)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     JJ##%%

002f<MM%%
    B s$   -A7 7
BBB 
BBc                  
   [        5       (       ad  SS Kn U R                  R                  5       (       aA  U R                  R	                  5       S:  a#  U R
                  R                  (       d   SSKJn  gg! [         a     gf = f)Nr   r   r)   TF)
r   r   r   r   r   r   r   r,   r*   r	   )r   r*   s     r   has_triton_stable_tma_apir/   c   sl     JJ##%%

002f<MM%%B   s   -A5 5
BBc                     ^^ [        5       (       d  gSSKJm  S[        S[        4S jn S[        S[        4S jnS[        S[        4S jnU UUS	.mS[        4UU4S
 jjnU" 5       $ )NFr   )get_interface_for_devicedevice_interfacer   c                 P    U R                   R                  5       R                  S:  $ )N   )Workerget_device_propertiesmajorr2   s    r   cuda_extra_check$has_triton.<locals>.cuda_extra_check}   s"    &&<<>DDIIr   c                 <    SS K nSUR                  R                  ;   $ )Nr   cpu)triton.backendsbackends)r2   tritons     r   cpu_extra_check#has_triton.<locals>.cpu_extra_check   s    0000r   c                     g)NTr$   r8   s    r   _return_true has_triton.<locals>._return_true   s    r   )r   xpur<   c                     > TR                  5        H3  u  pT" U 5      nUR                  5       (       d  M$  U" U5      (       d  M3    g   g)NTF)itemsr   )deviceextra_checkr2   r1   triton_supported_devicess      r    is_device_compatible_with_triton4has_triton.<locals>.is_device_compatible_with_triton   sG    #;#A#A#CF7?,,..;?O3P3P $D r   )r   torch._dynamo.device_interfacer1   r   bool)r9   r@   rC   rK   r1   rJ   s       @@r   
has_tritonrO   v   s}    GJ3 J4 J1# 1$ 1
s t  ! d   ,--r   c                  ^    SSK Jn   SSKJn  UR                  R                  5       nU " U5      $ )Nr   )make_backend)driver)r   rQ   triton.runtime.driverrR   activeget_current_target)rQ   rR   targets      r   triton_backendrW      s%    5,]]--/Fr   c                      SSK Jn   [        5       nU " 5        SUR                  5        3n[        R
                  " UR                  S5      5      R                  5       R                  5       $ )Nr   r   -zutf-8)	r   r   rW   hashhashlibsha256encode	hexdigestupper)r   backendkeys      r   triton_hash_with_backendrb      sR    3G\N!GLLN+
,C >>#**W-.88:@@BBr   )	functoolsr[   typingr   cacherN   r   r   r   r"   r%   r-   	lru_cacher/   rO   rW   strrb   r$   r   r   <module>rh      sR      D   d   $    t   Y Y Y t  > T4  $ .D . .B       C# C Cr   