
    `i<?              
      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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! dd
l"m#Z#m$Z$m%Z%  G d d      Z& e&       Z'dZ(de)d<   dUdZ*dVdZ+ ed      Z, ed      Z- e.       Z/ G d dee,e-f         Z0 G d de0e1e1f         Z2 G d de0e1e1f         Z3 G d de0e4e4f         Z5 G d de0e6e6f         Z7 ed      Z8 G d d ee8   e0eee8      eee8      f         Z9e	 G d! d"             Z: G d# d$e0e1e:f         Z; G d% d&e0ee1   ee1   f         Z< G d' d(e0      Z= e	d)       G d* d+             Z> G d, d-e      Z? ed.d/0      Z@ G d1 d/      ZA G d2 d3e      ZB G d4 d5eA      ZC G d6 d7eA      ZDd8e)d9<    G d: d8eA      ZE G d; d<eA      ZF G d= d>eA      ZG G d? d@e      ZH G dA dBe      ZI edCe0      ZJ G dD dEeeJ         ZKeLee1e6f      ZM G dF dGe      ZN G dH dIe      ZO G dJ dKeA      ZP G dL dMeA      ZQ G dN dOeA      ZR G dP dQeA      ZS G dR dSeA      ZT eC       ZU eD       ZV eE       ZW eF       ZX eG       ZY eP       ZZ eQ       Z[ eR       Z\ eS       Z] eT       Z^dT Z_y)W    )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                      e Zd Zy)EnvN)__name__
__module____qualname__     F/var/www/html/engine/venv/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	

	JJsO 
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#   toenvr5   )   sQ    
{S	ADy&&&&CxwCx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__D   s	    r"   c                    || _         y r'   )name)r;   objclassr>   s      r#   __set_name__zenv_base.__set_name__G   s	    	r"   c                    |j                   j                  | j                  t              }|t        u r| j                         S | j	                  |      S r'   )__dict__getr>   _NOTHING	transform)r;   objr?   py_vals       r#   __get__zenv_base.__get__J   s?    !!$))X6X88:~~f%%r"   c                    t               r'   )NotImplementedErrorr;   s    r#   rC   zenv_base.getP   s    !##r"   c                    t        |t              r'|j                  j                  | j                  d        y ||j                  | j                  <   t        |      x}rt        | j                  |d          y y )Nr   )
isinstancer   rB   popr>   r5   r,   r*   )r;   rF   r+   env_vals       r#   __set__zenv_base.__set__S   s\    eS!LLTYY-&+CLL#,&w&txx, 'r"   c                P    |j                   j                  | j                  d        y r'   )rB   rN   r>   )r;   rF   s     r#   
__delete__zenv_base.__delete__[   s    D)r"   c                "    t        t        |      S r'   )r   r7   )r;   r3   s     r#   rE   zenv_base.transform^   s     GS!!r"   N)r*   r1   returnNone)r?   zType[object]r>   r1   rT   rU   )rF   Optional[object]r?   zOptional[Type[object]]rT   r7   )rT   r7   )rF   objectr+   zUnion[SetType, Env]rT   rU   )rF   rW   rT   rU   )r3   r6   rT   r7   )
r   r   r    r<   r@   rH   rC   rP   rR   rE   r!   r"   r#   r9   r9   B   s%    &$-*"r"   r9   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__f       r"   c                B    t        | j                  | j                        S r'   )r   r*   r]   rK   s    r#   rC   zenv_str.getj   s    dhh--r"   )r*   r1   r]   r1   rT   r1   r   r   r    r<   rC   __classcell__r_   s   @r#   rY   rY   d   s    .r"   rY   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*   ri   r_   s      r#   r<   z!env_str_callable_default.__init__p   s    .r"   c                T    t        | j                        }|| j                         S |S r'   )r   r*   ri   )r;   rO   s     r#   rC   zenv_str_callable_default.gett   s)    "?''))r"   )r*   r1   ri   zCallable[[], str]rb   rc   re   s   @r#   rg   rg   n   s    /r"   rg   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__}   r`   r"   c                B    t        | j                  | j                        S r'   )r   r*   r]   rK   s    r#   rC   zenv_bool.get   s    488T\\22r"   F)r*   r1   r]   r$   rT   rU   )rT   r$   rc   re   s   @r#   rl   rl   {   s    3r"   rl   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__   r`   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]   r2   
ValueErrorRuntimeError)r;   r3   excs      r#   rC   zenv_int.get   sa    TXX;<<	Ys8O 	Yz3%~NOUXX	Ys   
0 	AAA)r   )r*   r1   r]   r2   rT   rU   rT   r2   rc   re   s   @r#   rq   rq      s    Yr"   rq   	ClassTypec                  (     e Zd Zd fdZddZ xZS )	env_classc                2    t         |   |       || _        y r'   )r\   r<   r0   )r;   r*   r0   r_   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   r0   ).0cr;   s     r#   	<genexpr>z env_class.get.<locals>.<genexpr>   s     ?AJJ$))+?s   #&zUnable to use 'z' from z: not of type '')r   r*   splitlenrv   getattr	importlibimport_moduleanymror0   r   r   ry   )r;   r3   compsclss   `   r#   rC   zenv_class.get   s    TXX;		#q!u:?
#cUBbcddi--eAh7qB?SWWY?@WTXXJoVZV_V_U``abccDOS))r"   )r*   r1   r0   r1   rT   rU   )rT   zOptional[Type[ClassType]]rc   re   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)
NvidiaToolr1   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    	,,dK-@IZIZ[Fii 96==;QY[YeYefGdGMM!$455--/@A 		s   AA< !A< <BBN)r   r1   rT   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                   |t        j                  d      z  }|| _        t        j                  j                  t        j                  j                  t              ddd|      | _        t        | )  d|j                          d       y )NEXEbackendsnvidiabinTRITON__PATH)	sysconfigget_config_varbinaryr(   r   joindirname__file__default_pathr\   r<   upper)r;   r   r_   s     r#   r<   zenv_nvidia_tool.__init__   si    )**511GGLL)BJPXZ_agh76<<>"2%89r"   c                J    | j                  t        | j                              S r'   )rE   r   r*   rK   s    r#   rC   zenv_nvidia_tool.get   s    ~~fTXX.//r"   c                    ||| j                   g}n| j                   g}|D ]  }t        j                  |      x}s|c S  t        d| j                         )NzCannot find )r   r   r   rv   r   )r;   r   pathstools       r#   rE   zenv_nvidia_tool.transform   sj     4,,-E&&'E 	D!++D11t1	 \$++788r"   )r   r1   rT   rU   )rT   r   )r   r1   rT   r   )r   r   r    r<   rC   rE   rd   re   s   @r#   r   r      s    :09r"   r   c                      e Zd ZddZy)env_opt_strc                ,    t        | j                        S r'   )r   r*   rK   s    r#   rC   zenv_opt_str.get   s    dhhr"   NrT   Optional[str]r   r   r    rC   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*   rK   s    r#   rC   zenv_opt_bool.get   s    488T**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.
    r2   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   rK   s    r#   total_loweringzCompileTimes.total_lowering   s    ?$*>*>?@@r"   c                N    | j                   | j                  z   | j                  z   S r'   )r   r   r   rK   s    r#   totalzCompileTimes.total   s$    %%(;(;;d>P>PPPr"   Nrx   )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$   rT   rU   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'   )r0   rB   itemsrM   r9   )r;   kvs      r#   knob_descriptorszbase_knobs.knob_descriptors  sK    
 T
