Ë
    �š¾j§L  ã            
      ó�  — U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
 d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZmZ er"ddlmZmZ dd	l m!Z!m"Z"m#Z# dd
l$m%Z% ddl&m'Z'm(Z(m)Z)  G d„ d«      Z* e*«       Z+dZ,de-d<   dZd„Z.d[d„Z/ ed«      Z0 ed«      Z1 e2«       Z3 G d„ dee0e1f   «      Z4 G d„ de4e5e5f   «      Z6 G d„ de4e5e5f   «      Z7 G d„ de4e8e8f   «      Z9 G d„ de4e:e:f   «      Z; ed«      Z< G d „ d!ee<   e4eee<      eee<      f   «      Z=e
 G d"„ d#«      «       Z> G d$„ d%e4e5e>f   «      Z? G d&„ d'e4ee5   ee5   f   «      Z@ G d(„ d)e4«      ZA e
d¬*«       G d+„ d,«      «       ZB G d-„ d.e«      ZC ed/d0¬1«      ZD G d2„ d0«      ZE G d3„ d4e«      ZF G d5„ d6eE«      ZG G d7„ d8eE«      ZHd9e-d:<    G d;„ d9eE«      ZI G d<„ d=eE«      ZJ G d>„ d?e«      ZK G d@„ dAeE«      ZL G dB„ dCe«      ZM G dD„ dEe«      ZN edFe¬1«      ZO G dG„ dHeeO   «      ZPeQee5e:f      ZR G dI„ dJe«      ZS G dK„ dLe«      ZT G dM„ dNe«      ZU G dO„ dPeE«      ZV G dQ„ dReE«      ZW G dS„ dTeE«      ZX G dU„ dVeE«      ZY G dW„ dXeE«      ZZ eG«       Z[ eH«       Z\ eI«       Z] eJ«       Z^ eL«       Z_ eV«       Z` eW«       Za eX«       Zb eY«       Zc eZ«       ZddY„ Zey)\é    )ÚannotationsN)Ú	dataclass)Úcontextmanager)ÚcastÚAnyÚCallableÚ	GeneratorÚGenericÚOptionalÚProtocolÚTypeÚTypeVarÚ	TypedDictÚTYPE_CHECKINGÚUnion)ÚgetenvÚgetenv_boolé   )ÚCacheManagerÚRemoteCacheBackend)ÚJitFunctionInfoÚKernelParamÚJITFunction)ÚConfig)Ú	ASTSourceÚLazyDictÚIRSourcec                  ó   — e Zd Zy)ÚEnvN)Ú__name__Ú
__module__Ú__qualname__© ó    úV/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/triton/knobs.pyr   r      s   „ Ør$   r   TÚboolÚpropagate_envc                ó†   — t         sy |�|t        j                  | <   y | t        j                  v rt        j                  | = y y ©N)r'   ÚosÚenviron)ÚkeyÚvalues     r%   Úsetenvr.   !   s7   € ÝØàÐØŒ�
‰
�3ŠØ	”—
‘
Ñ	Ü�J‰J�s‰Oð 
r$   c                ó~   — | €yt        | «      }|t        u r| rdfS dfS |t        u r| fS |t        u rt        | «      fS y )Nr)   Ú1Ú0)Útyper&   ÚstrÚint)ÚvalÚts     r%   Útoenvr7   +   sQ   € Ø
€{ØäˆS‹	€AØŒD�yÙ�Ð&Ð& Ð&Ð&àŒC�xØˆwˆàŒC�xÜ�C“ˆ|Ðàr$   ÚSetTypeÚGetTypec                  óD   — e Zd Zd	d„Zd
d„Zdd„Zdd„Zdd„Zdd„Zdd„Z	y)Úenv_basec                ó   — || _         y r)   )r,   )Úselfr,   s     r%   Ú__init__zenv_base.__init__F   s	   € Øˆ�r$   c                ó   — || _         y r)   )Úname)r=   Úobjclassr@   s      r%   Ú__set_name__zenv_base.__set_name__I   s	   € Øˆ�	r$   c                ó¨   — |j                   j                  | j                  t        «      }|t        u r| j                  «       S | j	                  |«      S r)   )Ú__dict__Úgetr@   Ú_NOTHINGÚ	transform)r=   ÚobjrA   Úpy_vals       r%   Ú__get__zenv_base.__get__L   s?   € Ø—‘×!Ñ! $§)¡)¬XÓ6ˆØ”XÑØ—8‘8“:ÐØ�~‰~˜fÓ%Ð%r$   c                ó   — t        «       ‚r)   )ÚNotImplementedError©r=   s    r%   rE   zenv_base.getR   s   € Ü!Ó#Ð#r$   c                óò   — t        |t        «      r'|j                  j                  | j                  d «       y ||j                  | j                  <   t        |«      x}rt        | j                  |d   «       y y )Nr   )Ú
isinstancer   rD   Úpopr@   r7   r.   r,   )r=   rH   r-   Úenv_vals       r%   Ú__set__zenv_base.__set__U   s\   € Ü�eœSÔ!Ø�L‰L×Ñ˜TŸY™Y¨Õ-à&+ˆC�L‰L˜Ÿ™Ñ#Ü ›,Ð&ˆwÐ&Ü�t—x‘x ¨¡Õ,ð 'r$   c                óP   — |j                   j                  | j                  d «       y r)   )rD   rP   r@   )r=   rH   s     r%   Ú
__delete__zenv_base.__delete__]   s   € Ø�‰×Ñ˜Ÿ™ DÕ)r$   c                ó"   — t        t        |«      S r)   )r   r9   )r=   r5   s     r%   rG   zenv_base.transform`   s   € ô ”G˜SÓ!Ð!r$   N)r,   r3   ÚreturnÚNone)rA   zType[object]r@   r3   rV   rW   )rH   úOptional[object]rA   zOptional[Type[object]]rV   r9   )rV   r9   )rH   Úobjectr-   zUnion[SetType, Env]rV   rW   )rH   rY   rV   rW   )r5   r8   rV   r9   )
r    r!   r"   r>   rB   rJ   rE   rR   rT   rG   r#   r$   r%   r;   r;   D   s%   „ óóó&ó$ó-ó*ô"r$   r;   c                  ó(   ‡ — e Zd Zdˆ fd„Zdd„Zˆ xZS )Úenv_strc                ó2   •— t         ‰| �  |«       || _        y r)   ©Úsuperr>   Údefault©r=   r,   r_   Ú	__class__s      €r%   r>   zenv_str.__init__h   ó   ø€ Ü‰Ñ˜ÔØˆ�r$   c                óB   — t        | j                  | j                  «      S r)   )r   r,   r_   rM   s    r%   rE   zenv_str.getl   s   € Ü�d—h‘h §¡Ó-Ð-r$   )r,   r3   r_   r3   ©rV   r3   ©r    r!   r"   r>   rE   Ú__classcell__©ra   s   @r%   r[   r[   f   s   ø„ õ÷.r$   r[   c                  ó(   ‡ — e Zd Zdˆ fd„Zdd„Zˆ xZS )Úenv_str_callable_defaultc                ó2   •— t         ‰| �  |«       || _        y r)   )r^   r>   Údefault_factory)r=   r,   rk   ra   s      €r%   r>   z!env_str_callable_default.__init__r   s   ø€ Ü‰Ñ˜ÔØ.ˆÕr$   c                óT   — t        | j                  «      }|€| j                  «       S |S r)   )r   r,   rk   )r=   rQ   s     r%   rE   zenv_str_callable_default.getv   s)   € Ü˜Ÿ™Ó"ˆØˆ?Ø×'Ñ'Ó)Ð)Øˆr$   )r,   r3   rk   zCallable[[], str]rd   re   rg   s   @r%   ri   ri   p   s   ø„ õ/÷r$   ri   c                  ó*   ‡ — e Zd Zddˆ fd„Zdd„Zˆ xZS )Úenv_boolc                ó2   •— t         ‰| �  |«       || _        y r)   r]   r`   s      €r%   r>   zenv_bool.__init__   rb   r$   c                óB   — t        | j                  | j                  «      S r)   )r   r,   r_   rM   s    r%   rE   zenv_bool.getƒ   s   € Ü˜4Ÿ8™8 T§\¡\Ó2Ð2r$   ©F)r,   r3   r_   r&   rV   rW   )rV   r&   re   rg   s   @r%   rn   rn   }   s   ø„ ö÷3r$   rn   c                  ó*   ‡ — e Zd Zddˆ fd„Zdd„Zˆ xZS )Úenv_intc                ó2   •— t         ‰| �  |«       || _        y r)   r]   r`   s      €r%   r>   zenv_int.__init__‰   rb   r$   c                ó¼   — t        | j                  «      }|€| j                  S 	 t        |«      S # t        $ r"}t        d| j                  › d|› d�«      |‚d }~ww xY w)NzUnable to use ú=z: expected int)r   r,   r_   r4   Ú
ValueErrorÚRuntimeError)r=   r5   Úexcs      r%   rE   zenv_int.get�   sa   € Ü�T—X‘XÓˆØˆ;Ø—<‘<Ðð	YÜ�s“8ˆOøÜò 	YÜ °·±¨z¸¸3¸%¸~ÐNÓOÐUXÐXûð	Yús   ¥
0 °	A¹AÁA)r   )r,   r3   r_   r4   rV   rW   ©rV   r4   re   rg   s   @r%   rs   rs   ‡   s   ø„ ö÷Yr$   rs   Ú	ClassTypec                  ó(   ‡ — e Zd Zdˆ fd„Zdd„Zˆ xZS )Ú	env_classc                ó2   •— t         ‰| �  |«       || _        y r)   )r^   r>   r2   )r=   r,   r2   ra   s      €r%   r>   zenv_class.__init__œ   s   ø€ Ü‰Ñ˜Ôàˆ�	r$   c           	     óº  ‡ — t        ‰ j                  «      }|€y |j                  dd«      }t        |«      dk7  rt	        d‰ j                  › d|› d�«      ‚t        t        j                  |d   «      |d   «      }t        ˆ fd„|j                  «       D «       «      s)t	        d	|› d
‰ j                  › d‰ j                  › d�«      ‚t        t        t           |«      S )Nú:r   é   zUnable to read z: 'z ' isn't of the form MODULE:CLASSr   c              3  óP   •K  — | ]  }|j                   ‰j                  k(  –— Œ y ­wr)   )r    r2   )Ú.0Úcr=   s     €r%   ú	<genexpr>z env_class.get.<locals>.<genexpr>ª   s   øè ø€ Ò?°�A—J‘J $§)¡)Õ+Ñ?ùs   ƒ#&zUnable to use 'z' from z: not of type 'ú')r   r,   ÚsplitÚlenrx   ÚgetattrÚ	importlibÚimport_moduleÚanyÚmror2   r   r   r{   )r=   r5   ÚcompsÚclss   `   r%   rE   zenv_class.get¡   sÄ   ø€ Ü�T—X‘XÓˆØˆ;ØØ—	‘	˜#˜qÓ!ˆÜˆu‹:˜Š?Ü °·±°
¸#¸c¸UÐBbÐcÓdÐdÜ”i×-Ñ-¨e°A©hÓ7¸¸q¹ÓBˆäÓ?°S·W±W³YÔ?Ô@Ü °°°W¸T¿X¹X¸JÀoÐVZ×V_ÑV_ÐU`Ð`aÐbÓcÐcä”Dœ‘O SÓ)Ð)r$   )r,   r3   r2   r3   rV   rW   )rV   zOptional[Type[ClassType]]re   rg   s   @r%   r}   r}   š   s   ø„ õ÷
*r$   r}   c                  óR   — e Zd ZU ded<   ded<   eej                  dd„«       «       Zy)Ú
NvidiaToolr3   ÚpathÚversionc                ó6  — 	 t        j                  | dgt         j                  ¬«      }t        j                  d|j                  d«      t        j                  ¬«      }|€y t        | |j                  d«      «      S # t         j                  t        f$ r Y y w xY w)Nz	--version)Ústderrz.*release (\d+\.\d+).*zutf-8)Úflagsr   )Ú
subprocessÚcheck_outputÚSTDOUTÚreÚsearchÚdecodeÚ	MULTILINEr‘   ÚgroupÚCalledProcessErrorÚFileNotFoundError)r’   Úresultr“   s      r%   Ú	from_pathzNvidiaTool.from_pathµ   sƒ   € ð	Ü×,Ñ,¨d°KÐ-@Ì×IZÑIZÔ[ˆFÜ—i‘iÐ 9¸6¿=¹=ÈÓ;QÔY[×YeÑYeÔfˆGØˆØÜ˜d G§M¡M°!Ó$4Ó5Ð5øÜ×-Ñ-Ô/@ÐAò 	Ùð	ús   ‚AA< Á!A< Á<BÂBN)r’   r3   rV   zOptional[NvidiaTool])r    r!   r"   Ú__annotations__ÚstaticmethodÚ	functoolsÚ	lru_cacher¢   r#   r$   r%   r‘   r‘   °   s,   … à
ƒIØƒLàØ×Ñòó ó ñr$   r‘   c                  ó0   ‡ — e Zd Zdˆ fd„Zdd„Zdd„Zˆ xZS )Úenv_nvidia_toolc                ó8  •— |t        j                  d«      z  }|| _        t        j                  j                  t        j                  j                  t        «      ddd|«      | _        t        ‰| �)  d|j                  «       j                  dd«      › d�«       y )	NÚEXEÚbackendsÚnvidiaÚbinÚTRITON_ú-Ú_Ú_PATH)Ú	sysconfigÚget_config_varÚbinaryr*   r’   ÚjoinÚdirnameÚ__file__Údefault_pathr^   r>   ÚupperÚreplace)r=   r´   ra   s     €r%   r>   zenv_nvidia_tool.__init__Ä   sv   ø€ Ø”)×*Ñ*¨5Ó1Ñ1ˆØˆŒÜŸG™GŸL™L¬¯©¯©¼Ó)BÀJÐPXÐZ_ÐagÓhˆÔä‰Ñ˜7 6§<¡<£>×#9Ñ#9¸#¸sÓ#CÐ"DÀEÐJÕKr$   c                óJ   — | j                  t        | j                  «      «      S r)   )rG   r   r,   rM   s    r%   rE   zenv_nvidia_tool.getË   s   € Ø�~‰~œf T§X¡XÓ.Ó/Ð/r$   c                ó²   — |�|| j                   g}n| j                   g}|D ]  }t        j                  |«      x}sŒ|c S  t        d| j                  › �«      ‚)NzCannot find )r¸   r‘   r¢   rx   r´   )r=   r’   ÚpathsÚtools       r%   rG   zenv_nvidia_tool.transformÎ   sj   € ð ÐØ˜4×,Ñ,Ð-‰Eà×&Ñ&Ð'ˆEàò 	ˆDÜ!×+Ñ+¨DÓ1Ð1ˆtÑ1Ø’ð	ô ˜\¨$¯+©+¨Ð7Ó8Ð8r$   )r´   r3   rV   rW   )rV   r‘   )r’   r3   rV   r‘   )r    r!   r"   r>   rE   rG   rf   rg   s   @r%   r¨   r¨   Â   s   ø„ õLó0÷9r$   r¨   c                  ó   — e Zd Zdd„Zy)Úenv_opt_strc                ó,   — t        | j                  «      S r)   )r   r,   rM   s    r%   rE   zenv_opt_str.getà   s   € Ü�d—h‘hÓÐr$   N©rV   úOptional[str]©r    r!   r"   rE   r#   r$   r%   rÀ   rÀ   Þ   s   „ ô r$   rÀ   c                  ó   — e Zd Zdd„Zy)Úenv_opt_boolc                ó.   — t        | j                  d «      S r)   )r   r,   rM   s    r%   rE   zenv_opt_bool.getæ   s   € Ü˜4Ÿ8™8 TÓ*Ð*r$   NrÂ   rÄ   r#   r$   r%   rÆ   rÆ   ä   s   „ ô+r$   rÆ   )Úfrozenc                  óT   — e Zd ZU dZded<   ded<   ded<   ed
d„«       Zed
d„«       Zy	)ÚCompileTimeszm
    Model holding timing information for an invocation of the compiler.

    All times in microseconds.
    r4   Úir_initializationzlist[tuple[str, int]]Úlowering_stagesÚstore_resultsc                ó:   — t        d„ | j                  D «       «      S )Nc              3  ó&   K  — | ]	  }|d    –— Œ y­w)r   Nr#   )rƒ   Ústages     r%   r…   z.CompileTimes.total_lowering.<locals>.<genexpr>þ   s   è ø€ Ò? �E˜!•HÑ?ùs   ‚)ÚsumrÌ   rM   s    r%   Útotal_loweringzCompileTimes.total_loweringü   s   € äÑ?¨$×*>Ñ*>Ô?Ó@Ð@r$   c                óN   — | j                   | j                  z   | j                  z   S r)   )rË   rÒ   rÍ   rM   s    r%   ÚtotalzCompileTimes.total   s$   € à×%Ñ%¨×(;Ñ(;Ñ;¸d×>PÑ>PÑPÐPr$   Nrz   )r    r!   r"   Ú__doc__r£   ÚpropertyrÒ   rÔ   r#   r$   r%   rÊ   rÊ   ê   sI   … ñð Óð +Ó*ð ÓàòAó ðAð òQó ñQr$   rÊ   c                  ó    — e Zd Z	 	 	 	 	 	 dd„Zy)ÚCompilationListenerc                ó   — y r)   r#   )r=   ÚsrcÚmetadataÚmetadata_groupÚtimesÚ	cache_hits         r%   Ú__call__zCompilationListener.__call__  ó   € àr$   N)rÚ   zUnion[ASTSource, IRSource]rÛ   údict[str, Any]rÜ   údict[str, str]rÝ   rÊ   rÞ   r&   rV   rW   ©r    r!   r"   rß   r#   r$   r%   rØ   rØ     s   „ ðØ$ðØ15ðØ:>ôr$   rØ   Ú
