Ë
    5^(h  ã                   ó¢   — d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ d dl	m
Z
mZ d dlmZ  ed¬«       G d„ d	e«      «       Z G d
„ de¬«      Zy)é    N)ÚABCMetaÚabstractmethod)Ú	dataclass)ÚDictÚUnion)Ú
ModuleTypeT)Úfrozenc                   ó6   — e Zd ZU eed<   eeef   ed<   eed<   y)Ú	GPUTargetÚbackendÚarchÚ	warp_sizeN)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r   Úint© ó    úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/triton/backends/compiler.pyr   r      s   … ð ƒLà
��S�‰/ÓØ„Nr   r   c                   óð   — e Zd Zdeddfd„Zedefd„«       Zee	defd„«       «       Z
e	defd„«       Ze	d	edefd
„«       Ze	ded	eddfd„«       Ze	d„ «       Ze	deeef   fd„«       Zed„ «       Zed„ «       Zy)ÚBaseBackendÚtargetÚreturnNc                 ó8   — || _         | j                  |«      sJ ‚y ©N)r   Úsupports_target)Úselfr   s     r   Ú__init__zBaseBackend.__init__   s   € ØˆŒØ×#Ñ# FÔ+Ð+Ñ+r   Úbinaryc                 ó  — | t        j                  d«      z  } t        j                  j	                  t        j                  j                  t        «      t        j                  «      }t        j                  j                  d| j                  «       › d�d«      t        j                  j	                  |ddd| «      g}|D ]¸  }t        j                  j                  |«      sŒ#t        j                  j                  |«      sŒCt        j                  |dgt        j                  ¬	«      }|€Œmt!        j"                  d
|j%                  d«      t         j&                  ¬«      }|€Œ¥||j)                  d«      fc S  t+        d| › �«      ‚)NÚEXEÚTRITON_Ú_PATHÚ Úthird_partyÚcudaÚbinz	--version)Ústderrz.*release (\d+\.\d+).*zutf-8)Úflagsé   zCannot find )Ú	sysconfigÚget_config_varÚosÚpathÚjoinÚdirnameÚ__file__ÚpardirÚenvironÚgetÚupperÚexistsÚisfileÚ
subprocessÚcheck_outputÚSTDOUTÚreÚsearchÚdecodeÚ	MULTILINEÚgroupÚRuntimeError)r!   Úbase_dirÚpathsr0   ÚresultÚversions         r   Ú_path_to_binaryzBaseBackend._path_to_binary   s"  € à”)×*Ñ*¨5Ó1Ñ1ˆÜ—7‘7—<‘<¤§¡§¡´Ó 9¼2¿9¹9ÓEˆä�J‰J�N‰N˜W V§\¡\£^Ð$4°EÐ:¸BÓ?Ü�G‰G�L‰L˜ =°&¸%ÀÓHð
ˆð ò 	6ˆDÜ�w‰w�~‰~˜dÕ#¬¯©¯©°tÕ(<Ü#×0Ñ0°$¸Ð1DÌZ×M^ÑM^Ô_�ØÑ%Ü Ÿi™iÐ(AÀ6Ç=Á=ÐQXÓCYÔac×amÑamÔn�GØÑ*Ø# W§]¡]°1Ó%5Ð5Ò5ð	6ô ˜\¨&¨Ð2Ó3Ð3r   c                 ó   — t         ‚r   ©ÚNotImplementedError)r   s    r   r   zBaseBackend.supports_target+   ó
   € ô "Ð!r   c                 ó   — t         ‚)z,Returns a unique identifier for this backendrI   ©r   s    r   ÚhashzBaseBackend.hash0   rK   r   Úoptionsc                 ó   — t         ‚)zÇ
        Converts an `options` dictionary into an arbitrary object and returns it.
        This function may contain target-specific heuristics and check the legality of the provided options
        rI   )r   rO   s     r   Úparse_optionszBaseBackend.parse_options5   s
   € ô "Ð!r   Ústagesc                 ó   — t         ‚)a×  
        Populates `stages` dictionary with entries of the form:
        ir_name [str] => Function[(src: str, metadata: dict) -> str|bytes]
        The value of each entry may populate a `metadata` dictionary.
        Stages will be run sequentially (in inseriton order) and can communicate using `metadata`.
        All stages are expected to return a `str` object, except for the last stage which returns
        a `bytes` object for execution by the launcher.
        rI   )r   rR   rO   s      r   Ú
add_stageszBaseBackend.add_stages=   s
   € ô "Ð!r   c                 ó   — t         ‚)zK
        Load additional MLIR dialects into the provided `context`
        rI   )r   Úcontexts     r   Úload_dialectszBaseBackend.load_dialectsI   ó
   € ô
 "Ð!r   c                 ó   — t         ‚)z\
        Return a map of interface modules to their device-specific implementations
        rI   rM   s    r   Úget_module_mapzBaseBackend.get_module_mapP   rX   r   c                 óF   — t        | t        «      sJ ‚g }d| v r|ddggz  }|S )NÚDztt.divisibilityé   )Ú
isinstancer   )ÚdescÚrets     r   Ú
parse_attrzBaseBackend.parse_attrW   s6   € ä˜$¤Ô$Ð$Ð$ØˆØ�$‰;ØÐ&¨Ð+Ð,Ñ,ˆCØˆ
r   c                 ó    — |dk(  r| dz  dk(  r|j                  dd«      ry|dk(  r)| j                  «       dz  dk(  r|j                  dd«      ryy)	zX
        Return a string unique to each possible specialization of the argument
        r   r]   r   ÚalignFr\   Útensorr&   )r6   Údata_ptr)ÚargÚtyÚkwargss      r   Úget_arg_specializationz"BaseBackend.get_arg_specialization_   sQ   € ð
 �Š;˜3 ™8 qš=¨V¯Z©Z¸ÀÔ-GØØ�Š>˜cŸl™l›n¨rÑ1°QÒ6¸6¿:¹:ÀgÈuÔ;UØØr   )r   r   r   r   r    Ústaticmethodr   rG   Úclassmethodr   r   rN   ÚdictÚobjectrQ   rT   rW   r   r   rZ   ra   ri   r   r   r   r   r      s  „ ð,˜yð ,¨Tó ,ð ð4 ò 4ó ð4ð  Øð" 	ò "ó ó ð"ð ð"�cò "ó ð"ð ð" Tð "¨fò "ó ð"ð ð	" ð 	"°ð 	"¸4ò 	"ó ð	"ð ñ"ó ð"ð ð"  S¨* _Ñ 5ò "ó ð"ð ñó ðð ñó ñr   r   )Ú	metaclass)r/   r=   r:   r-   Úabcr   r   Údataclassesr   Útypingr   r   Útypesr   rm   r   r   r   r   r   ú<module>rs      sK   ðÛ 	Û 	Û Û ß 'Ý !ß Ý ñ �$Ôô�ó ó ðôT˜Gö Tr   