++113
 1!X& qD
 	
 
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74##JJJs   4c                p     t        |              }|j                  j                  | j                         |S r'   )r0   rB   update)r;   ress     r#   copyzbase_knobs.copy  s*    d4jlDMM*
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   dictrB   clearr   r   r(   r)   )r;   r   initial_envorigr   r   s         r#   scopezbase_knobs.scope%  s%    	&BFBWBWB^B^B`a$488VDHH%55aKa&DMM!MM  &#))+ &1=$%BJJqM"**_

1	& b MM!MM  &#))+ &1=$%BJJqM"**_

1	&s;   E;C/ 'C*C/ "A3E;E;*C/ /A4E8$E88E;N)rT   zdict[str, env_base])rT   r   )r;   r   rT   r   )rT   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__8  r   r"   N)r>   r1   r   r1   r   r1   r   	list[str]r   r  r   r  rT   r1   r   r!   r"   r#   r   r   6  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_dirsF  s,    "&"3"3T5E5E!F[$JZ[[[s   **)rT   zset[str])r   r   r    r   r   r  r   r  r	  r
  r   r  r!   r"   r#   r  r  =  sS    F!$'B' +,A BL+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}rY   
key_formatTRITON_REDIS_HOST	localhosthostTRITON_REDIS_PORTi  rq   portN)	r   r   r    rY   r  r   r  rq   r  r!   r"   r#   r  r  K  s9    !";=VWJW/=D'=/6D'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~/rY   home_dirTRITON_DUMP_DIRc                 ,    t         j                  d      S )Ndumpr  get_triton_dirr!   r"   r#   <lambda>zcache_knobs.<lambda>W  s    5CWCWX^C_ r"   TRITON_OVERRIDE_DIRc                 ,    t         j                  d      S )Noverrider  r!   r"   r#   r   zcache_knobs.<lambda>X  s    5K_K_`jKk r"   TRITON_CACHE_DIRc                 ,    t         j                  d      S )Nr  r  r!   r"   r#   r   zcache_knobs.<lambda>Y  s    u?S?ST[?\ 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_dir^  s    ww||DMM9g>>r"   N)r   r1   rT   r1   )r   r   r    rY   r(   r   
expanduserr  r   rg   dump_diroverride_dirdirr{   r'  r)  r  r!   r"   r#   r  r  T  sy    rww/A/A$/GHHgH'(9;_`H+,ACklL
"#57\
]C-67M~-^M*^:CDacw:x7x?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<   dZded<   y)compilation_knobsTRITON_KERNEL_OVERRIDErl   r#  TRITON_KERNEL_DUMPdump_ir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_ENABLE_EXPERIMENTAL_CONSANenable_experimental_consanNz Union[CompilationListener, None]listener)r   r   r    rl   r#  r   r3  r5  r7  r   r9  r;  r=  r?  rA  rC  rD  r!   r"   r#   r0  r0  b  s    !":;Hh; !56GX6"*+E"FxF'(?@NH@),7J7$%9:K:"*+E"FxF$,-I$JJ,45Y,ZZ+34W+XX15H.5r"   r0  c                  B    e Zd ZU  ed      Zded<    ed      Zded<   y)autotuning_knobsTRITON_CACHE_AUTOTUNINGrl   r  TRITON_PRINT_AUTOTUNINGprintN)r   r   r    rl   r  r   rI  r!   r"   r#   rF  rF  q  s"    89E8989E89r"   rF  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__z  s    r"   N)r   r   rT   rU   r   r   r    r   r   r!   r"   r#   rK  rK  v  s    r"   rK  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)rQ  rV   rR  zOptional[Callable]r>   r1   r   r   rS  r1   rT   rU   rM  r!   r"   r#   rO  rO  ~  sF      % 	
 '  
r"   rO  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;   rY  s     r#   r<   zHookChain.__init__  s     
 r"   c                X    || j                   vr| j                   j                  |       y y r'   )rX  appendr;   funcs     r#   addzHookChain.add  s%    tzz!JJd# "r"   c                X    || j                   v r| j                   j                  |       y y r'   )rX  remover\  s     r#   r`  zHookChain.remove  s%    4::JJd# r"   c                x    | j                   s| j                  nt        | j                        D ]
  } ||i |  y r'   )rY  rX  )r;   argskwargscalls       r#   r   zHookChain.__call__  s3    &*mmDJJ$**9M 	"D$!&!	"r"   Nro   )rY  r$   )r]  rT  rT   rU   )r   r   r    r   r<   r^  r`  r   r!   r"   r#   rV  rV    s    !$$"r"   rV  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)JITHookCompileInfor1   r*   zdict[KernelParam, str]	signaturer2   devicerU   	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#   rf  rf    sI    	H%%KONMO!!,,::Or"   rf  c                      e Zd Z	 	 	 	 ddZy)JITHookc                    y r'   r!   )r;   r*   reprfncompileis_manual_warmupalready_compileds          r#   r   zJITHook.__call__  r   r"   N)r*   r1   rv  r1   rw  r   rx  rf  ry  r$   rz  r$   rT   zOptional[bool]r   r!   r"   r#   rt  rt    s    #',:r"   rt  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<   dZded<   dZded<   y)runtime_knobsTRITON_INTERPRETrl   	interpretTRITON_DEBUGr$   debugTRITON_OVERRIDE_ARCHr   override_archzHookChain[LaunchHook]launch_enter_hookT)rY  launch_exit_hookzHookChain[InitHandleHook]kernel_load_start_hookkernel_load_end_hookNzOptional[JITHook]jit_cache_hookjit_post_compile_hook)r   r   r    rl   r~  r   rC   r  r   r  rV  r  r  r  r  r  r  r!   r"   r#   r|  r|    s    "#56Ix6 >*..0E40!,-C!DM;D/8{,:.7.F+F8A5C6?6N3N )-N%, 04,3r"   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_FUSIONTrl   default_fp_fusionN)r   r   r    r   r  r   rl   r  r!   r"   r#   r  r    s%     +,@ AL+A"*+Et"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<   y)nvidia_knobs	cuobjdumpr   nvdisasmptxasNVPTX_ENABLE_DUMPrl   
dump_nvptxDISABLE_PTXAS_OPTdisable_ptxas_optTRITON_MOCK_PTX_VERSIONr   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  rl   r  r  r   r  r  r  r  r!   r"   r#   r  r    s    !0!=I= /
 ;Ho;,W5E?5#$78J8"*+>"?x?$/0I$JkJ'(?@NH@"-.E"FNKF +,A BL+Br"   r  c                     e Zd ZU  e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<   y)	amd_knobsAMDGCN_USE_BUFFER_OPSrl   use_buffer_opsAMDGCN_USE_BUFFER_ATOMICSTuse_buffer_atomics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_GLOBAL_PREFETCHrq   global_prefetchTRITON_HIP_LOCAL_PREFETCHlocal_prefetchTRITON_HIP_USE_ASYNC_COPYuse_async_copyAMDGCN_SCALARIZE_PACKED_FOPSscalarize_packed_fopsN)r   r   r    rl   r  r   r  r  r   r  r   r  r  rq   r  r  r  r  r!   r"   r#   r  r    s    '(?@NH@#+,G#NN$%9:K:*+?@K@ (44S'TT,89],^\^&'CDOWD%&ABNGB'(CDNHD&./M&N8Nr"   r  c                  (    e Zd ZU  ed      Zded<   y)proton_knobsTRITON_CUPTI_LIB_PATHr   	cupti_dirN)r   r   r    r   r  r   r!   r"   r#   r  r    s    ()@AI{Ar"   r  c                 H    t        d      j                         t        _        y )Nr  )rl   rC   runtimer  r!   r"   r#   refresh_knobsr  	  s    ^,002GMr"   )r*   r1   r+   r   rT   rU   )r3   r   rT   z!Union[None, tuple[Optional[str]]])`
__future__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,   r5   r6   r7   rW   rD   r9   r1   rY   rg   r$   rl   r2   rq   ry   r{   r   r   r   r   r   r   r   r   r   r  r  r  r0  rF  rK  rO  rT  rV  list
KernelAttrrf  rt  r|  r  r  r  r  buildredisr  compilation
autotuningr  languager   amdprotonr  r!   r"   r#   <module>r     s   "   	 	   ! % ~ ~ ~ ~ 3?9@@	 	 
et & )

)
8"ww'( "D.hsCx  .
xS1 
3xd
# 3YhsCx  Y  K 	*	"HXd9o-FQUV_Q`Ha-a$b *,   "9hsJ/ 96 (8C=(3-78  +8 + $Q Q Q4(  \6
'& '&T \* \7* 7  ?* ?6
 6:z :
 X   Cx "
 ". %S/"
  h 4J 4&MZ M
C: CO
 O"B: B 	!

/	k	3r"   