ó
    …~inC  ã            
      óf  • % S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	J
r
  S SKJr  S SKJrJrJrJrJrJrJrJrJrJrJrJr  S SKJrJr  \(       a  SSKJrJr  SS	K J!r!J"r"  SS
K#J$r$J%r%J&r&   " S S5      r'\'" 5       r(Sr)S\*S'   SWS jr+SXS jr,\" S5      r-\" S5      r.\/" 5       r0 " S S\\-\.4   5      r1 " S S\1\2\24   5      r3 " S S\1\2\24   5      r4 " S S\1\5\54   5      r6 " S S\1\7\74   5      r8\" S5      r9 " S S \\9   \1\\\9      \\\9      4   5      r:\
 " S! S"5      5       r; " S# S$\1\2\;4   5      r< " S% S&\1\\2   \\2   4   5      r= " S' S(\15      r>\
" SS)9 " S* S+5      5       r? " S, S-\5      r@\" S.S/S09rA " S1 S/5      rB " S2 S3\5      rC " S4 S5\B5      rD " S6 S7\B5      rES8\*S9'    " S: S8\B5      rF " S; S<\B5      rG " S= S>\B5      rH " S? S@\5      rI " SA SB\5      rJ\" SC\S09rK " SD SE\\K   5      rL\M\\2\74      rN " SF SG\5      rO " SH SI\5      rP " SJ SK\5      rQ " SL SM\B5      rR " SN SO\B5      rS " SP SQ\B5      rT " SR SS\B5      rU " ST SU\B5      rV\D" 5       rW\E" 5       rX\F" 5       rY\G" 5       rZ\H" 5       r[\R" 5       r\\S" 5       r]\T" 5       r^\U" 5       r_\V" 5       r`SV rag)Yé    )ÚannotationsN)Ú	dataclass)Úcontextmanager)ÚcastÚAnyÚCallableÚ	GeneratorÚGenericÚOptionalÚProtocolÚTypeÚTypeVarÚ	TypedDictÚTYPE_CHECKINGÚUnion)ÚgetenvÚgetenv_boolé   )ÚCacheManagerÚRemoteCacheBackend)ÚJitFunctionInfoÚKernelParam)Ú	ASTSourceÚLazyDictÚIRSourcec                  ó   • \ rS rSrSrg)ÚEnvé   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    ÚI/home/mande/repo/quber/.venv/lib/python3.13/site-packages/triton/knobs.pyr   r      s   † Úr%   r   TÚboolÚpropagate_envc                ó–   • [         (       d  g Ub  U[        R                  U '   g U [        R                  ;   a  [        R                  U 	 g g ©N)r(   ÚosÚenviron)ÚkeyÚvalues     r&   Úsetenvr/       s9   € ßŠ=ØàÑØŒ�
‰
�3ŠØ	”—
‘
Ó	Ü�J‰J�s‰Oð 
r%   c                ó�   • U c  g[        U 5      nU[        L a  U (       a  S4$ S4$ U[        L a  U 4$ U[        L a  [        U 5      4$ g )Nr*   Ú1Ú0)Útyper'   ÚstrÚint)ÚvalÚts     r&   Útoenvr8   *   sQ   € Ø
�{ØäˆS‹	€AØŒD‚yÞ�Ð&Ð& Ð&Ð&àŒC‚xØˆwˆàŒC‚xÜ�C“ˆ|Ðàr%   ÚSetTypeÚGetTypec                  óZ   • \ rS rSrSS jrSS jrSS jrSS jrSS jrSS jr	SS jr
S	rg
)Úenv_baseéC   c                ó   • Xl         g r*   )r-   )Úselfr-   s     r&   Ú__init__Úenv_base.__init__E   s   € Ø�r%   c                ó   • X l         g r*   )Úname)r?   ÚobjclassrC   s      r&   Ú__set_name__Úenv_base.__set_name__H   s   € Ø�	r%   c                óª   • UR                   R                  U R                  [        5      nU[        L a  U R                  5       $ U R	                  U5      $ r*   )Ú__dict__ÚgetrC   Ú_NOTHINGÚ	transform)r?   ÚobjrD   Úpy_vals       r&   Ú__get__Úenv_base.__get__K   s?   € Ø—‘×!Ñ! $§)¡)¬XÓ6ˆØ”XÒØ—8‘8“:ÐØ�~‰~˜fÓ%Ð%r%   c                ó   • [        5       er*   )ÚNotImplementedError©r?   s    r&   rI   Úenv_base.getQ   s   € Ü!Ó#Ð#r%   c                ó  • [        U[        5      (       a'  UR                  R                  U R                  S 5        g X!R                  U R                  '   [        U5      =n(       a  [        U R                  US   5        g g )Nr   )Ú
isinstancer   rH   ÚpoprC   r8   r/   r-   )r?   rL   r.   Úenv_vals       r&   Ú__set__Úenv_base.__set__T   s]   € Ü�eœS×!Ñ!Ø�L‰L×Ñ˜TŸY™Y¨Õ-à&+�L‰L˜Ÿ™Ñ#Ü ›,Ð&ˆwÕ&Ü�t—x‘x ¨¡Õ,ð 'r%   c                óP   • UR                   R                  U R                  S 5        g r*   )rH   rV   rC   )r?   rL   s     r&   Ú
__delete__Úenv_base.__delete__\   s   € Ø�‰×Ñ˜Ÿ™ DÕ)r%   c                ó"   • [        [        U5      $ r*   )r   r:   )r?   r6   s     r&   rK   Úenv_base.transform_   s   € ô ”G˜SÓ!Ð!r%   )r-   rC   N)r-   r4   ÚreturnÚNone)rD   zType[object]rC   r4   r_   r`   )rL   úOptional[object]rD   zOptional[Type[object]]r_   r:   )r_   r:   )rL   Úobjectr.   zUnion[SetType, Env]r_   r`   )rL   rb   r_   r`   )r6   r9   r_   r:   )r    r!   r"   r#   r@   rE   rN   rI   rX   r[   rK   r$   r   r%   r&   r<   r<   C   s%   † ôôô&ô$ô-ô*÷"r%   r<   c                  ó6   ^ • \ rS rSrSU 4S jjrSS jrSrU =r$ )Úenv_strée   c                ó0   >• [         TU ]  U5        X l        g r*   ©Úsuperr@   Údefault©r?   r-   ri   Ú	__class__s      €r&   r@   Úenv_str.__init__g   ó   ø€ Ü‰Ñ˜ÔØ�r%   c                óB   • [        U R                  U R                  5      $ r*   )r   r-   ri   rR   s    r&   rI   Úenv_str.getk   s   € Ü�d—h‘h §¡Ó-Ð-r%   ©ri   )r-   r4   ri   r4   ©r_   r4   ©r    r!   r"   r#   r@   rI   r$   Ú__classcell__©rk   s   @r&   rd   rd   e   s   ø† ÷÷.ò .r%   rd   c                  ó6   ^ • \ rS rSrSU 4S jjrSS jrSrU =r$ )Úenv_str_callable_defaultéo   c                ó0   >• [         TU ]  U5        X l        g r*   )rh   r@   Údefault_factory)r?   r-   ry   rk   s      €r&   r@   Ú!env_str_callable_default.__init__q   s   ø€ Ü‰Ñ˜ÔØ.Õr%   c                óV   • [        U R                  5      nUc  U R                  5       $ U$ r*   )r   r-   ry   )r?   rW   s     r&   rI   Úenv_str_callable_default.getu   s)   € Ü˜Ÿ™Ó"ˆØ‰?Ø×'Ñ'Ó)Ð)Øˆr%   )ry   )r-   r4   ry   zCallable[[], str]rq   rr   rt   s   @r&   rv   rv   o   s   ø† ÷/÷ò r%   rv   c                  ó:   ^ • \ rS rSrSSU 4S jjjrSS jrSrU =r$ )Úenv_boolé|   c                ó0   >• [         TU ]  U5        X l        g r*   rg   rj   s      €r&   r@   Úenv_bool.__init__~   rm   r%   c                óB   • [        U R                  U R                  5      $ r*   )r   r-   ri   rR   s    r&   rI   Úenv_bool.get‚   s   € Ü˜4Ÿ8™8 T§\¡\Ó2Ð2r%   rp   ©F)r-   r4   ri   r'   r_   r`   )r_   r'   rr   rt   s   @r&   r~   r~   |   s   ø† ÷ñ ÷3ò 3r%   r~   c                  ó:   ^ • \ rS rSrSSU 4S jjjrSS jrSrU =r$ )Úenv_inté†   c                ó0   >• [         TU ]  U5        X l        g r*   rg   rj   s      €r&   r@   Úenv_int.__init__ˆ   rm   r%   c                óÀ   • [        U R                  5      nUc  U R                  $  [        U5      $ ! [         a"  n[        SU R                   SU S35      UeS nAff = f)NzUnable to use Ú=z: expected int)r   r-   ri   r5   Ú
ValueErrorÚRuntimeError)r?   r6   Úexcs      r&   rI   Úenv_int.getŒ   sa   € Ü�T—X‘XÓˆØ‰;Ø—<‘<Ðð	YÜ�s“8ˆOøÜó 	YÜ °·±¨z¸¸3¸%¸~ÐNÓOÐUXÐXûð	Yús   ¦
1 ±
A»AÁArp   )r   )r-   r4   ri   r5   r_   r`   ©r_   r5   rr   rt   s   @r&   r†   r†   †   s   ø† ÷ñ ÷Yò Yr%   r†   Ú	ClassTypec                  ó6   ^ • \ rS rSrSU 4S jjrSS jrSrU =r$ )Ú	env_classé™   c                ó0   >• [         TU ]  U5        X l        g r*   )rh   r@   r3   )r?   r-   r3   rk   s      €r&   r@   Úenv_class.__init__›   s   ø€ Ü‰Ñ˜Ôà�	r%   c           	     óÌ  ^ • [        T R                  5      nUc  g UR                  SS5      n[        U5      S:w  a  [	        ST R                   SU S35      e[        [        R                  " US   5      US   5      n[        U 4S jUR                  5        5       5      (       d)  [	        S	U S
T R                   ST R                   S35      e[        [        [           U5      $ )NÚ:r   é   zUnable to read z: 'z ' isn't of the form MODULE:CLASSr   c              3  óT   >#   • U  H  oR                   TR                  :H  v •  M     g 7fr*   )r    r3   )Ú.0Úcr?   s     €r&   Ú	<genexpr>Ú env_class.get.<locals>.<genexpr>©   s   øé € Ð?²Y°—J‘J $§)¡)Ö+²Yùs   ƒ%(zUnable to use 'z' from z: not of type 'Ú')r   r-   ÚsplitÚlenr�   ÚgetattrÚ	importlibÚimport_moduleÚanyÚmror3   r   r   r‘   )r?   r6   ÚcompsÚclss   `   r&   rI   Ú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%   )r3   )r-   r4   r3   r4   r_   r`   )r_   zOptional[Type[ClassType]]rr   rt   s   @r&   r“   r“   ™   s   ø† ÷÷
*ò *r%   r“   c                  ó\   • \ rS rSr% S\S'   S\S'   \\R                  SS j5       5       rSr	g)	Ú
NvidiaToolé¯   r4   ÚpathÚversionc                ó0  •  [         R                  " U S/[         R                  S9n[        R                  " SUR                  S5      [        R                  S9nUc  g [        XR                  S5      5      $ ! [         R                  [        4 a     g f = f)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_pathÚNvidiaTool.from_path´   s�   € ð	Ü×,Ò,¨d°KÐ-@Ì×IZÑIZÑ[ˆFÜ—i’iÐ 9¸6¿=¹=ÈÓ;QÔY[×YeÑYeÑfˆGØ‰ØÜ˜d§M¡M°!Ó$4Ó5Ð5øÜ×-Ñ-Ô/@ÐAó 	Ùð	ús   ‚AA8 ÁA8 Á8BÂBr   N)r­   r4   r_   zOptional[NvidiaTool])
r    r!   r"   r#   Ú__annotations__ÚstaticmethodÚ	functoolsÚ	lru_cacher½   r$   r   r%   r&   r«   r«   ¯   s,   ‡ à
ƒIØƒLàØ×Ñóó ó ór%   r«   c                  ó@   ^ • \ rS rSrSU 4S jjrSS jrSS jrSrU =r$ )	Úenv_nvidia_tooléÁ   c                ó8  >• U[         R                  " S5      -  nXl        [        R                  R                  [        R                  R                  [        5      SSSU5      U l        [        TU ])  SUR                  5       R                  SS5       S35        g )	NÚEXEÚbackendsÚnvidiaÚbinÚTRITON_Ú-Ú_Ú_PATH)Ú	sysconfigÚget_config_varÚbinaryr+   r­   ÚjoinÚdirnameÚ__file__Údefault_pathrh   r@   ÚupperÚreplace)r?   rÑ   rk   s     €r&   r@   Úenv_nvidia_tool.__init__Ã   st   ø€ Ø”)×*Ò*¨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   • U R                  [        U R                  5      5      $ r*   )rK   r   r-   rR   s    r&   rI   Úenv_nvidia_tool.getÊ   s   € Ø�~‰~œf T§X¡XÓ.Ó/Ð/r%   c                óÀ   • Ub  XR                   /nOU R                   /nU H#  n[        R                  U5      =n(       d  M!  Us  $    [        SU R                   35      e)NzCannot find )rÕ   r«   r½   r�   rÑ   )r?   r­   ÚpathsÚtools       r&   rK   Úenv_nvidia_tool.transformÍ   sc   € ð ÑØ×,Ñ,Ð-‰Eà×&Ñ&Ð'ˆEãˆDÜ!×+Ñ+¨DÓ1Ð1ˆt×1Ø’ñ ô ˜\¨$¯+©+¨Ð7Ó8Ð8r%   )rÑ   rÕ   )rÑ   r4   r_   r`   )r_   r«   )r­   r4   r_   r«   )	r    r!   r"   r#   r@   rI   rK   r$   rs   rt   s   @r&   rÄ   rÄ   Á   s   ø† ÷Lô0÷9ò 9r%   rÄ   c                  ó   • \ rS rSrSS jrSrg)Úenv_opt_stréÝ   c                ó,   • [        U R                  5      $ r*   )r   r-   rR   s    r&   rI   Úenv_opt_str.getß   s   € Ü�d—h‘hÓÐr%   r   N©r_   úOptional[str]©r    r!   r"   r#   rI   r$   r   r%   r&   rà   rà   Ý   s   † ÷ r%   rà   c                  ó   • \ rS rSrSS jrSrg)Úenv_opt_booléã   c                ó.   • [        U R                  S 5      $ r*   )r   r-   rR   s    r&   rI   Úenv_opt_bool.getå   s   € Ü˜4Ÿ8™8 TÓ*Ð*r%   r   Nrä   ræ   r   r%   r&   rè   rè   ã   s   † ÷+r%   rè   )Úfrozenc                  ó`   • \ rS rSr% SrS\S'   S\S'   S\S'   \SS j5       r\SS	 j5       rS
r	g)ÚCompileTimeséé   za
Model holding timing information for an invocation of the compiler.

