
    Ni<?              
         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<   d^dZ*d_d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 d0 d1e0          Z= e	d2           G d3 d4                      Z> G d5 d6e          Z? ed7d89          Z@ G d: d8          ZA G d; d<e          ZB G d= d>eA          ZC G d? d@eA          ZDdAe)dB<    G dC dAeA          ZE G dD dEeA          ZF G dF dGeA          ZG G dH dIe          ZH G dJ dKe          ZI edLe9          ZJ G dM dNeeJ                   ZKeLee1e6f                  ZM G dO dPe          ZN G dQ dRe          ZO G dS dTeA          ZP G dU dVeA          ZQ G dW dXeA          ZR G dY dZeA          ZS G d[ d\eA          ZT eC            ZU eD            ZV eE            ZW eF            ZX eG            ZY eP            ZZ eQ            Z[ eR            Z\ eS            Z] eT            Z^d] Z_dS )`    )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dS )EnvN)__name__
__module____qualname__     d/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/triton/knobs.pyr   r      s        Dr"   r   Tboolpropagate_envkeystrvalueOptional[str]returnNonec                x    t           sd S ||t          j        | <   d S | t          j        v rt          j        | = d S d S N)r%   osenviron)r&   r(   s     r#   setenvr0      sF     
3	
		JsOOO 
	r"   valr   !Union[None, tuple[Optional[str]]]c                    | dS t          |           }|t          u r| rdndfS |t          u r| fS |t          u rt          |           fS d S )Nr-   10)typer$   r'   int)r1   ts     r#   toenvr9   )   s^    
{xS		ADyy#&&CxxwCxxC|4r"   SetTypeGetTypec                  F    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	dS ) env_baser&   r'   r*   r+   c                    || _         d S r-   )r&   )selfr&   s     r#   __init__zenv_base.__init__D   s    r"   objclassType[object]namec                    || _         d S r-   )rC   )r?   rA   rC   s      r#   __set_name__zenv_base.__set_name__G   s    			r"   objOptional[object]Optional[Type[object]]r;   c                    |j                             | j        t                    }|t          u r|                                 S |                     |          S r-   )__dict__getrC   _NOTHING	transform)r?   rF   rA   py_vals       r#   __get__zenv_base.__get__J   sF    !!$)X66X88::~~f%%%r"   c                    t                      r-   )NotImplementedErrorr?   s    r#   rK   zenv_base.getP   s    !###r"   objectr(   Union[SetType, Env]c                    t          |t                    r"|j                            | j        d            d S ||j        | j        <   t          |          x}rt          | j        |d                    d S d S )Nr   )
isinstancer   rJ   poprC   r9   r0   r&   )r?   rF   r(   env_vals       r#   __set__zenv_base.__set__S   s{    eS!! 	-LTY-----&+CL#,,&w -tx,,,,,- -r"   c                F    |j                             | j        d            d S r-   )rJ   rW   rC   )r?   rF   s     r#   
__delete__zenv_base.__delete__[   s"    D)))))r"   r1   r:   c                ,    t          t          |          S r-   )r   r;   )r?   r1   s     r#   rM   zenv_base.transform^   s     GS!!!r"   N)r&   r'   r*   r+   )rA   rB   rC   r'   r*   r+   )rF   rG   rA   rH   r*   r;   )r*   r;   )rF   rS   r(   rT   r*   r+   )rF   rS   r*   r+   )r1   r:   r*   r;   )
r   r   r    r@   rE   rO   rK   rY   r[   rM   r!   r"   r#   r=   r=   B   s              & & & &$ $ $ $- - - -* * * *" " " " " "r"   r=   c                  (     e Zd Zd fdZddZ xZS )	env_strr&   r'   defaultc                X    t                                          |           || _        d S r-   superr@   r_   r?   r&   r_   	__class__s      r#   r@   zenv_str.__init__f   &    r"   r*   c                6    t          | j        | j                  S r-   )r   r&   r_   rR   s    r#   rK   zenv_str.getj   s    dh---r"   )r&   r'   r_   r'   r*   r'   r   r   r    r@   rK   __classcell__rd   s   @r#   r^   r^   d   sQ             . . . . . . . .r"   r^   c                  (     e Zd Zd fdZd	dZ xZS )
env_str_callable_defaultr&   r'   default_factoryCallable[[], str]c                X    t                                          |           || _        d S r-   )rb   r@   rm   )r?   r&   rm   rd   s      r#   r@   z!env_str_callable_default.__init__p   s)    .r"   r*   c                Z    t          | j                  }||                                 S |S r-   )r   r&   rm   )r?   rX   s     r#   rK   zenv_str_callable_default.gett   s-    ""?'')))r"   )r&   r'   rm   rn   rg   rh   rj   s   @r#   rl   rl   n   sQ        / / / / / /       r"   rl   c                  *     e Zd Zd
d fdZdd	Z xZS )env_boolFr&   r'   r_   r$   r*   r+   c                X    t                                          |           || _        d S r-   ra   rc   s      r#   r@   zenv_bool.__init__}   re   r"   c                6    t          | j        | j                  S r-   )r   r&   r_   rR   s    r#   rK   zenv_bool.get   s    48T\222r"   F)r&   r'   r_   r$   r*   r+   )r*   r$   rh   rj   s   @r#   rr   rr   {   sV              3 3 3 3 3 3 3 3r"   rr   c                  *     e Zd Zd
d fdZdd	Z xZS )env_intr   r&   r'   r_   r7   r*   r+   c                X    t                                          |           || _        d S r-   ra   rc   s      r#   r@   zenv_int.__init__   re   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_   r7   
ValueErrorRuntimeError)r?   r1   excs      r#   rK   zenv_int.get   sy    TX;<	Ys88O 	Y 	Y 	YNNN3NNNOOUXX	Ys   . 
AAA)r   )r&   r'   r_   r7   r*   r+   r*   r7   rh   rj   s   @r#   rw   rw      s^              Y Y Y Y Y Y Y Yr"   rw   	ClassTypec                  (     e Zd Zd	 fdZd
dZ xZS )	env_classr&   r'   r6   r*   r+   c                X    t                                          |           || _        d S r-   )rb   r@   r6   )r?   r&   r6   rd   s      r#   r@   zenv_class.__init__   s&    			r"   Optional[Type[ClassType]]c           	         t           j                  }|d S |                    dd          }t          |          dk    rt	          d j         d| d          t          t          j        |d                   |d                   }t           fd|	                                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  8   K   | ]}|j         j        k    V  d S r-   )r   r6   ).0cr?   s     r#   	<genexpr>z env_class.get.<locals>.<genexpr>   s,      ??AJ$)+??????r"   zUnable to use 'z' from z: not of type '')r   r&   splitlenr|   getattr	importlibimport_moduleanymror6   r   r   r   )r?   r1   compsclss   `   r#   rK   zenv_class.get   s    TX;4		#q!!u::??cccccccdddi-eAh77qBB????SWWYY???@@ 	dbbbTXbbVZV_bbbcccDOS)))r"   )r&   r'   r6   r'   r*   r+   )r*   r   rh   rj   s   @r#   r   r      sQ             
* * * * * * * *r"   r   c                  V    e Zd ZU ded<   ded<   eej        dd                        ZdS )	
NvidiaToolr'   pathversionr*   Optional[NvidiaTool]c                8   	 t          j        | dgt           j                  }t          j        d|                    d          t          j                  }|d S t          | |                    d                    S # t           j	        t          f$ r Y d S 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-@IZ[[[Fi 96==;Q;QY[YefffGtdGMM!$4$4555-/@A 	 	 	44	s   AA? "A? ?BBN)r   r'   r*   r   )r   r   r    __annotations__staticmethod	functools	lru_cacher   r!   r"   r#   r   r      sT         IIILLL    \  r"   r   c                  0     e Zd Zd
 fdZddZdd	Z xZS )env_nvidia_toolbinaryr'   r*   r+   c                F   |t          j        d          z  }|| _        t          j                            t          j                            t                    ddd|          | _        t                      
                    d|                                 d           d S )NEXEbackendsnvidiabinTRITON__PATH)	sysconfigget_config_varr   r.   r   joindirname__file__default_pathrb   r@   upper)r?   r   rd   s     r#   r@   zenv_nvidia_tool.__init__   s    )*5111GLL)B)BJPXZ_aghh86<<>>88899999r"   r   c                P    |                      t          | j                            S r-   )rM   r   r&   rR   s    r#   rK   zenv_nvidia_tool.get   s    ~~fTX..///r"   r   c                    |