knobs_typeÚ
base_knobs)Úboundc                  óR   — e Zd Zedd„«       Zedd„«       Zd	d„Zd	d„Zed
d„«       Z	y)rå   c                óœ   — t        | «      j                  j                  «       D ��ci c]  \  }}t        |t        «      r||“Œ c}}S c c}}w r)   )r2   rD   ÚitemsrO   r;   )r=   ÚkÚvs      r%   Úknob_descriptorszbase_knobs.knob_descriptors  sK   € ô
 ˜T›
×+Ñ+×1Ñ1Ó3÷
ñ ��1Ü˜!œXÔ&ð ˆq‰Dó
ð 	
ùó 
s   §Ac                ór   — | j                   j                  «       D �ci c]  }|t        | |«      “Œ c}S c c}w r)   )rì   Úkeysr‰   )r=   rê   s     r%   Úknobszbase_knobs.knobs  s1   € à-1×-BÑ-B×-GÑ-GÓ-IÖJ¨�”7˜4 Ó#Ñ#ÒJÐJùÒJs   �4c                óp   —  t        | «      «       }|j                  j                  | j                  «       |S r)   )r2   rD   Úupdate)r=   Úress     r%   Úcopyzbase_knobs.copy  s*   € ØŒd�4‹j‹lˆØ�‰×Ñ˜DŸM™MÔ*Øˆ
r$   c                ó\   — | j                   j                  «       D ]  }t        | |«       Œ | S r)   )rì   rî   Údelattr)r=   Úknobs     r%   Úresetzbase_knobs.reset#  s/   € Ø×)Ñ)×.Ñ.Ó0ò 	 ˆDÜ�D˜$Õð	 àˆr$   c              #  óú  K  — 	 | j                   j                  «       D �ci c]"  }|j                  t        |j                  «      “Œ$ }}t	        | j
                  «      }d –— | j
                  j                  «        | j
                  j                  |«       |j                  «       D ]?  \  }}|�|t        j                  |<   Œ|t        j                  v sŒ/t        j                  |= ŒA y c c}w # | j
                  j                  «        | j
                  j                  «       j                  «       D ]?  \  }}|�|t        j                  |<   Œ|t        j                  v sŒ/t        j                  |= ŒA w xY w­wr)   )rì   Úvaluesr,   r   ÚdictrD   Úclearrñ   ré   r*   r+   )r=   rö   Úinitial_envÚorigrê   rë   s         r%   Úscopezbase_knobs.scope(  s%  è ø€ ð	&ØBF×BWÑBW×B^ÑB^ÓB`Öa¸$˜4Ÿ8™8¤V¨D¯H©HÓ%5Ñ5ÐaˆKÐaÜ˜Ÿ™Ó&ˆDÛà�M‰M×ÑÔ!Ø�M‰M× Ñ  Ô&à#×)Ñ)Ó+ò &‘��1Ø�=Ø$%”B—J‘J˜q’MØœ"Ÿ*™*’_ÜŸ
™
 1™ñ	&ùò bøð �M‰M×ÑÔ!Ø�M‰M× Ñ  Ô&à#×)Ñ)Ó+ò &‘��1Ø�=Ø$%”B—J‘J˜q’MØœ"Ÿ*™*’_ÜŸ
™
 1™ñ	&üs;   ‚E;„C/  'C*ÁC/ Á"A3E;ÃE;Ã*C/ Ã/A4E8Å$E8Å8E;N)rV   zdict[str, env_base])rV   rá   )r=   rä   rV   rä   )rV   zGenerator[None, None, None])
r    r!   r"   rÖ   rì   rï   ró   r÷   r   rþ   r#   r$   r%   rå   rå     sH   „ àò
ó ð
ð òKó ðKóó
ð
 ò&ó ñ&r$   c                  ó   — e Zd Z	 	 	 	 dd„Zy)Ú	BuildImplc                ó   — y r)   r#   )r=   r@   rÚ   ÚsrcdirÚlibrary_dirsÚinclude_dirsÚ	librariess          r%   rß   zBuildImpl.__call__;  rà   r$   N)r@   r3   rÚ   r3   r  r3   r  ú	list[str]r  r  r  r  rV   r3   rã   r#   r$   r%   r   r   9  s   „ ðØ%ðØ-0ôr$   r   c                  ó€   — e Zd ZU dZ ed«      Zded<    ed«      Zded<    ed«      Zded<   d	Z	d
ed<   e
dd„«       Zy	)Úbuild_knobsz<Configuration controlling how the native compiler is invokedÚCCrÀ   ÚccÚTRITON_CUDACRT_PATHÚcudacrt_pathÚTRITON_CUDART_PATHÚcudart_pathNzOptional[BuildImpl]Úimplc                ó^   — | j                   | j                  fD �ch c]  }|€Œ|’Œ	 c}S c c}w r)   )r  r  )r=   r’   s     r%   Úbackend_dirszbuild_knobs.backend_dirsI  s,   € à"&×"3Ñ"3°T×5EÑ5EÐ!FÖ[˜È$ÑJZ’Ò[Ð[ùÒ[s   ›*£*)rV   zset[str])r    r!   r"   rÕ   rÀ   r
  r£   r  r  r  rÖ   r  r#   r$   r%   r  r  @  sS   … ÙFÙ! $Ó'€BˆÓ'á +Ð,AÓ B€L�+ÓBÙ*Ð+?Ó@€K�Ó@à $€DÐ
Ó$àò\ó ñ\r$   r  c                  ób   — e Zd ZU  edd«      Zded<    edd«      Zded<    edd	«      Zd
ed<   y)Úredis_knobsÚTRITON_REDIS_KEY_FORMATztriton:{key}:{filename}r[   Ú
key_formatÚTRITON_REDIS_HOSTÚ	localhostÚhostÚTRITON_REDIS_PORTië  rs   ÚportN)	r    r!   r"   r[   r  r£   r  rs   r  r#   r$   r%   r  r  N  s9   … Ù!Ð";Ð=VÓW€J�ÓWÙÐ/°Ó=€Dˆ'Ó=ÙÐ/°Ó6€Dˆ'Ô6r$   r  Úcache_knobsÚcachec                  óØ   — e Zd ZU  edej
                  j                  d«      «      Zded<    e	dd„ «      Z
 e	dd„ «      Z e	d	d
„ «      Z edd«      Zded<    edd«      Zded<   dd„Zy)r  ÚTRITON_HOMEz~/r[   Úhome_dirÚTRITON_DUMP_DIRc                 ó,   — t         j                  d«      S )NÚdump©r  Úget_triton_dirr#   r$   r%   ú<lambda>zcache_knobs.<lambda>Z  s   € Ä5×CWÑCWÐX^ÓC_€ r$   ÚTRITON_OVERRIDE_DIRc                 ó,   — t         j                  d«      S )NÚoverrider#  r#   r$   r%   r%  zcache_knobs.<lambda>[  s   € Ì5×K_ÑK_Ð`jÓKk€ r$   ÚTRITON_CACHE_DIRc                 ó,   — t         j                  d«      S )Nr  r#  r#   r$   r%   r%  zcache_knobs.<lambda>\  s   € ¼u×?SÑ?SÐT[Ó?\€ r$   ÚTRITON_CACHE_MANAGERr   zenv_class[CacheManager]Úmanager_classÚTRITON_REMOTE_CACHE_BACKENDr   zenv_class[RemoteCacheBackend]Úremote_manager_classc                óX   — t         j                  j                  | j                  d|«      S )Nz.triton)r*   r’   rµ   r  )r=   r¶   s     r%   r$  zcache_knobs.get_triton_dira  s   € Ü�w‰w�|‰|˜DŸM™M¨9°gÓ>Ð>r$   N)r¶   r3   rV   r3   )r    r!   r"   r[   r*   r’   Ú
expanduserr  r£   ri   Údump_dirÚoverride_dirÚdirr}   r,  r.  r$  r#   r$   r%   r  r  W  sy   … Ù ¨r¯w©w×/AÑ/AÀ$Ó/GÓH€HˆgÓHá'Ð(9Ñ;_Ó`€HÙ+Ð,AÑCkÓl€LÙ
"Ð#5Ñ7\Ó
]€Cá-6Ð7MÈ~Ó-^€MÐ*Ó^Ù:CÐDaÐcwÓ:xÐÐ7Óxô?r$   c                  óX  — e Zd ZU  ed«      Zded<    ed«      Zded<    ed«      Zded<    ed«      Zded	<    ed
«      Z	ded<    e
d«      Zded<    ed«      Zded<    ed«      Zded<    ed«      Zded<    ed«      Zded<    edd«      j#                  «       Zded<   dZded<   y)Úcompilation_knobsÚTRITON_KERNEL_OVERRIDErn   r(  ÚTRITON_KERNEL_DUMPÚdump_irÚLLVM_EXTRACT_DI_LOCAL_VARIABLESÚ"dump_ir_extract_di_local_variablesÚTRITON_STORE_BINARY_ONLYÚstore_binary_onlyÚTRITON_ALWAYS_COMPILEÚalways_compileÚ
USE_IR_LOCrÀ   Ú
use_ir_locÚTRITON_ENABLE_ASANÚenable_asanÚTRITON_DISABLE_LINE_INFOÚdisable_line_infoÚTRITON_FRONT_END_DEBUGGINGÚfront_end_debuggingÚ"TRITON_ALLOW_NON_CONSTEXPR_GLOBALSÚallow_non_constexpr_globalsÚTRITON_INSTRUMENTATION_MODEÚ r3   Úinstrumentation_modeNz Union[CompilationListener, None]Úlistener)r    r!   r"   rn   r(  r£   r8  r:  r<  r>  rÀ   r@  rB  rD  rF  rH  r[   rE   rK  rL  r#   r$   r%   r5  r5  e  sÏ   … Ù!Ð":Ó;€HˆhÓ;Ù Ð!5Ó6€GˆXÓ6Ù3;Ð<]Ó3^Ð&¨Ó^Ù"*Ð+EÓ"FÐ�xÓFÙ'Ð(?Ó@€N�HÓ@á)¨,Ó7€J�Ó7Ù$Ð%9Ó:€K�Ó:Ù"*Ð+EÓ"FÐ�xÓFÙ$,Ð-IÓ$JÐ˜ÓJÙ,4Ð5YÓ,ZÐ ÓZñ !(Ð(EÀrÓ J× NÑ NÓ PÐ˜#ÓPØ15€HÐ.Ô5r$   r5  c                  ó    — e Zd Z	 	 	 	 	 	 dd„Zy)ÚAutotuneListenerc                ó   — y r)   r#   )r=   Úfnr,   Úbest_configÚconfigs_timingsÚdurationrÞ   s          r%   rß   zAutotuneListener.__call__y  rà   r$   N)rP  r   r,   ÚtuplerQ  r   rR  zdict[Config, list[float]]rS  zOptional[float]rÞ   r&   rV   rW   rã   r#   r$   r%   rN  rN  w  s   „ ðØ*ðØ7;ðØ@Dôr$   rN  c                  óP   — e Zd ZU  ed«      Zded<    ed«      Zded<   dZded<   y)	Úautotuning_knobsÚTRITON_CACHE_AUTOTUNINGrn   r  ÚTRITON_PRINT_AUTOTUNINGÚprintNzUnion[AutotuneListener, None]rL  )r    r!   r"   rn   r  r£   rY  rL  r#   r$   r%   rV  rV  ~  s-   … ÙÐ8Ó9€Eˆ8Ó9ÙÐ8Ó9€Eˆ8Ó9Ø.2€HÐ+Ô2r$   rV  c                  ó   — e Zd ZdZdd„Zy)Ú
LaunchHookz3Hook invoked before and after kernel launching
    c                 ó   — y r)   r#   )r=   rÛ   s     r%   rß   zLaunchHook.__call__ˆ  ó   € Ør$   N)rÛ   r   rV   rW   ©r    r!   r"   rÕ   rß   r#   r$   r%   r[  r[  „  s   „ ñôr$   r[  c                  ó0   — e Zd ZdZ	 	 	 	 	 	 	 	 	 	 	 	 dd„Zy)ÚInitHandleHookz}Hook invoked around kernel binary/module loading.
    module/function can be None for the *start* hook (before loading).
    c                 ó   — y r)   r#   )r=   ÚmoduleÚfunctionr@   rÜ   Úhashs         r%   rß   zInitHandleHook.__call__‘  s   € ð 	r$   N)rb  rX   rc  zOptional[Callable]r@   r3   rÜ   râ   rd  r3   rV   rW   r^  r#   r$   r%   r`  r`  Œ  sF   „ ñðà ðð %ðð ð	ð
 'ðð ðð 