All times in microseconds.
r5   Úir_initializationzlist[tuple[str, int]]Úlowering_stagesÚstore_resultsc                ó:   • [        S U R                   5       5      $ )Nc              3  ó*   #   • U  H	  oS    v •  M     g7f)r   Nr   )r›   Ústages     r&   r�   Ú.CompileTimes.total_lowering.<locals>.<genexpr>ý   s   é € Ð?Ò*> ˜!–HÒ*>ùs   ‚)Úsumrñ   rR   s    r&   Útotal_loweringÚCompileTimes.total_loweringû   s   € äÑ?¨$×*>Ò*>Ó?Ó@Ð@r%   c                óN   • U R                   U R                  -   U R                  -   $ r*   )rð   rø   rò   rR   s    r&   ÚtotalÚCompileTimes.totalÿ   s$   € à×%Ñ%¨×(;Ñ(;Ñ;¸d×>PÑ>PÑPÐPr%   r   Nr�   )
r    r!   r"   r#   Ú__doc__r¿   Úpropertyrø   rû   r$   r   r%   r&   rî   rî   é   sI   ‡ ñð Óð +Ó*ð ÓàóAó ðAð óQó óQr%   rî   c                  ó*   • \ rS rSr      SS jrSrg)ÚCompilationListeneri  c               ó   • g r*   r   )r?   ÚsrcÚmetadataÚmetadata_groupÚtimesÚ	cache_hits         r&   Ú__call__ÚCompilationListener.__call__  ó   € àr%   r   N)r  zUnion[ASTSource, IRSource]r  údict[str, Any]r  údict[str, str]r  rî   r  r'   r_   r`   ©r    r!   r"   r#   r  r$   r   r%   r&   r   r     s   † ðØ$ðØ15ðØ:>÷r%   r   Ú
knobs_typeÚ
base_knobs)Úboundc                  ód   • \ rS rSr\S	S j5       r\S
S j5       rSS jrSS jr\	SS j5       r
Srg)r  i  c                ó¬   • [        U 5      R                  R                  5        VVs0 s H  u  p[        U[        5      (       d  M  X_M      snn$ s  snnf r*   )r3   rH   ÚitemsrU   r<   )r?   ÚkÚvs      r&   Úknob_descriptorsÚbase_knobs.knob_descriptors  sN   € ô
 ˜T›
×+Ñ+×1Ñ1Ô3ô
ò 4‘�Ü˜!œX×&ó ˆAŠDá3ò
ð 	
ùó 
s   §AÁAc                ót   • U R                   R                  5        Vs0 s H  o[        X5      _M     sn$ s  snf r*   )r  Úkeysr¢   )r?   r  s     r&   ÚknobsÚbase_knobs.knobs  s3   € à-1×-BÑ-B×-GÑ-GÔ-IÓJÒ-I¨”7˜4Ó#Ò#Ñ-IÑJÐJùÒJs   �5c                óp   • [        U 5      " 5       nUR                  R                  U R                  5        U$ r*   )r3   rH   Úupdate)r?   Úress     r&   ÚcopyÚbase_knobs.copy  s(   € Ü�4Œj‹lˆØ�‰×Ñ˜DŸM™MÔ*Øˆ
r%   c                ó^   • U R                   R                  5        H  n[        X5        M     U $ r*   )r  r  Údelattr)r?   Úknobs     r&   ÚresetÚbase_knobs.reset"  s(   € Ø×)Ñ)×.Ñ.Ö0ˆDÜ�DÖñ 1àˆr%   c              #  ó  #   •  U R                   R                  5        Vs0 s H"  oR                  [        UR                  5      _M$     nn[	        U R
                  5      nS v •  U R
                  R                  5         U R
                  R                  U5        UR                  5        HD  u  pEUb  U[        R                  U'   M  U[        R                  ;   d  M3  [        R                  U	 MF     g s  snf ! U R
                  R                  5         U R
                  R                  W5        WR                  5        HD  u  pEUb  U[        R                  U'   M  U[        R                  ;   d  M3  [        R                  U	 MF     f = f7fr*   )r  Úvaluesr-   r   ÚdictrH   Úclearr  r  r+   r,   )r?   r"  Úinitial_envÚorigr  r  s         r&   ÚscopeÚbase_knobs.scope'  s  é € ð	&ØBF×BWÑBW×B^ÑB^ÔB`ÓaÒB`¸$Ÿ8™8¤V¨D¯H©HÓ%5Ò5ÑB`ˆKÐaÜ˜Ÿ™Ó&ˆDÛà�M‰M×ÑÔ!Ø�M‰M× Ñ  Ô&à#×)Ñ)Ö+‘�Ø‘=Ø$%”B—J‘J˜q“MØœ"Ÿ*™*•_ÜŸ
™
 1šò	 ,ùò bøð �M‰M×ÑÔ!Ø�M‰M× Ñ  Ô&à#×)Ñ)Ö+‘�Ø‘=Ø$%”B—J‘J˜q“MØœ"Ÿ*™*•_ÜŸ
™
 1šò	 ,üs;   ‚F	„C7  )C2Á	C7 Á$A4F	ÃF	Ã2C7 Ã7A5FÅ0FÆF	r   N)r_   zdict[str, env_base])r_   r
  )r?   r  r_   r  )r_   zGenerator[None, None, None])r    r!   r"   r#   rþ   r  r  r  r#  r   r+  r$   r   r%   r&   r  r    sH   † àó
ó ð
ð óKó ðKôô
ð
 ó&ó ó&r%   c                  ó&   • \ rS rSr    SS jrSrg)Ú	BuildImpli8  c               ó   • g r*   r   )r?   rC   r  ÚsrcdirÚlibrary_dirsÚinclude_dirsÚ	librariess          r&   r  ÚBuildImpl.__call__:  r	  r%   r   N)rC   r4   r  r4   r0  r4   r1  ú	list[str]r2  r5  r3  r5  r_   r4   r  r   r%   r&   r.  r.  8  s   † ðØ%ðØ-0÷r%   r.  c                  óŠ   • \ rS rSr% Sr\" S5      rS\S'   \" S5      rS\S'   \" S5      r	S\S	'   S
r
S\S'   \SS j5       rSrg
)Úbuild_knobsi?  z<Configuration controlling how the native compiler is invokedÚCCrà   ÚccÚTRITON_CUDACRT_PATHÚcudacrt_pathÚTRITON_CUDART_PATHÚcudart_pathNzOptional[BuildImpl]Úimplc                óf   • U R                   U R                  4 Vs1 s H	  oc  M  UiM     sn$ s  snf r*   )r;  r=  )r?   r­   s     r&   Úbackend_dirsÚbuild_knobs.backend_dirsH  s-   € à"&×"3Ñ"3°T×5EÑ5EÑ!FÓ[Ò!F˜—Ñ!FÑ[Ð[ùÒ[s   ›.¥.r   )r_   zset[str])r    r!   r"   r#   rý   rà   r9  r¿   r;  r=  r>  rþ   r@  r$   r   r%   r&   r7  r7  ?  sS   ‡ ÙFÙ! $Ó'€BˆÓ'á +Ð,AÓ B€L�+ÓBÙ*Ð+?Ó@€K�Ó@à $€DÐ
Ó$àó\ó ó\r%   r7  c                  ój   • \ rS rSr% \" SS5      rS\S'   \" SS5      rS\S'   \" S	S
5      r	S\S'   Sr
g)Úredis_knobsiM  ÚTRITON_REDIS_KEY_FORMATztriton:{key}:{filename}rd   Ú
key_formatÚTRITON_REDIS_HOSTÚ	localhostÚhostÚTRITON_REDIS_PORTië  r†   Úportr   N)r    r!   r"   r#   rd   rE  r¿   rH  r†   rJ  r$   r   r%   r&   rC  rC  M  s9   ‡ Ù!Ð";Ð=VÓW€J�ÓWÙÐ/°Ó=€Dˆ'Ó=ÙÐ/°Ó6€Dˆ'Ö6r%   rC  Úcache_knobsÚcachec                  óâ   • \ rS rSr% \" S\R                  R                  S5      5      rS\	S'   \
" SS 5      r\
" SS	 5      r\
" S
S 5      r\" SS5      rS\	S'   \" SS5      rS\	S'   SS jrSrg)rK  iV  ÚTRITON_HOMEz~/rd   Úhome_dirÚTRITON_DUMP_DIRc                 ó,   • [         R                  S5      $ )NÚdump©rL  Úget_triton_dirr   r%   r&   Ú<lambda>Úcache_knobs.<lambda>Y  s   € Ä5×CWÑCWÐX^ÔC_r%   ÚTRITON_OVERRIDE_DIRc                 ó,   • [         R                  S5      $ )NÚoverriderS  r   r%   r&   rU  rV  Z  s   € Ì5×K_ÑK_Ð`jÔKkr%   ÚTRITON_CACHE_DIRc                 ó,   • [         R                  S5      $ )NrL  rS  r   r%   r&   rU  rV  [  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   • [         R                  R                  U R                  SU5      $ )Nz.triton)r+   r­   rÒ   rO  )r?   rÓ   s     r&   rT  Úcache_knobs.get_triton_dir`  s   € Ü�w‰w�|‰|˜DŸM™M¨9°gÓ>Ð>r%   r   N)rÓ   r4   r_   r4   )r    r!   r"   r#   rd   r+   r­   Ú
expanduserrO  r¿   rv   Údump_dirÚoverride_dirÚdirr“   r]  r_  rT  r$   r   r%   r&   rK  rK  V  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                  ó`  • \ rS rSr% \" S5      rS\S'   \" S5      rS\S'   \" S5      rS\S'   \" S	5      r	S\S
'   \" S5      r
S\S'   \" S5      rS\S'   \" S5      rS\S'   \" S5      rS\S'   \" S5      rS\S'   \" S5      rS\S'   \" SS5      R%                  5       rS\S'   SrS\S'   Srg) Úcompilation_knobsid  ÚTRITON_KERNEL_OVERRIDEr~   rY  Ú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Ú r4   Úinstrumentation_modeNz Union[CompilationListener, None]Úlistenerr   )r    r!   r"   r#   r~   rY  r¿   rj  rl  rn  rp  rà   rr  rt  rv  rx  rz  rd   rI   r}  r~  r$   r   r%   r&   rg  rg  d  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%   rg  c                  óJ   • \ rS rSr% \" S5      rS\S'   \" S5      rS\S'   Srg)	Úautotuning_knobsiv  ÚTRITON_CACHE_AUTOTUNINGr~   rL  ÚTRITON_PRINT_AUTOTUNINGÚprintr   N)	r    r!   r"   r#   r~   rL  r¿   rƒ  r$   r   r%   r&   r€  r€  v  s"   ‡ ÙÐ8Ó9€Eˆ8Ó9ÙÐ8Ó9€Eˆ8Ö9r%   r€  c                  ó"   • \ rS rSrSrSS jrSrg)Ú
LaunchHooki{  z3Hook invoked before and after kernel launching
    c                ó   • g r*   r   )r?   r  s     r&   r  ÚLaunchHook.__call__  ó   € Ør%   r   N)r  r   r_   r`   ©r    r!   r"   r#   rý   r  r$   r   r%   r&   r…  r…  {  s   † ñ÷r%   r…  c                  ó:   • \ rS rSrSr            SS jrSrg)ÚInitHandleHookiƒ  zuHook invoked around kernel binary/module loading.
module/function can be None for the *start* hook (before loading).
c                ó   • g r*   r   )r?   ÚmoduleÚfunctionrC   r  Úhashs         r&   r  ÚInitHandleHook.__call__ˆ  s   € ð 	r%   r   N)r�  ra   rŽ  zOptional[Callable]rC   r4   r  r  r�  r4   r_   r`   r‰  r   r%   r&   r‹  r‹  ƒ  sF   † ñðà ðð %ðð ð	ð
 'ðð ðð 
÷r%   r‹  ÚFc                  ó@   • \ rS rSrSrS	S
S jjrSS jrSS jrS rSr	g)Ú	HookChaini–  z?A chain of hooks of the same type F to be called in order.
    c                ó   • / U l         Xl        g r*   ©ÚcallsÚreversed)r?   r—  s     r&   r@   ÚHookChain.__init__š  s   € Ø ˆŒ