|| j         g}n| j         g}|D ]"}t                              |          x}r|c S #t          d| j                   )NzCannot find )r   r   r   r|   r   )r?   r   pathstools       r#   rM   zenv_nvidia_tool.transform   sw     4,-EE&'E 	 	D!++D111t  7$+77888r"   )r   r'   r*   r+   )r*   r   )r   r'   r*   r   )r   r   r    r@   rK   rM   ri   rj   s   @r#   r   r      se        : : : : : :0 0 0 09 9 9 9 9 9 9 9r"   r   c                      e Zd ZddZdS )env_opt_strr*   r)   c                *    t          | j                  S r-   )r   r&   rR   s    r#   rK   zenv_opt_str.get   s    dhr"   Nr*   r)   r   r   r    rK   r!   r"   r#   r   r      s(                   r"   r   c                      e Zd ZddZdS )env_opt_boolr*   r)   c                ,    t          | j        d           S r-   )r   r&   rR   s    r#   rK   zenv_opt_bool.get   s    48T***r"   Nr   r   r!   r"   r#   r   r      s(        + + + + + +r"   r   )frozenc                  b    e Zd ZU dZded<   ded<   ded<   edd            Zedd	            Zd
S )CompileTimeszm
    Model holding timing information for an invocation of the compiler.

    All times in microseconds.
    r7   ir_initializationzlist[tuple[str, int]]lowering_stagesstore_resultsr*   c                >    t          d | j        D                       S )Nc              3  &   K   | ]}|d          V  dS )r   Nr!   )r   stages     r#   r   z.CompileTimes.total_lowering.<locals>.<genexpr>   s&      ??E!H??????r"   )sumr   rR   s    r#   total_loweringzCompileTimes.total_lowering   s"    ??$*>???@@@r"   c                0    | j         | j        z   | j        z   S r-   )r   r   r   rR   s    r#   totalzCompileTimes.total   s    %(;;d>PPPr"   Nr~   )r   r   r    __doc__r   propertyr   r   r!   r"   r#   r   r      s            +*** A A A XA Q Q Q XQ Q Qr"   r   c                      e Zd ZddZdS )CompilationListenersrcUnion[ASTSource, IRSource]metadatadict[str, Any]metadata_groupdict[str, str]timesr   	cache_hitr$   r*   r+   c                   d S r-   r!   )r?   r   r   r   r   r   s         r#   __call__zCompilationListener.__call__      r"   N)r   r   r   r   r   r   r   r   r   r$   r*   r+   r   r   r    r   r!   r"   r#   r   r     (             r"   r   
