
    '}hA                        d dl Z d dlZd dlZd dlmZ  e j
                  d      defd       Z e j
                  d      defd       Z e j
                  d      d        Z	e j
                  d        Z
 e j
                  d      d        Zy)	    N)get_interface_for_devicereturnc                  2    	 dd l } | d uS # t        $ r Y yw xY w)Nr   F)tritonImportError)r   s    R/var/www/html/test/engine/venv/lib/python3.12/site-packages/torch/utils/_triton.pyhas_triton_packager	      s'    T!! s   
 	c                  B    d } d| ifd} |       xr
 t               S )Nc                 P    | j                   j                         j                  dk\  S )N   )Workerget_device_propertiesmajor)device_interfaces    r   cuda_extra_checkz$has_triton.<locals>.cuda_extra_check   s"    &&<<>DDII    cudac                      j                         D ]+  \  } }t        |       }|j                         s" ||      s+ y y)NTF)itemsr   is_available)deviceextra_checkr   triton_supported_devicess      r    is_device_compatible_with_tritonz4has_triton.<locals>.is_device_compatible_with_triton   sG    #;#A#A#C 	FK7?,,.;?O3P	 r   )r	   )r   r   r   s     @r   
has_tritonr      s0    J !'(89 ,-F2D2FFr   c                      ddl m} m} dd l}|j                  j
                  ry |j                  j                         sy  | d      }| |       S |j                         S )Nr   )get_backendget_cuda_version_keyr   )	triton.common.backendr   r   torchversionhipr   r   get_version_key)r   r   r    backends       r   triton_backend_hashr%   #   sR    G}}::""$&!G#%%&&((r   c                  (   dd l } dd l}t        j                  j	                  t        j                  j                  |j                              }g }t        t        j                  j                  |dd      d      5 }|t        j                  |j                               j                         gz  }d d d        t        j                  j                  |d      }t        j                  j                  |dd      }| j                  ||g      D ]y  }t        |j                  j                  |j                         j"                  d      5 }|t        j                  |j                               j                         gz  }d d d        { t        j                         }t        t        j                  j                  |d      d      5 }	 |j                  d      }	|	sn|j%                  |	       &	 d d d        |j'                  |j                                t        j                  j                  |d      }
| j                  |
g      D ]y  }t        |j                  j                  |j                         j"                  d      5 }|t        j                  |j                               j                         gz  }d d d        { dd	lm} | d
j                  |      z   S # 1 sw Y   1xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr   compilerzcompiler.pyrbbackendsz_C/libtriton.soi   language)__version__-)pkgutilr   ospathdirnameabspath__file__openjoinhashlibsha256read	hexdigestiter_modulesmodule_finder	find_specnameoriginupdateappendr+   )r-   r   TRITON_PATHcontentsfcompiler_pathbackends_pathliblibtriton_hashchunklanguage_pathr+   s               r   
triton_keyrI   7   so   ''//"''//&//"BCKH 
bggll;
MBD	I ;QW^^AFFH-779::; GGLLj9MGGLLj*EM##]M$BC ?###--chh7>>E 	?1;;=>>H	? 	?? ^^%N	bggll;(9:D	A )QFF7OE!!%(	  	) OON,,./GGLLj9M##]O4 ?###--chh7>>E 	?1;;=>>H	? 	?? #]chhx0003; ;	? 	?) )	? 	?s0   <6K!
6K.(K;6L!K+.K8	;LL	c                      dd l } | j                  j                  ry t               }t	                d| }t        j                  |j                  d            j                         S )Nr   r,   zutf-8)	r    r!   r"   r%   rI   r5   r6   encoder8   )r    backend_hashkeys      r   triton_hash_with_backendrN   ]   sP    }}&(L\N!L>
*C>>#**W-.88::r   )	functoolsr5   r.   torch._dynamo.device_interfacer   	lru_cacheboolr	   r   r%   rI   rN    r   r   <module>rT      s      	 C TD   TGD G G  T) )& "1 "1J T	; 	;r   