Ø �r%   c                óZ   • XR                   ;  a  U R                   R                  U5        g g r*   )r–  Úappend©r?   Úfuncs     r&   ÚaddÚHookChain.addž  s#   € Ø—z‘zÓ!Ø�J‰J×Ñ˜dÕ#ð "r%   c                óZ   • XR                   ;   a  U R                   R                  U5        g g r*   )r–  Úremover›  s     r&   r   ÚHookChain.remove¢  s#   € Ø—:‘:ÓØ�J‰J×Ñ˜dÕ#ð r%   c                ó†   • U R                   (       d  U R                  O[        U R                  5       H  nU" U0 UD6  M     g r*   )r—  r–  )r?   ÚargsÚkwargsÚcalls       r&   r  ÚHookChain.__call__¦  s2   € Ø&*§m§m�D—J’J¼À$Ç*Á*Ó9MÒMˆDÙ�$Ð!˜&Ô!ò Nr%   r•  Nr„   )r—  r'   )rœ  r‘  r_   r`   )
r    r!   r"   r#   rý   r@   r�  r   r  r$   r   r%   r&   r“  r“  –  s   † ñö!ô$ô$õ"r%   r“  c                  ó˜   • \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   Srg)ÚJITHookCompileInfoi°  r4   r-   zdict[KernelParam, str]Ú	signaturer5   Údevicer`   Ú	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_warmupr   N)r    r!   r"   r#   r¿   r$   r   r%   r&   r¨  r¨  °  sI   ‡ Ø	ƒHØ%Ó%ØƒKØƒOØƒNØƒMØƒOØÓØ!Ó!Ø,Ó,Ø:Ó:ØÓØ†Or%   r¨  c                  ó&   • \ rS rSr    SS jrSrg)ÚJITHookiÀ  c               ó   • g r*   r   )r?   r-   ÚreprÚfnÚcompileÚis_manual_warmupÚalready_compileds          r&   r  ÚJITHook.__call__Â  r	  r%   r   N)r-   r4   r¸  r4   r¹  r   rº  r¨  r»  r'   r¼  r'   r_   zOptional[bool]r  r   r%   r&   r¶  r¶  À  s   † ðØ#'ðØ,:÷r%   r¶  c                  ó   • \ rS rSrS rSrg)ÚPipelineStagesHookiÇ  c                ó   • g r*   r   )r?   ÚstagesÚoptionsÚlanguageÚ
capabilitys        r&   r  ÚPipelineStagesHook.__call__É  rˆ  r%   r   Nr  r   r%   r&   r¿  r¿  Ç  s   † õr%   r¿  c                  ó  • \ rS rSr% \" S5      rS\S'   \" S5      R                  5       rS\S'   \	" S5      r
S	\S
'   \" 5       rS\S'   \" SS9rS\S'   \" 5       rS\S'   \" SS9rS\S'   SrS\S'   SrS\S'   SrS\S'   Srg)Úruntime_knobsiÍ  ÚTRITON_INTERPRETr~   Ú	interpretÚTRITON_DEBUGr'   ÚdebugÚTRITON_OVERRIDE_ARCHrà   Úoverride_archzHookChain[LaunchHook]Úlaunch_enter_hookT)r—  Úlaunch_exit_hookzHookChain[InitHandleHook]Úkernel_load_start_hookÚkernel_load_end_hookNzOptional[JITHook]Újit_cache_hookÚjit_post_compile_hookzOptional[PipelineStagesHook]Úadd_stages_inspection_hookr   )r    r!   r"   r#   r~   rÉ  r¿   rI   rË  rà   rÍ  r“  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ð )-€NÐ%Ó,ð 04ÐÐ,Ó3ð @DÐÐ <ÖCr%   rÇ  c                  óL   • \ rS rSr% \" S5      rS\S'   \" SS5      rS\S'   S	r	g
)Úlanguage_knobsiã  ÚTRITON_F32_DEFAULTrà   Úfp32_defaultÚTRITON_DEFAULT_FP_FUSIONTr~   Údefault_fp_fusionr   N)
r    r!   r"   r#   rà   rØ  r¿   r~   rÚ  r$   r   r%   r&   rÖ  rÖ  ã  s%   ‡ Ù +Ð,@Ó A€L�+ÓAÙ"*Ð+EÀtÓ"LÐ�xÖLr%   rÖ  c                  ó4  • \ rS rSr% \" S5      rS\S'   \" S5      rS\S'   \" S5      rS\S'   \" S5      r	S\S'   \
" S5      rS	\S
'   \
" S5      rS	\S'   \" S5      rS\S'   \" S5      rS\S'   \
" S5      rS	\S'   \" S5      rS\S'   \" S5      rS\S'   Srg)Únvidia_knobsiè  Ú	cuobjdumprÄ   ÚnvdisasmÚptxaszptxas-blackwellÚptxas_blackwellÚNVPTX_ENABLE_DUMPr~   Ú
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_pathr   N)r    r!   r"   r#   rÄ   rÝ  r¿   rÞ  rß  rà  r~   râ  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                  ó  • \ rS rSr% \" SS5      rS\S'   \" SS5      rS\S'   \" SS	5      rS\S
'   \" S5      r	S\S'   \
" S5      rS\S'   \" S5      rS\S'   \" S5      rS\S'   \" S5      rS\S'   \" S5      rS\S'   Srg)Ú	amd_knobsiø  ÚAMDGCN_USE_BUFFER_OPSTr~   Ú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ÚAMDGCN_SCALARIZE_PACKED_FOPSÚscalarize_packed_fopsr   N)r    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]Ó,^Ð˜\Ó^á'Ð(CÓD€N�HÓDÙ&.Ð/MÓ&NÐ˜8ÖNr%   rð  c                  óÞ   • \ rS rSr% \" SS5      rS\S'   \" S\" \	R                  " \5      R                  R                  5       S-  S-  S	-  S
-  5      5      rS\S'   \" SS5      rS\S'   Srg)Úproton_knobsi	  ÚTRITON_PROTON_DISABLEFr~   ÚdisableÚTRITON_CUPTI_LIB_PATHrÈ   rÉ   ÚlibÚcuptird   Úcupti_lib_dirÚTRITON_ENABLE_NVTXTÚenable_nvtxr   N)r    r!   r"   r#   r~   r  r¿   rd   r4   ÚpathlibÚPathrÔ   ÚparentÚabsoluter
  r  r$   r   r%   r&   r  r  	  ss   ‡ Ù Ð!8¸%Ó@€GˆXÓ@Ù$ØÙˆG�LŠL˜Ó"×)Ñ)×2Ñ2Ó4°zÑAÀHÑLÈuÑTÐW^Ñ^Ó_óa€M�7ó añ %Ð%9¸4Ó@€K�Ö@r%   r  c                 óŽ   • [        S5      R                  5       [        l        [	        SS5      R                  5       [
        l        g )NrÊ  r{  r|  )r~   rI   ÚruntimerË  rd   Úcompilationr}  r   r%   r&   Úrefresh_knobsr    s0   € Ü˜^Ó,×0Ñ0Ó2„G„MÜ'.Ð/LÈbÓ'Q×'UÑ'UÓ'W„KÕ$r%   )r-   r4   r.   rå   r_   r`   )r6   r   r_   z!Union[None, tuple[Optional[str]]])bÚ