knobs_type
base_knobs)boundc                  f    e Zd Zedd            Zedd            ZddZdd	Zedd            Z	dS )r   r*   dict[str, env_base]c                b    d t          |           j                                        D             S )Nc                D    i | ]\  }}t          |t                    ||S r!   )rV   r=   )r   kvs      r#   
<dictcomp>z/base_knobs.knob_descriptors.<locals>.<dictcomp>  s@     
 
 
 1!X&&	
q
 
 
r"   )r6   rJ   itemsrR   s    r#   knob_descriptorszbase_knobs.knob_descriptors  s:    
 
 T

+1133
 
 
 	
r"   r   c                N      fd j                                         D             S )Nc                2    i | ]}|t          |          S r!   )r   )r   r   r?   s     r#   r   z$base_knobs.knobs.<locals>.<dictcomp>  s%    JJJ74##JJJr"   )r   keysrR   s   `r#   knobszbase_knobs.knobs  s,    JJJJT-B-G-G-I-IJJJJr"   r?   r   c                r     t          |                       }|j                            | j                   |S r-   )r6   rJ   update)r?   ress     r#   copyzbase_knobs.copy  s0    d4jjllDM***
r"   c                ^    | j                                         D ]}t          | |           | S r-   )r   r   delattr)r?   knobs     r#   resetzbase_knobs.reset   s8    )..00 	  	 DD$r"   Generator[None, None, None]c              #  t  K   	 d | j                                         D             }t          | j                  }d V  | j                                         | j                            |           |                                D ]2\  }}||t          j        |<   |t          j        v rt          j        |= 3d S # | j                                         | j                            |           |                                D ]2\  }}||t          j        |<   |t          j        v rt          j        |= 3w xY w)Nc                B    i | ]}|j         t          |j                   S r!   )r&   r   )r   r   s     r#   r   z$base_knobs.scope.<locals>.<dictcomp>(  s&    aaa$48VDH%5%5aaar"   )	r   valuesdictrJ   clearr   r   r.   r/   )r?   initial_envorigr   r   s        r#   scopezbase_knobs.scope%  s:     	&aa$BWB^B^B`B`aaaK&&DEEEM!!!M  &&&#))++ & &1=$%BJqMM"*__
1	& & M!!!M  &&&#))++ & &1=$%BJqMM"*__
1	&s   ;B; ;A<D7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        
 
 
 X
 K K K XK   
   
 & & & ^& & &r"   c                      e Zd Zdd
ZdS )	BuildImplrC   r'   r   srcdirlibrary_dirs	list[str]include_dirs	librariesr*   c                   d S r-   r!   )r?   rC   r   r  r  r  r  s          r#   r   zBuildImpl.__call__8  r   r"   N)rC   r'   r   r'   r  r'   r  r  r  r  r  r  r*   r'   r   r!   r"   r#   r
  r
  6  r   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d	S )build_knobsz<Configuration controlling how the native compiler is invokedCCr   ccTRITON_CUDACRT_PATHcudacrt_pathTRITON_CUDART_PATHcudart_pathNzOptional[BuildImpl]implr*   set[str]c                2    d | j         | j        fD             S )Nc                    h | ]}||S r-   r!   )r   r   s     r#   	<setcomp>z+build_knobs.backend_dirs.<locals>.<setcomp>H  s    [[[$JZJZJZJZr"   )r  r  rR   s    r#   backend_dirszbuild_knobs.backend_dirsF  s!    [[$"3T5E!F[[[[r"   )r*   r  )r   r   r    r   r   r  r   r  r  r  r   r  r!   r"   r#   r  r  =  s         FF!k$''B'''' +,A B BLBBBB*{+?@@K@@@@ $D$$$$\ \ \ X\ \ \r"   r  c                  v    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<   dS )redis_knobsTRITON_REDIS_KEY_FORMATztriton:{key}:{filename}r^   
key_formatTRITON_REDIS_HOST	localhosthostTRITON_REDIS_PORTi  rw   portN)	r   r   r    r^   r"  r   r%  rw   r'  r!   r"   r#   r   r   K  sm         !'";=VWWJWWWWG/==D====G/66D666666r"   r   cache_knobscachec                      e Zd ZU  ede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dS )r(  TRITON_HOMEz~/r^   home_dirTRITON_DUMP_DIRc                 6    t                               d          S )Ndumpr)  get_triton_dirr!   r"   r#   <lambda>zcache_knobs.<lambda>W  s    5CWCWX^C_C_ r"   TRITON_OVERRIDE_DIRc                 6    t                               d          S )Noverrider0  r!   r"   r#   r2  zcache_knobs.<lambda>X  s    5K_K_`jKkKk r"   TRITON_CACHE_DIRc                 6    t                               d          S )Nr)  r0  r!   r"   r#   r2  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_classr   r'   r*   c                N    t           j                            | j        d|          S )Nz.triton)r.   r   r   r,  )r?   r   s     r#   r1  zcache_knobs.get_triton_dir^  s    w||DM9g>>>r"   N)r   r'   r*   r'   )r   r   r    r^   r.   r   
expanduserr,  r   rl   dump_diroverride_dirdirr   r9  r;  r1  r!   r"   r#   r(  r(  T  s         rw/A/A$/G/GHHHHHHH''(9;_;_``H++,ACkCkllL
"
"#57\7\
]
]C-6Y7M~-^-^M^^^^:C)Dacw:x:xxxx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<   dS )compilation_knobsTRITON_KERNEL_OVERRIDErr   r5  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    rr   r5  r   rE  rG  rI  r   rK  rM  rO  rQ  rS  rU  rV  r!   r"   r#   rB  rB  b  s?        !":;;H;;;; !566G6666"*(+E"F"FFFFF'x(?@@N@@@@)k,77J7777$H%9::K::::"*(+E"F"FFFFF$,H-I$J$JJJJJ,4H5Y,Z,ZZZZZ+384W+X+XXXXX15H555555r"   rB  c                  P    e Zd ZU  ed          Zded<    ed          Zded<   dS )autotuning_knobsTRITON_CACHE_AUTOTUNINGrr   r)  TRITON_PRINT_AUTOTUNINGprintN)r   r   r    rr   r)  r   r[  r!   r"   r#   rX  rX  q  sJ         h899E9999h899E999999r"   rX  c                      e Zd ZdZddZdS )	
LaunchHookz3Hook invoked before and after kernel launching
    r   r   r*   r+   c                    d S r-   r!   )r?   r   s     r#   r   zLaunchHook.__call__z  s    r"   N)r   r   r*   r+   r   r   r    r   r   r!   r"   r#   r]  r]  v  s2              r"   r]  c                      e Zd ZdZddZdS )InitHandleHookz}Hook invoked around kernel binary/module loading.
    module/function can be None for the *start* hook (before loading).
    modulerG   functionOptional[Callable]rC   r'   r   r   hashr*   r+   c                    d S r-   r!   )r?   rb  rc  rC   r   re  s         r#   r   zInitHandleHook.__call__  s	     	r"   N)rb  rG   rc  rd  rC   r'   r   r   re  r'   r*   r+   r_  r!   r"   r#   ra  ra  ~  s2              r"   ra  Fc                  2    e Zd ZdZdddZdd
