
    3Ki                     X   S SK r S SKrS SKJr  \ R                  S\4S j5       r\ R                  SS\\\4   S\\\4   4S j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\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                  .     SS K n g! [         a     gf = f)Nr   TF)tritonImportError)r   s    U/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/torch/utils/_triton.pyhas_triton_packager	      s     s    
fallbackc                      SS K n[        S UR                  R                  S5      S S  5       5      u  p#X#4$ ! [         a    U s $ f = f)Nr   c              3   8   #    U  H  n[        U5      v   M     g 7fN)int).0vs     r   	<genexpr>%get_triton_version.<locals>.<genexpr>   s     O-NSVV-Ns   .   )r   tuple__version__splitr   )r
   r   majorminors       r   get_triton_versionr      sP    OV-?-?-E-Ec-J2A-NOO~ s   69 AA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                      [        5       (       a&  [        5       (       a   SSKJn Jn   SSKJn  U" 5       $ g! [         a     gf = f! [         a     gf = f)Nr   )create_1d_tma_descriptorcreate_2d_tma_descriptor)enable_in_pytorchTF)r	   r%   $triton.tools.experimental_descriptorr(   r)   r*   r   )r(   r)   r*   s      r    has_triton_experimental_host_tmar,   &   s\    !!
 V,..  #    s,   A 7 
AA AA 
AA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_tmar1   <   s?    !!    s   ( 
55c                  8    [        5       =(       d
    [        5       $ r   )r1   r,    r&   r   has_triton_tmar4   L   s    02X6V6XXr&   c                  |   [        5       (       a  SS Kn U R                  R                  5       (       a9  U R                  R	                  5       S:  a  U R
                  R                  (       a  U R                  R                  5       (       a
   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#   xputriton.language.extra.cudar6   r7   r   triton.languager9   )r   r6   r7   r9   s       r   has_triton_tma_devicer=   Q   s     JJ##%%

002f<MM%%YY##%%
    B s$   B 
B#"B#'B. .
B;:B;c                  .   SS K n U R                  R                  5       (       ar  U R                  R                  5       S:  aT  U R                  R                  5       S:  a6  U R                  R
                  (       d  [        5       =(       a
    [        5       $ g)Nr   )
   r   )   r   F)r   r   r    r!   r"   r#   r=   r1   r$   s    r   #has_datacenter_blackwell_tma_devicerA   q   sf     	

!!JJ,,.'9JJ,,.8!!$&R+P+RRr&   c                  H   [        5       (       a  SS Kn U R                  R                  5       (       a9  U R                  R	                  5       S:  a  U R
                  R                  (       a  U R                  R                  5       (       a   SSKJ	n  gg! [         a     gf = f)Nr   r   r8   TF)r	   r   r   r    r!   r"   r#   r:   r<   r9   r   )r   r9   s     r   has_triton_stable_tma_apirC      s     JJ##%%

002f<MM%%YY##%%B   s   B 
B! B!c                     ^^ [        5       (       d  gSSKJn   U (       a  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US
.mS[        4UU4S jjnU" 5       $ )NFr   )triton_disable_device_detection)get_interface_for_devicedevice_interfacer   c                 P    U R                   R                  5       R                  S:  $ )N   )Workerget_device_propertiesr   rG   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)rG   r   s     r   cpu_extra_check#has_triton.<locals>.cpu_extra_check   s    0000r&   c                     g)NTr3   rL   s    r   _return_true has_triton.<locals>._return_true   s    r&   )r   r:   rP   mtiac                     > 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_checkrG   rF   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._inductor.configrE   torch._dynamo.device_interfacerF   r   bool)rE   rM   rS   rV   r^   rF   r]   s        @@r   
has_tritonrc      s    F&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)triton.compiler.compilerre   triton.runtime.driverrf   activeget_current_target)re   rf   targets      r   triton_backendrl      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   )
triton_key-zutf-8)	%torch._inductor.runtime.triton_compatrn   rl   hashhashlibsha256encode	hexdigestupper)rn   backendkeys      r   triton_hash_with_backendry      sR    @G\N!GLLN+
,C >>#**W-.88:@@BBr&   ))r   r   )	functoolsrr   typingr   cacherb   r	   r   r   r   r%   r,   r1   r4   r=   rA   	lru_cacherC   rc   rl   strry   r3   r&   r   <module>r      s      D   sCx eCHo   d   $  * t   Y Y Y t  > T   T4  $ $.D $. $.N       C# C Cr&   