__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   Úcompiler.compilerr   r   r   r   Úenvr(   r¿   r/   r8   r9   r:   rb   rJ   r<   r4   rd   rv   r'   r~   r5   r†   r‘   r“   r«   rÄ   rà   rè   rî   r   r  r  r.  r7  rC  rK  rg  r€  r…  r‹  r‘  r“  ÚlistÚ
KernelAttrr¨  r¶  r¿  rÇ  rÖ  rÜ  rð  r  ÚbuildÚredisrL  r  Ú
autotuningr  rÃ  rÉ   ÚamdÚprotonr  r   r%   r&   Ú<module>r%     s%  ðÞ "ã Û Û 	Û 	Û Û Û å !Ý %ß ~× ~× ~Ó ~ç 3æß?ß9ß@Ñ@÷	ñ 	ñ 
ƒ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ô$:�zô :ô
�ô ô�Xô ñ  ˆC�xÑ €ô"�˜‘
ô "ð. �%˜˜S˜‘/Ñ"€
ô˜ô ô ˆhô ô˜ô ôD�Jô Dô,M�Zô Mô
C�:ô Cô O�
ô Oô"A�:ô Añ 	‹€Ù‹€Ù‹€ÙÓ!€ÙÓ€
Ù
‹/€ÙÓ€Ù	‹€Ùƒk€Ù	‹€óXr%   