ZddZd ZdS )	HookChainz?A chain of hooks of the same type F to be called in order.
    Freversedr$   c                "    g | _         || _        d S r-   )callsrj  )r?   rj  s     r#   r@   zHookChain.__init__  s     
 r"   funcrg  r*   r+   c                P    || j         vr| j                             |           d S d S r-   )rl  appendr?   rm  s     r#   addzHookChain.add  s3    tz!!Jd##### "!r"   c                P    || j         v r| j                             |           d S d S r-   )rl  removerp  s     r#   rs  zHookChain.remove  s3    4:Jd##### r"   c                `    | j         s| j        nt          | j                  D ]
} ||i | d S r-   )rj  rl  )r?   argskwargscalls       r#   r   zHookChain.__call__  sJ    &*mMDJJ$*9M9M 	" 	"DD$!&!!!!	" 	"r"   Nru   )rj  r$   )rm  rg  r*   r+   )r   r   r    r   r@   rq  rs  r   r!   r"   r#   ri  ri    sn         ! ! ! ! !$ $ $ $$ $ $ $" " " " "r"   ri  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<   dS )JITHookCompileInfor'   r&   zdict[KernelParam, str]	signaturer7   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_warmupN)r   r   r    r   r!   r"   r#   ry  ry    s         HHH%%%%KKKOOONNNMMMOOO!!!!,,,,::::OOOOOr"   ry  c                      e Zd ZddZdS )JITHookr&   r'   reprfnr   compilery  is_manual_warmupr$   already_compiledr*   Optional[bool]c                   d S r-   r!   )r?   r&   r  r  r  r  r  s          r#   r   zJITHook.__call__  r   r"   N)r&   r'   r  r'   r  r   r  ry  r  r$   r  r$   r*   r  r   r!   r"   r#   r  r    r   r"   r  c                  0   e Zd ZU  ed          Zded<    ed                                          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<   dS )runtime_knobsTRITON_INTERPRETrr   	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_hookNzOptional[JITHook]jit_cache_hookjit_post_compile_hook)r   r   r    rr   r  r   rK   r  r   r  ri  r  r  r  r  r  r  r!   r"   r#   r  r    s        "(#566I6666 (>**..00E0000!,-C!D!DMDDDD/8y{{::::.7i.F.F.FFFFF8A	CCCC6?i6N6N6NNNNN )-N,,,, 04333333r"   r  c                  R    e Zd ZU  ed          Zded<    edd          Zded<   dS )	language_knobsTRITON_F32_DEFAULTr   fp32_defaultTRITON_DEFAULT_FP_FUSIONTrr   default_fp_fusionN)r   r   r    r   r  r   rr   r  r!   r"   r#   r  r    sM          +,@ A ALAAAA"*(+Et"L"LLLLLLLr"   r  c                  0   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<   dS )nvidia_knobs	cuobjdumpr   nvdisasmptxasNVPTX_ENABLE_DUMPrr   
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  rr   r  r  r   r  r  r  r  r!   r"   r#   r  r    s        !0!=!=I==== /
 ; ;H;;;;,_W55E5555#8$788J8888"*(+>"?"?????$/K0I$J$JJJJJ'x(?@@N@@@@"-+.E"F"FNFFFF +,A B BLBBBBBBr"   r  c                  R   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<   dS )	amd_knobsAMDGCN_USE_BUFFER_OPSrr   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_PREFETCHrw   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    rr   r  r   r  r  r   r  r   r  r  rw   r  r  r  r  r!   r"   r#   r  r    s2        'x(?@@N@@@@#+8,G#N#NNNNN$H%9::K::::*{+?@@K@@@@ (4|4S'T'TTTTT,8L9],^,^^^^^&w'CDDODDDD%g&ABBNBBBB'x(CDDNDDDD&.h/M&N&NNNNNNNr"   r  c                  0    e Zd ZU  ed          Zded<   dS )proton_knobsTRITON_CUPTI_LIB_PATHr   	cupti_dirN)r   r   r    r   r  r   r!   r"   r#   r  r    s.         ([)@AAIAAAAAAr"   r  c                 \    t          d                                          t          _        d S )Nr  )rr   rK   runtimer  r!   r"   r#   refresh_knobsr  	  s!    ^,,0022GMMMr"   )r&   r'   r(   r)   r*   r+   )r1   r   r*   r2   )`
