
    &Th                         S SK r S SKrS SKrS SKrS SKJrJr  S SKJr  S SK	J
r
Jr  S SKJr  \" SS9 " S S	\5      5       r " S
 S\S9rg)    N)ABCMetaabstractmethod)	dataclass)DictUnion)
ModuleTypeT)frozenc                   >    \ rS rSr% \\S'   \\\4   \S'   \\S'   Srg)	GPUTarget   backendarch	warp_size N)	__name__
__module____qualname____firstlineno__str__annotations__r   int__static_attributes__r       P/var/www/auris/envauris/lib/python3.13/site-packages/triton/backends/compiler.pyr   r      s     L
S/Nr   r   c                      \ rS rSrS\SS4S jr\S\4S j5       r\	\
S\4S j5       5       r\
S\4S	 j5       r\
S
\S\4S j5       r\
S\S
\SS4S j5       r\
S 5       r\
S\\\4   4S j5       r\S 5       r\S 5       rSrg)BaseBackend   targetreturnNc                 @    Xl         U R                  U5      (       d   eg N)r   supports_target)selfr   s     r   __init__BaseBackend.__init__   s    ##F++++r   binaryc                 *   U [         R                  " S5      -  n [        R                  R	                  [        R                  R                  [        5      [        R                  5      n[        R                  R                  SU R                  5        S3S5      [        R                  R	                  USSSU 5      /nU H  n[        R                  R                  U5      (       d  M)  [        R                  R                  U5      (       d  MO  [        R                  " US/[        R                  S	9nUc  My  [         R"                  " S
UR%                  S5      [         R&                  S9nUc  M  X5R)                  S5      4s  $    [+        SU  35      e)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pathsr5   resultversions         r   _path_to_binaryBaseBackend._path_to_binary   s!   )**51177<< 9299EJJNNWV\\^$4E:B?GGLL=&%H
 Dww~~d##t(<(<#00$1DZM^M^_% ii(A6==QXCYacamamnG*#]]1%555  \&233r   c                     [         er!   NotImplementedErrorr   s    r   r"   BaseBackend.supports_target+   
     "!r   c                     [         e)z,Returns a unique identifier for this backendrO   r#   s    r   hashBaseBackend.hash0   rS   r   optionsc                     [         e)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
rO   )r#   rX   s     r   parse_optionsBaseBackend.parse_options5   s
     "!r   stagesc                     [         e)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.
rO   )r#   r\   rX   s      r   
add_stagesBaseBackend.add_stages=   s
     "!r   c                     [         e)z;
Load additional MLIR dialects into the provided `context`
rO   )r#   contexts     r   load_dialectsBaseBackend.load_dialectsI   
    
 "!r   c                     [         e)zL
Return a map of interface modules to their device-specific implementations
rO   rU   s    r   get_module_mapBaseBackend.get_module_mapP   rd   r   c                 T    [        U [        5      (       d   e/ nSU ;   a  USS//-  nU$ )NDztt.divisibility   )
isinstancer   )descrets     r   
parse_attrBaseBackend.parse_attrW   s9    $$$$$$;&+,,C
r   c                     US:X  a!  U S-  S:X  a  UR                  SS5      (       a  gUS:X  a/  U R                  5       S-  S:X  a  UR                  SS5      (       a  gg)	zH
Return a string unique to each possible specialization of the argument
r   rj   r   alignFri   tensorr+   )r;   data_ptr)argtykwargss      r   get_arg_specialization"BaseBackend.get_arg_specialization_   sW    
 ;38q=VZZ-G-G>cllnr1Q66::gu;U;Ur   rQ   )r   r   r   r   r   r$   staticmethodr   rL   classmethodr   r"   rV   dictobjectrZ   r^   rb   r   r   rf   rn   rw   r   r   r   r   r   r      s   ,y ,T , 4 4 4  "	 "  " "c " " "T "f " " 	" 	" 	"4 	" 	" " " "S*_ 5 " "    r   r   )	metaclass)r4   rB   r?   r2   abcr   r   dataclassesr   typingr   r   typesr   r|   r   r   r   r   r   <module>r      sK    	 	   ' !   $  TG Tr   