ôr$   r`  ÚFc                  ó0   — e Zd ZdZddd„Zd	d„Zd	d„Zd„ Zy)
Ú	HookChainz?A chain of hooks of the same type F to be called in order.
    c                ó    — g | _         || _        y r)   )ÚcallsÚreversed)r=   rj  s     r%   r>   zHookChain.__init__£  s   € Ø ˆŒ
Ø ˆ�r$   c                óX   — || j                   vr| j                   j                  |«       y y r)   )ri  Úappend©r=   Úfuncs     r%   ÚaddzHookChain.add§  s%   € Ø�t—z‘zÑ!Ø�J‰J×Ñ˜dÕ#ð "r$   c                óX   — || j                   v r| j                   j                  |«       y y r)   )ri  Úremoverm  s     r%   rq  zHookChain.remove«  s%   € Ø�4—:‘:ÑØ�J‰J×Ñ˜dÕ#ð r$   c                óx   — | j                   s| j                  nt        | j                  «      D ]
  } ||i |¤Ž Œ y r)   )rj  ri  )r=   ÚargsÚkwargsÚcalls       r%   rß   zHookChain.__call__¯  s3   € Ø&*§m¢m�D—J’J¼À$Ç*Á*Ó9Mò 	"ˆDÙ�$Ð!˜&Ó!ñ	"r$   Nrq   )rj  r&   )rn  re  rV   rW   )r    r!   r"   rÕ   r>   ro  rq  rß   r#   r$   r%   rg  rg  Ÿ  s   „ ñô!ó$ó$ó"r$   rg  c                  ó�   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   y)ÚJITHookCompileInfor3   r,   zdict[KernelParam, str]Ú	signaturer4   ÚdevicerW   Ú	constantsÚ	num_warpsÚnum_ctasÚ
num_stagesr&   Úenable_fp_fusionÚlaunch_cooperative_gridztuple[tuple[str, str], ...]Úextern_libsz-list[dict[tuple[int, ...], list[KernelAttr]]]ÚconfigsÚspecialization_dataÚ	is_warmupN)r    r!   r"   r£   r#   r$   r%   rw  rw  ¹  sI   … Ø	ƒHØ%Ó%ØƒKØƒOØƒNØƒMØƒOØÓØ!Ó!Ø,Ó,Ø:Ó:ØÓØ„Or$   rw  c                  ó   — e Zd Z	 	 	 	 dd„Zy)ÚJITHookc                ó   — y r)   r#   )r=   r,   ÚreprrP  ÚcompileÚis_manual_warmupÚalready_compileds          r%   rß   zJITHook.__call__Ë  rà   r$   N)r,   r3   r‡  r3   rP  r   rˆ  rw  r‰  r&   rŠ  r&   rV   zOptional[bool]rã   r#   r$   r%   r…  r…  É  s   „ ðØ#'ðØ,:ôr$   r…  c                  ó   — e Zd Zd„ Zy)ÚPipelineStagesHookc                 ó   — y r)   r#   )r=   ÚstagesÚoptionsÚlanguageÚ
capabilitys        r%   rß   zPipelineStagesHook.__call__Ò  r]  r$   Nrã   r#   r$   r%   rŒ  rŒ  Ð  s   „ ór$   rŒ  c                  ó"  — e Zd ZU  ed«      Zded<    ed«      j                  «       Zded<    ed«      Z	ded	<    e
«       Zd
ed<    e
d¬«      Zd
ed<    e
«       Zded<    e
d¬«      Zded<    e
«       Zded<   dZded<   dZded<   dZded<   y)Úruntime_knobsÚTRITON_INTERPRETrn   Ú	interpretÚTRITON_DEBUGr&   ÚdebugÚTRITON_OVERRIDE_ARCHrÀ   Úoverride_archzHookChain[LaunchHook]Úlaunch_enter_hookT)rj  Úlaunch_exit_hookzHookChain[InitHandleHook]Úkernel_load_start_hookÚkernel_load_end_hookÚkernel_unload_hookNzOptional[JITHook]Újit_cache_hookÚjit_post_compile_hookzOptional[PipelineStagesHook]Úadd_stages_inspection_hook)r    r!   r"   rn   r•  r£   rE   r—  rÀ   r™  rg  rš  r›  rœ  r�  rž  rŸ  r   r¡  r#   r$   r%   r“  r“  Ö  sµ   … Ù"Ð#5Ó6€IˆxÓ6ñ ˜>Ó*×.Ñ.Ó0€Eˆ4Ó0Ù!,Ð-CÓ!D€M�;ÓDá/8«{ÐÐ,Ó:Ù.7ÀÔ.FÐÐ+ÓFÙ8A»ÐÐ5ÓCÙ6?ÈÔ6NÐÐ3ÓNñ 5>³KÐÐ1Ó?ð )-€NÐ%Ó,ð 04ÐÐ,Ó3ð @DÐÐ <ÔCr$   r“  c                  óD   — e Zd ZU  ed«      Zded<    edd«      Zded<   y)	Úlanguage_knobsÚTRITON_F32_DEFAULTrÀ   Úfp32_defaultÚTRITON_DEFAULT_FP_FUSIONTrn   Údefault_fp_fusionN)r    r!   r"   rÀ   r¥  r£   rn   r§  r#   r$   r%   r£  r£  ï  s%   … Ù +Ð,@Ó A€L�+ÓAÙ"*Ð+EÀtÓ"LÐ�xÔLr$   r£  c                  ó,  — e Zd ZU  ed«      Zded<    ed«      Zded<    ed«      Zded<    ed«      Zded<    e	d«      Z
ded	<    e	d
«      Zded<    ed«      Zded<    ed«      Zded<    e	d«      Zded<    ed«      Zded<    ed«      Zded<   y)Únvidia_knobsÚ	cuobjdumpr¨   ÚnvdisasmÚptxaszptxas-blackwellÚptxas_blackwellÚNVPTX_ENABLE_DUMPrn   Ú
dump_nvptxÚDISABLE_PTXAS_OPTÚdisable_ptxas_optÚPTXAS_OPTIONSrÀ   Úptxas_optionsÚTRITON_MOCK_PTX_VERSIONÚmock_ptx_versionÚTRITON_DUMP_PTXAS_LOGÚdump_ptxas_logÚTRITON_LIBDEVICE_PATHÚlibdevice_pathÚTRITON_LIBCUDA_PATHÚlibcuda_pathN)r    r!   r"   r¨   rª  r£   r«  r¬  r­  rn   r¯  r±  rÀ   r³  rµ  r·  r¹  r»  r#   r$   r%   r©  r©  ô  s°   … Ù!0°Ó!=€IˆÓ=Ù /°
Ó ;€HˆoÓ;Ù,¨WÓ5€Eˆ?Ó5Ù'6Ð7HÓ'I€O�_ÓIá#Ð$7Ó8€J�Ó8Ù"*Ð+>Ó"?Ð�xÓ?Ù!,¨_Ó!=€M�;Ó=Ù$/Ð0IÓ$JÐ�kÓJÙ'Ð(?Ó@€N�HÓ@á"-Ð.EÓ"F€N�KÓFÙ +Ð,AÓ B€L�+ÔBr$   r©  c                  ó‚  — e Zd ZU  edd«      Zded<    edd«      Zded<    edd«      Zded	<    ed
«      Zded<    e	d«      Z
ded<    ed«      Zded<    ed«      Zded<    ed«      Zded<    ed«      Zded<    ed«      Zded<    ed«      Zded<    e	d«      Zded<    e	d«      Zded<    ed d«      Zded!<   y")#Ú	amd_knobsÚAMDGCN_USE_BUFFER_OPSTrn   Úuse_buffer_opsÚAMDGCN_USE_BUFFER_ATOMICSÚuse_buffer_atomicsÚ!AMDGCN_ANALYZE_SMALL_TENSOR_RANGEFÚ%buffer_ops_analyze_small_tensor_rangeÚAMDGCN_ENABLE_DUMPÚdump_amdgcnÚTRITON_LIBHIP_PATHrÀ   Úlibhip_pathÚTRITON_HIP_USE_BLOCK_PINGPONGrÆ   Úuse_block_pingpongÚ"TRITON_HIP_USE_IN_THREAD_TRANSPOSEÚuse_in_thread_transposeÚTRITON_HIP_USE_ASYNC_COPYÚuse_async_copyÚTRITON_HIP_USE_COEXEC_SCHEDULERÚuse_coexec_schedulerÚ TRITON_HIP_USE_EXPERT_SCHEDULINGÚuse_expert_schedulingÚAMDGCN_SCALARIZE_PACKED_FOPSÚscalarize_packed_fopsÚTRITON_DUMP_MIRÚdump_mirÚTRITON_SWAP_MIRÚswap_mirÚTRITON_SWAP_MIR_ENABLE_MISCHEDÚswap_mir_enable_mischedN)r    r!   r"   rn   r¿  r£   rÁ  rÃ  rÅ  rÀ   rÇ  rÆ   rÉ  rË  rÍ  rÏ  rÑ  rÓ  rÕ  r×  rÙ  r#   r$   r%   r½  r½    sø   … Ù'Ð(?ÀÓF€N�HÓFá#+Ð,GÈÓ#NÐ˜ÓNá6>Ð?bÐdiÓ6jÐ)¨8ÓjÙ$Ð%9Ó:€K�Ó:Ù*Ð+?Ó@€K�Ó@ñ (4Ð4SÓ'TÐ˜ÓTÙ,8Ð9]Ó,^Ð˜\Ó^Ù#/Ð0KÓ#L€N�LÓLÙ)5Ð6WÓ)XÐ˜,ÓXÙ*6Ð7YÓ*ZÐ˜<ÓZá&.Ð/MÓ&NÐ˜8ÓNñ (Ð(9Ó:€HˆkÓ:á'Ð(9Ó:€HˆkÓ:á(0Ð1QÐSXÓ(YÐ˜XÔYr$   r½  c                  óî  — e Zd ZU  edd«      Zded<    ed e ej                  e
«      j                  j                  «       dz  dz  dz  d	z  «      «      Zd
ed<    ed e ej                  e
«      j                  j                  «       dz  dz  dz  dz  «      «      Zd
ed<    ed«      Zded<    ed«      Zded<    edd«      Zded<    edd«      Zded<    edd«      Zded<    edd«      Zded<   y) Úproton_knobsÚTRITON_PROTON_DISABLEFrn   ÚdisableÚTRITON_CUPTI_LIB_PATHr«   r¬   ÚlibÚcuptir[   Úcupti_lib_dirÚTRITON_CUPTI_LIB_BLACKWELL_PATHzcupti-blackwellÚcupti_lib_blackwell_dirÚ#TRITON_ROCPROFILER_SDK_INCLUDE_PATHrÀ   Úrocprofiler_sdk_include_pathÚTRITON_ROCPROFILER_SDK_LIB_PATHÚrocprofiler_sdk_lib_pathÚTRITON_PROFILE_BUFFER_SIZEi   rs   Úprofile_buffer_sizeÚ!TRITON_PROFILE_METRIC_BUFFER_SIZEÚprofile_metric_buffer_sizeÚTRITON_ENABLE_NVTXTÚenable_nvtxÚTRITON_ENABLE_HW_TRACEÚenable_hw_traceN)r    r!   r"   rn   rÝ  r£   r[   r3   ÚpathlibÚPathr·   ÚparentÚabsoluterá  rã  rÀ   rå  rç  rs   ré  rë  rí  rï  r#   r$   r%   rÛ  rÛ    s#  … Ù Ð!8¸%Ó@€GˆXÓ@Ù$ØÙˆLˆG�L‰L˜Ó"×)Ñ)×2Ñ2Ó4°zÑAÀHÑLÈuÑTÐW^Ñ^Ó_óa€M�7ó añ (/Ø)ÙˆLˆG�L‰L˜Ó"×)Ñ)×2Ñ2Ó4°zÑAÀHÑLÈuÑTÐWhÑhÓió(kÐ˜Wó kñ 1<Ð<aÓ0bÐ  +ÓbÙ,7Ð8YÓ,ZÐ˜kÓZÙ#*Ð+GÐIYÓ#ZÐ˜ÓZÙ*1Ð2UÐWgÓ*hÐ ÓhÙ$Ð%9¸4Ó@€K�Ó@ñ$ !)Ð)AÀ5Ó I€O�XÔIr$   rÛ  c                 óŽ   — t        d«      j                  «       t        _        t	        dd«      j                  «       t
        _        y )Nr–  rI  rJ  )rn   rE   Úruntimer—  r[   ÚcompilationrK  r#   r$   r%   Úrefresh_knobsr÷  K  s0   € Ü˜^Ó,×0Ñ0Ó2„G„MÜ'.Ð/LÈbÓ'Q×'UÑ'UÓ'W„KÕ$r$   )r,   r3   r-   rÃ   rV   rW   )r5   r   rV   z!Union[None, tuple[Optional[str]]])fÚ
__future__r   r¥   rŠ   r*   rš   r—   r²   rð  Údataclassesr   Ú
contextlibr   Útypingr   r   r   r	   r
   r   r   r   r   r   r   r   Útriton._C.libtritonr   r   Úruntime.cacher   r   Úruntime.jitr   r   r   Úruntime.autotunerr   Úcompiler.compilerr   r   r   r   Úenvr'   r£   r.   r7   r8   r9   rY   rF   r;   r3   r[   ri   r&   rn   r4   rs   r{   r}   r‘   r¨   rÀ   rÆ   rÊ   rØ   rä   rå   r   r  r  r  r5  rN  rV  r[  r`  re  rg  ÚlistÚ