__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   r0   r9   r:   r;   rS   rL   r=   r'   r^   rl   r$   rr   r7   rw   r   r   r   r   r   r   r   r   r   r   r
  r  r   r(  rB  rX  r]  ra  rg  ri  list
KernelAttrry  r  r  r  r  r  r  buildredisr)  compilation
autotuningr  languager   amdprotonr  r!   r"   r#   <module>r     s[   " " " " " " "         				 				         ! ! ! ! ! ! % % % % % % ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 3 3 3 3 3 3 3 3 A????????99999999@@@@@@@@@@	 	 	 	 	 	 	 	 
cee          & ')


')

688" " " " "ww'( " " "D. . . . .hsCx  . . .
 
 
 
 
xS1 
 
 
3 3 3 3 3xd
# 3 3 3Y Y Y Y YhsCx  Y Y Y  GK  	* * * * *	"HXd9o-FQUV_Q`Ha-a$b * * *,        "9 9 9 9 9hsJ/ 9 9 96         (8C=(3-78      + + + + +8 + + + $Q Q Q Q Q Q Q Q4    (    W\666
'& '& '& '& '& '& '& '&T       \ \ \ \ \* \ \ \7 7 7 7 7* 7 7 7    ? ? ? ? ?* ? ? ?6 6 6 6 6
 6 6 6: : : : :z : : :
           X     GCx   " " " " "
 " " ". %S/"
            h   4 4 4 4 4J 4 4 4&M M M M MZ M M M
C C C C C: C C CO O O O O
 O O O"B B B B B: B B B 	!!

-//>	ikk	3 3 3 3 3r"   