KernelAttrrw  r…  rŒ  r“  r£  r©  r½  rÛ  ÚbuildÚredisr  rö  Ú
autotuningrõ  r�  r¬   ÚamdÚprotonr÷  r#   r$   r%   ú<module>r	     s8  ðÞ "ã Û Û 	Û 	Û Û Û å !Ý %ß ~× ~× ~Ó ~ç 3áß?ßFÑFÝ)ß@Ñ@÷	ñ 	ñ 
ƒe€à€ˆtÓ óóñ& �)Ó
€Ù
�)Ó
€á‹8€ô"ˆw�w Ð'Ñ(ô "ôD.ˆh�s˜C�xÑ ô .ô
˜x¨¨S¨Ñ1ô 
ô3ˆx˜˜d˜
Ñ#ô 3ôYˆh�s˜C�xÑ ô Yñ  �KÓ €	ô*�˜	Ñ" H¨X°d¸9±oÑ-FÈÐQUÐV_ÑQ`ÑHaÐ-aÑ$bô *ð, ÷ð ó ðô"9�h˜s J˜Ñ/ô 9ô8 �(˜8 C™=¨(°3©-Ð7Ñ8ô  ô+�8ô +ñ �$Ô÷Qð Qó ðQô4˜(ô ñ �\¨Ô6€
÷'&ñ '&ôT�ô ô\�*ô \ô7�*ô 7ð Ó ô?�*ô ?ô6˜
ô 6ô$�xô ô3�zô 3ô�ô ô�Xô ñ  ˆC�xÔ €ô"�˜‘
ô "ð. �%˜˜S˜‘/Ñ"€
ô˜ô ô ˆhô ô˜ô ôD�Jô Dô2M�Zô Mô
C�:ô Cô Z�
ô Zô4J�:ô JñB 	‹€Ù‹€Ù‹€ÙÓ!€ÙÓ€
Ù
‹/€ÙÓ€Ù	‹€Ùƒk€Ù	‹€óXr$   