§
    9˜ºhT  ã                  ó  — d dl mZ d dlZd dlZddlmZmZ ddlmZ ddlm	Z	 ddlm
Z
mZ ddlmZmZ dd	lmZ dd
lmZmZmZ ddlmZ ddlmZ 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Z de iZ!dZ"de"iZ#d„ Z$ G d„ d¦  «        Z% G d„ d¦  «        Z& ej'        ¦   «         d„ ¦   «         Z( ej'        ¦   «         d„ ¦   «         Z)d„ Z*d*d„Z+ G d„ d¦  «        Z,d+d„Z-d,d#„Z. G d$„ d%¦  «        Z/ G d&„ d'e0¦  «        Z1 G d(„ d)¦  «        Z2dS )-é    )ÚannotationsNé   )Úget_cache_invalidating_env_varsÚir)Úbackends)ÚLanguage)ÚBaseBackendÚ	GPUTarget)Ú__version__Úknobs)ÚOutOfResources)Úget_cache_managerÚget_dump_managerÚget_override_manager)Údriver)Úget_sass)ÚPathz=\.(?:visible|extern)\s+\.(?:entry|func)\s+(\w+)\s*\(([^)]*)\)Úptxz\.param\s+\.(\w+)c                óÜ   — t          j        d| ¦  «        }t          j        d| ¦  «        }|�dS t          j        dd| ¦  «        } |�%dt          |                     d¦  «        ¦  «        z   S | S )Nz!tt\.ptr<([^,]+)ztt.nv_tma_desc = 1Ú	nvTmaDescz {[^}]+}Ú Ú*é   )ÚreÚsearchÚsubÚconvert_type_reprÚgroup)ÚxÚmatchÚtmas      ú`/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/triton/compiler/compiler.pyr   r   '   sn   € õ ŒIÐ)¨1Ñ-Ô-€EÝ
Œ)Ð)¨1Ñ
-Ô
-€CØ
€Øˆ{Ý
Œˆ{˜B Ñ"Ô"€AØÐØÕ& u§{¢{°1¡~¤~Ñ6Ô6Ñ6Ð6Ø€Hó    c                  ó*   — e Zd Zdd	d„Zd„ Zd„ Zd„ ZdS )
Ú	ASTSourceNÚreturnÚNonec                ó¼  — || _         t          j        | _        d| _        |j        | _        || _        t          ¦   «         | _	        |�m| 
                    ¦   «         D ]X\  }}t          |t          ¦  «        r|j                             |¦  «        fn|}t          |t          ¦  «        sJ ‚|| j	        |<   ŒY|pt          ¦   «         | _        t          | j        t          ¦  «        r8d„ t#          | j                             d¦  «        ¦  «        D ¦   «         | _        d S | j                             ¦   «         D ]&}t          |t          ¦  «        st)          d¦  «        ‚Œ'd S )NÚttirc                ó>   — i | ]\  }}||                      ¦   «         “ŒS © )Ústrip©Ú.0ÚkÚvs      r"   ú
<dictcomp>z&ASTSource.__init__.<locals>.<dictcomp>D   s&   € Ð\Ð\Ð\©t¨q°!˜a §¢¡¤Ð\Ð\Ð\r#   ú,zSignature keys must be string)Úfnr   ÚTRITONÚlanguageÚextÚ__name__ÚnameÚ	signatureÚdictÚ	constantsÚitemsÚ
isinstanceÚstrÚ	arg_namesÚindexÚtupleÚattrsÚ	enumerateÚsplitÚkeysÚ	TypeError)Úselfr3   r9   Ú
constexprsrB   r/   r0   s          r"   Ú__init__zASTSource.__init__6   sS  € ØˆŒÝ œˆŒØˆŒØ”KˆŒ	Ø"ˆŒÝ™œˆŒØÐ!Ø"×(Ò(Ñ*Ô*ð &ð &‘��1Ý1;¸A½sÑ1CÔ1CÐJ�R”\×'Ò'¨Ñ*Ô*Ð-Ð-È�Ý! !¥UÑ+Ô+Ð+Ð+Ð+Ø$%�”˜qÑ!Ð!Ø�_�d™fœfˆŒ
Ý�d”n¥cÑ*Ô*ð 	EØ\Ð\µyÀÄ×AUÒAUÐVYÑAZÔAZÑ7[Ô7[Ð\Ñ\Ô\ˆDŒNˆNˆNà”^×(Ò(Ñ*Ô*ð Eð E�Ý! !¥SÑ)Ô)ð EÝ#Ð$CÑDÔDÐDðEðEð Er#   c                ó¸  ‡— d„ t          | j                             ¦   «         ¦  «        D ¦   «         }d„ Šd                     ˆfd„t          | j                             ¦   «         ¦  «        D ¦   «         ¦  «        }| j        j        › dt          | j        ¦  «        › d|› d|› �}t          j
        |                     d¦  «        ¦  «                             ¦   «         S )Nc                ó   — g | ]\  }}|‘ŒS r+   r+   r-   s      r"   ú
<listcomp>z"ASTSource.hash.<locals>.<listcomp>K   s   € ÐCÐCÐC™D˜A˜q�aÐCÐCÐCr#   c                óN   — t          | d¦  «        r| j        nt          | ¦  «        S )NÚ	cache_key)ÚhasattrrN   r>   )r   s    r"   ú<lambda>z ASTSource.hash.<locals>.<lambda>L   s!   € ­7°1°kÑ+BÔ+BÐN˜AœK˜KÍÈAÉÌ€ r#   ú-c                ó,   •— g | ]\  }} ‰|¦  «        ‘ŒS r+   r+   )r.   r/   r0   Úget_keys      €r"   rL   z"ASTSource.hash.<locals>.<listcomp>M   s%   ø€ Ð!XÐ!XÐ!X±°°A ' '¨!¡*¤*Ð!XÐ!XÐ!Xr#   úutf-8)Úsortedr9   r<   Újoinr;   r3   rN   r>   rB   ÚhashlibÚsha256ÚencodeÚ	hexdigest)rG   Ú
sorted_sigÚconstants_keyÚkeyrS   s       @r"   ÚhashzASTSource.hashJ   sÈ   ø€ ØCÐC¥F¨4¬>×+?Ò+?Ñ+AÔ+AÑ$BÔ$BÐCÑCÔCˆ
ØNÐNˆØŸšÐ!XÐ!XÐ!XÐ!X½ÀÄ×@TÒ@TÑ@VÔ@VÑ9WÔ9WÐ!XÑ!XÔ!XÑYÔYˆØ”Ô"ÐSÐS¥S¨¬¡_¤_ÐSÐS°zÐSÐSÀMÐSÐSˆÝŒ~˜cŸjšj¨Ñ1Ô1Ñ2Ô2×<Ò<Ñ>Ô>Ð>r#   c                ó:   — ddl m}  || j        | ||||¬¦  «        S )Nr   )Úast_to_ttir)ÚcontextÚoptionsÚcodegen_fnsÚ
module_map)Úcode_generatorr`   r3   )rG   rb   rc   rd   ra   r`   s         r"   Úmake_irzASTSource.make_irQ   s=   € Ø/Ð/Ð/Ð/Ð/Ð/Øˆ{˜4œ7 D°'À7ÐXcØ&0ð2ñ 2ô 2ð 	2r#   c                ó   — t          ¦   «         S ©N)r:   ©rG   s    r"   Úparse_optionszASTSource.parse_optionsV   s   € Ý‰vŒvˆr#   ©NN©r&   r'   ©r7   Ú
__module__Ú__qualname__rI   r^   rf   rj   r+   r#   r"   r%   r%   4   s_   € € € € € ðEð Eð Eð Eð Eð(?ð ?ð ?ð2ð 2ð 2ð
ð ð ð ð r#   r%   c                  ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚIRSourcec                ó�  — || _         t          |¦  «        }|j        dd …         | _        t          j        | _        |                     ¦   «         | _        t          j
        |¦  «         | 
                    |¦  «         | j        dk    r©t          j        t          | j                 | j        t          j        ¦  «        }|                     d¦  «        | _        |                     d¦  «        }t          j        t$          | j                 |¦  «        }d„ t'          |¦  «        D ¦   «         | _        d S t          j        | j         |¦  «        | _        | j                             ¦   «         }d|z   | _        | j                             |¦  «        }| j                             |¦  «        }	d„ t'          |	¦  «        D ¦   «         | _        d S )Nr   r   r   c                ó4   — i | ]\  }}|t          |¦  «        “ŒS r+   )r   ©r.   r/   Útys      r"   r1   z%IRSource.__init__.<locals>.<dictcomp>l   s'   € ÐUÐUÐU¹5¸1¸b˜aÕ!2°2Ñ!6Ô!6ÐUÐUÐUr#   ú@c                ó   — i | ]\  }}||“Œ	S r+   r+   rt   s      r"   r1   z%IRSource.__init__.<locals>.<dictcomp>s   s   € ÐDÐDÐD©¨¨2˜a ÐDÐDÐDr#   )Úpathr   Úsuffixr6   r   r4   r5   Ú	read_textÚsrcr   Úload_dialectsr   r   Úprototype_patternÚ	MULTILINEr   r8   ÚfindallÚarg_type_patternrC   r9   Úparse_mlir_moduleÚmoduleÚget_entry_func_nameÚget_functionÚget_function_signature)
rG   rx   ra   Úbackendr    r9   ÚtypesÚfn_nameÚfuncOpÚfunc_tys
             r"   rI   zIRSource.__init__\   sk  € ØˆŒ	Ý�D‰zŒzˆØ”;˜q˜r˜r”?ˆŒÝ œˆŒØ—>’>Ñ#Ô#ˆŒÝ
Ô˜Ñ!Ô!Ð!Ø×Ò˜gÑ&Ô&Ð&ð Œ8�uÒÐÝ”IÕ/°´Ô9¸4¼8ÅRÄ\ÑRÔRˆEØŸš A™œˆDŒIØŸš A™œˆIÝ”JÕ/°´Ô9¸9ÑEÔEˆEØUÐUÅIÈeÑDTÔDTÐUÑUÔUˆDŒNˆNˆNåÔ.¨t¬y¸'ÑBÔBˆDŒKØ”k×5Ò5Ñ7Ô7ˆGØ˜g™ˆDŒIØ”[×-Ò-¨gÑ6Ô6ˆFØ”k×8Ò8¸Ñ@Ô@ˆGØDÐDµ¸7Ñ1CÔ1CÐDÑDÔDˆDŒNˆNˆNr#   c                ó~   — t          j        | j                             d¦  «        ¦  «                             ¦   «         S )NrT   )rW   rX   r{   rY   rZ   ri   s    r"   r^   zIRSource.hashu   s,   € ÝŒ~˜dœhŸošo¨gÑ6Ô6Ñ7Ô7×AÒAÑCÔCÐCr#   c                ó(   — || j         _        | j         S rh   )r‚   ra   )rG   rb   rc   rd   ra   s        r"   rf   zIRSource.make_irx   s   € Ø%ˆŒÔØŒ{Ðr#   c                óˆ   — | j         dk    r*| j                             d¦  «        }|€
J d¦   «         ‚d|iS t          ¦   «         S )NÚttgirzttg.num-warpsz'Unable to parse ttg.num-warps attributeÚ	num_warps)r6   r‚   Úget_int_attrr:   )rG   r�   s     r"   rj   zIRSource.parse_options|   sM   € ØŒ8�wÒÐØœ×0Ò0°ÑAÔAˆIØÐ(Ð(Ð*SÑ(Ô(Ð(Ø Ð+Ð+Ý‰vŒvˆr#   Nrm   r+   r#   r"   rq   rq   Z   sV   € € € € € ðEð Eð Eð2Dð Dð Dðð ð ðð ð ð ð r#   rq   c                 óö  — dd l } t          j                             t          j                             t          j                             t
          ¦  «        ¦  «        ¦  «        }g }t          t
          d¦  «        5 }|t          j        | 	                    ¦   «         ¦  «         
                    ¦   «         gz  }d d d ¦  «         n# 1 swxY w Y   t          j                             |d¦  «        dft          j                             |d¦  «        dfg}|D ]¦\  }}|                      |g|¬¦  «        D ]ˆ}t          |j                             |j        ¦  «        j        d¦  «        5 }|t          j        | 	                    ¦   «         ¦  «         
                    ¦   «         gz  }d d d ¦  «         n# 1 swxY w Y   Œ‰Œ§t          j        ¦   «         }t#          j        d¦  «                             d	¦  «        d
         }	t          t          j                             |dd|	› �¦  «        d¦  «        5 }	 | 	                    d¦  «        }
|
sn|                     |
¦  «         Œ.	 d d d ¦  «         n# 1 swxY w Y   |                     | 
                    ¦   «         ¦  «         t          j                             |d¦  «        }|                      |gd¬¦  «        D ]ˆ}t          |j                             |j        ¦  «        j        d¦  «        5 }|t          j        | 	                    ¦   «         ¦  «         
                    ¦   «         gz  }d d d ¦  «         n# 1 swxY w Y   Œ‰t,          › d                     |¦  «        z   S )Nr   ÚrbÚcompilerztriton.compiler.r   ztriton.backends.)ÚprefixÚ
EXT_SUFFIXú.éÿÿÿÿÚ_Cz
libtriton.Ti   r5   ztriton.language.rQ   )ÚpkgutilÚosrx   ÚdirnameÚabspathÚ__file__ÚopenrW   rX   ÚreadrZ   rV   Úwalk_packagesÚmodule_finderÚ	find_specr8   ÚoriginÚ	sysconfigÚget_config_varrD   ÚupdateÚappendr   )r™   ÚTRITON_PATHÚcontentsÚfÚpath_prefixesrx   r”   ÚlibÚlibtriton_hashr6   ÚchunkÚlanguage_paths               r"   Ú
triton_keyr°   „   s  € à€N€N€NÝ”'—/’/¥"¤'§/¢/µ"´'·/²/Å(Ñ2KÔ2KÑ"LÔ"LÑMÔM€KØ€Hå	�h˜Ñ	Ô	ð ; Ø•W”^ A§F¢F¡H¤HÑ-Ô-×7Ò7Ñ9Ô9Ð:Ñ:ˆð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;õ 
Œ�Š�k :Ñ	.Ô	.Ð0BÐCÝ	Œ�Š�k :Ñ	.Ô	.Ð0BÐCð€Mð &ð Cð C‰ˆˆfØ×(Ò(¨$¨¸Ð(Ñ?Ô?ð 	Cð 	CˆCÝ�cÔ'×1Ò1°#´(Ñ;Ô;ÔBÀDÑIÔIð CÈQØ�Wœ^¨A¯FªF©H¬HÑ5Ô5×?Ò?ÑAÔAÐBÑB�ðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cøð	Cõ
 ”^Ñ%Ô%€NÝ
Ô
" <Ñ
0Ô
0×
6Ò
6°sÑ
;Ô
;¸BÔ
?€CÝ	�bŒg�lŠl˜;¨Ð.@¸3Ð.@Ð.@ÑAÔAÀ4Ñ	HÔ	Hð )ÈAð	)Ø—F’F˜7‘O”OˆEØð ØØ×!Ò! %Ñ(Ô(Ð(ð		)ð ð	)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð ‡O‚O�N×,Ò,Ñ.Ô.Ñ/Ô/Ð/å”G—L’L ¨jÑ9Ô9€MØ×$Ò$ m _Ð=OÐ$ÑPÔPð ?ð ?ˆÝ�#Ô#×-Ò-¨c¬hÑ7Ô7Ô>ÀÑEÔEð 	?ÈØ�œ¨¯ª©¬Ñ1Ô1×;Ò;Ñ=Ô=Ð>Ñ>ˆHð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?øåÐ˜cŸhšh xÑ0Ô0Ñ0Ð0sH   Á:=CÃCÃ
CÅ%=F.Æ.F2Æ5F2È-0I*É*I.É1I.Ì=MÍM	ÍM	c                óV   — t           j        j                             | ¦  «        d         S )NÚmax_shared_mem)r   ÚactiveÚutilsÚget_device_properties)Údevices    r"   r²   r²   ¨   s!   € åŒ=Ô×4Ò4°VÑ<Ô<Ð=MÔNÐNr#   c                ó  — |dk    s|dk    rt          j        | |¦  «        }||_        |S |dk    s|dk    s|dk    r!t          | ¦  «                             ¦   «         S |dk    s|dk    r!t          | ¦  «                             ¦   «         S d S )Nr)   rŽ   Úllirr   ÚamdgcnÚcubinÚhsaco)r   r�   ra   r   rz   Ú
read_bytes)Ú	full_namer6   ra   r‚   s       r"   Úparser¾   ­   s’   € Ø
ˆf‚}€}˜˜wš˜ÝÔ% i°Ñ9Ô9ˆØ ˆŒØˆØ
ˆf‚}€}˜˜uš˜¨¨xª¨Ý�I‰Œ×(Ò(Ñ*Ô*Ð*Ø
ˆg‚~€~˜ š˜Ý�I‰Œ×)Ò)Ñ+Ô+Ð+ð (˜r#   ÚeÚBaseExceptionc                óÖ  ‡— t           j        j        rdS | j        �t	          | j        ¦  «         | j        �t	          | j        ¦  «         ddg}d„ |D ¦   «         }| j        Šg }‰�9t          ˆfd„|D ¦   «         ¦  «        s|                     ‰¦  «         ‰j	        Š‰­9t          ||dd…         ¦  «        D ]\  }}||_	        Œ|s	d| _        dS d|d         _	        |d         | _        dS )	zŒ
    Removes code_generator.py and related files from tracebacks.

    These are uninteresting to the user -- "just show me *my* code!"
    Nz"/triton/compiler/code_generator.pyz/ast.pyc                óN   — g | ]"}|                      d t          j        ¦  «        ‘Œ#S )ú/)Úreplacerš   Úsep)r.   Úbad_files     r"   rL   z$filter_traceback.<locals>.<listcomp>Ë   s*   € ÐIÐIÐI°8�×!Ò! #¥r¤vÑ.Ô.ÐIÐIÐIr#   c              3  ód   •K  — | ]*}‰j         j        j                             |¦  «        ¯&|V — Œ+d S rh   )Útb_frameÚf_codeÚco_filenameÚendswith)r.   rª   Útbs     €r"   ú	<genexpr>z#filter_traceback.<locals>.<genexpr>Ð   s?   øè è € ÐVÐV˜¨2¬;Ô+=Ô+I×+RÒ+RÐSTÑ+UÔ+UÐV�1ÐVÐVÐVÐVÐVÐVr#   r   r—   r   )r   ÚcompilationÚfront_end_debuggingÚ	__cause__Úfilter_tracebackÚ__context__Ú__traceback__Úanyr§   Útb_nextÚzip)r¿   Ú	BAD_FILESÚframesÚ	cur_frameÚ
next_framerÌ   s        @r"   rÑ   rÑ   ¸   s$  ø€ õ ÔÔ,ð Øˆà„{ÐÝ˜œÑ%Ô%Ð%Ø„}Ð Ý˜œÑ'Ô'Ð'ð 	-Øð€Ið JÐI¸yÐIÑIÔI€Ià	
Œ€BØ€FØ
ˆ.ÝÐVÐVÐVÐV˜iÐVÑVÔVÑVÔVð 	Ø�MŠM˜"ÑÔÐØŒZˆð ˆ.õ
 $' v¨v°a°b°b¬zÑ#:Ô#:ð 'ð 'Ñˆ�JØ&ˆ	ÔÐàð $ØˆŒˆˆà!ˆˆrŒ
ÔØ  œ)ˆŒˆˆr#   c                  ó.   — e Zd Zdd„Zdd„Zdd„Zdd	„Zd
S )ÚCompileTimerr&   r'   c                ó`   — t          j         ¦   «         | _        d | _        g | _        d | _        d S rh   )ÚtimeÚstartÚir_initialization_endÚlowering_stage_endsÚstore_results_endri   s    r"   rI   zCompileTimer.__init__à   s-   € Ý œI™KœKˆŒ
Ø37ˆÔ"Ø<>ˆÔ Ø/3ˆÔÐÐr#   c                ó6   — t          j         ¦   «         | _        d S rh   )rÞ   rà   ri   s    r"   Úfinished_ir_initializationz'CompileTimer.finished_ir_initializationæ   s   € Ý%)¤Y¡[¤[ˆÔ"Ð"Ð"r#   Ú
stage_namer>   c                ó`   — | j                              |t          j        ¦   «         f¦  «         d S rh   )rá   r§   rÞ   )rG   rå   s     r"   Ústage_finishedzCompileTimer.stage_finishedé   s*   € ØÔ ×'Ò'¨µT´Y±[´[Ð(AÑBÔBÐBÐBÐBr#   úknobs.CompileTimesc                óB  — t          j         ¦   «         }| j        €|| _        n|| _        d	d„}g }| j        }| j        D ](\  }}|                     | |||¦  «        f¦  «         |}Œ)t          j         || j        | j        ¦  «        | ||| j        ¦  «        ¬¦  «        S )
Nrß   ÚfloatÚendúfloat | Noner&   Úintc                ó4   — |€dS t          || z
  dz  ¦  «        S )Nr   i@B )rí   )rß   rë   s     r"   ÚdeltazCompileTimer.end.<locals>.deltaó   s#   € Øˆ{Ø�qÝ˜˜e™ wÑ.Ñ/Ô/Ð/r#   )Úir_initializationÚlowering_stagesÚstore_results)rß   rê   rë   rì   r&   rí   )rÞ   rà   râ   rá   r§   r   ÚCompileTimesrß   )rG   Ú	timestamprï   Úlowering_stage_durationsÚstage_startrå   Ú	stage_ends          r"   rë   zCompileTimer.endì   sÓ   € Ý”I‘K”Kˆ	ØÔ%Ð-Ø)2ˆDÔ&Ð&à%.ˆDÔ"ð	0ð 	0ð 	0ð 	0ð
 $&Ð ØÔ0ˆØ%)Ô%=ð 	$ð 	$Ñ!ˆJ˜	Ø$×+Ò+¨Z¸¸¸{ÈIÑ9VÔ9VÐ,WÑXÔXÐXØ#ˆKˆKåÔ!Ø#˜e D¤J°Ô0JÑKÔKØ4Ø˜% ¨TÔ-CÑDÔDð
ñ 
ô 
ð 	
r#   Nrl   )rå   r>   r&   r'   )r&   rè   )r7   rn   ro   rI   rä   rç   rë   r+   r#   r"   rÜ   rÜ   Þ   sh   € € € € € ð4ð 4ð 4ð 4ð1ð 1ð 1ð 1ðCð Cð Cð Cð
ð 
ð 
ð 
ð 
ð 
r#   rÜ   c                ó¦  — t           j        j        }|rt          ¦   «         }|€t          j                             ¦   «         }t          |t          ¦  «        s
J d¦   «         ‚t          |¦  «        }t          | t          ¦  «         }|rCt          | t          ¦  «        s
J d¦   «         ‚t          j        ¦   «         }t          | ||¦  «        } |                      ¦   «         }|                     t!          |pt!          ¦   «         fi |¤Ž¦  «        }t#          ¦   «         }	t%          ¦   «         › d|                      ¦   «         › d|                     ¦   «         › d|                     ¦   «         › dt          t)          |	                     ¦   «         ¦  «        ¦  «        › �	}
t-          j        |
                     d¦  «        ¦  «                             ¦   «         }t5          |¦  «        }t           j        j        }t           j        j        }t           j        j        }|r!t=          |                      ¦   «         ¦  «        nd }|r!t?          |                      ¦   «         ¦  «        nd }| j         d d…         }|› d�}| !                    |¦  «        pi }| "                    |¦  «        }t           j        j#        }|sP|�NtI          | ||¦  «        }|r9 || |j%         &                    ¦   «         || '                    ¦   «         d¬¦  «         |S ||d	œ|j(        ¥|	¥}tR          |d
<   t!          ¦   «         }| *                    ||| j+        ¦  «         tY          | -                    ¦   «         ¦  «         .                    | j/        ¦  «        }|r|dz  }t          | t          ¦  «        s<t          j        ¦   «         }t          j0        |¦  «         | 0                    |¦  «         | 1                    |¦  «        }| 2                    ¦   «         }	 |  3                    ||||¦  «        }n"# th          $ r}tk          |¦  «         ‚ d }~ww xY w|r&|› d| j/        › �}| 6                    ||¦  «        ||<   n|› d�}| 6                    ||¦  «        ||<   t           j        j7        } |r3| r1| 8                    | j9        ¦  «         tu          d| j9        › �¦  «         |r| ;                    ¦   «          tY          |                     ¦   «         ¦  «        |d …         D �])\  }!}" |"||¦  «        }#|› d|!› �}|€B| "                    dd ¦  «        x}$r)|$ <                    d|!› �¦  «        rt{          |$|!|¦  «        }#n:| >                    |¦  «        x}%r#tu          d|%› �¦  «         t{          |%|!|¦  «        }#|r|!dv r| 6                    |#|¦  «        ||<   |�| 6                    |#|¦  «         | |!k    r<| >                    |¦  «        }&|# 8                    |&¦  «         tu          d|&› �¦  «         |#}|r| ?                    |!¦  «         �Œ+| 6                    t�          jA        |t„          ¬¦  «        |d¬¦  «        ||<   | C                    ||¦  «         t           j        jD        s| E                    ¦   «          |r" || ||| '                    ¦   «         d¬¦  «         tI          | ||¦  «        S )Nz target must be of GPUTarget typez'source must be either AST or a filepathrQ   rT   é–   ú.jsonT)r{   ÚmetadataÚmetadata_groupÚtimesÚ	cache_hit)r^   ÚtargetÚtriton_versionr   r–   z.sourcezCreating new locations for Úir_overridez
Overriding kernel with file )rº   r»   Újson)ÚdefaultF)Úbinary)Fr   rÎ   ÚlistenerrÜ   r   r³   Úget_current_targetr=   r
   Úmake_backendr%   r>   r   ra   rq   rj   r:   r   r°   r^   rU   r<   rW   rX   rY   rZ   r   ÚoverrideÚdump_irÚstore_binary_onlyr   r   r8   Ú	get_groupÚgetÚalways_compileÚCompiledKernelrû   Ú_asdictrë   Ú__dict__r   Ú
add_stagesr5   ÚlistrE   r@   r6   r|   Úget_codegen_implementationÚget_module_maprf   Ú	ExceptionrÑ   ÚputÚ
use_ir_locÚcreate_location_snapshotrx   Úprinträ   rË   r¾   Úget_filerç   r  ÚdumpsÚvarsÚ	put_groupÚenable_asanÚdisable_multithreading)'r{   rÿ   rb   Úcompilation_listenerÚtimerr†   Ú	ir_sourcera   Úextra_optionsÚenv_varsr]   r^   Úfn_cache_managerÚenable_overrideÚenable_ir_dumpÚstore_only_binaryÚfn_override_managerÚfn_dump_managerÚ	file_nameÚmetadata_filenamerü   Úmetadata_pathr  Úresrû   ÚstagesÚfirst_stagerc   rd   r‚   r¿   Úir_filenamer  r6   Ú
compile_irÚnext_moduler  r½   Úir_full_names'                                          r"   Úcompiler5    s2  € Ý Ô,Ô5ÐØð Ý‘”ˆà€~Ý”×1Ò1Ñ3Ô3ˆÝ�f�iÑ(Ô(ÐLÐLÐ*LÑLÔLÐLÝ˜6Ñ"Ô"€GÝ˜s¥IÑ.Ô.Ð.€Iàð .Ý˜#�sÑ#Ô#ÐNÐNÐ%NÑNÔNÐNÝ”*‘,”,ˆÝ�s˜G WÑ-Ô-ˆà×%Ò%Ñ'Ô'€MØ×#Ò#¥D¨Ð):µD±F´FÐ$LÐ$L¸mÐ$LÐ$LÑMÔM€Gå.Ñ0Ô0€HÝ‰\Œ\Ð
jÐ
j˜CŸHšH™JœJÐ
jÐ
j¨¯ª©¬Ð
jÐ
j¸'¿,º,¹.¼.Ð
jÐ
jÍ3ÍvÐV^×VdÒVdÑVfÔVfÑOgÔOgÑKhÔKhÐ
jÐ
j€CÝŒ>˜#Ÿ*š* WÑ-Ô-Ñ.Ô.×8Ò8Ñ:Ô:€DÝ(¨Ñ.Ô.Ðõ Ô'Ô0€OÝÔ&Ô.€NÝÔ)Ô;ÐØ>MÐWÕ.¨s¯xªx©z¬zÑ:Ô:Ð:ÐSWÐØ6DÐNÕ& s§x¢x¡z¤zÑ2Ô2Ð2È$€Oð
 ”˜˜#˜”€IØ$Ð+Ð+Ð+ÐØ%×/Ò/Ð0AÑBÔBÐHÀb€NØ"×&Ò&Ð'8Ñ9Ô9€MÝÔ&Ô5€NØð ˜mÐ7å˜S .°$Ñ7Ô7ˆØð 	Ø Ð ØØœ×-Ò-Ñ/Ô/Ø-Ø—i’i‘k”kØðñ ô ð ð ˆ
ð Øðð ð Ô
ðð ð	€Hõ "-€HÐÑå‰VŒV€FØ×Ò�v˜w¨¬Ñ5Ô5Ð5Ý�v—{’{‘}”}Ñ%Ô%×+Ò+¨C¬GÑ4Ô4€Kàð Ø�qÑˆõ �c�8Ñ$Ô$ð 'Ý”*‘,”,ˆÝ
Ô˜Ñ!Ô!Ð!Ø×Ò˜gÑ&Ô&Ð&à×4Ò4°WÑ=Ô=€KØ×'Ò'Ñ)Ô)€JðØ—’˜W k°:¸wÑGÔGˆˆøÝð ð ð Ý˜ÑÔÐØøøøøðøøøð ð PØ"Ð.Ð. S¤WÐ.Ð.ˆØ&6×&:Ò&:¸6À;Ñ&OÔ&Oˆ�{Ñ#Ð#à"Ð+Ð+Ð+ˆØ&6×&:Ò&:¸6À;Ñ&OÔ&Oˆ�{Ñ#åÔ"Ô-€JØð 8�Zð 8Ø×'Ò'¨¬Ñ1Ô1Ð1ÝÐ6¨C¬HÐ6Ð6Ñ7Ô7Ð7àð +Ø×(Ò(Ñ*Ô*Ð*Ý §¢¡¤Ñ/Ô/°°°Ô=ð &ñ &‰ˆˆZØ �j ¨Ñ2Ô2ˆØ"Ð*Ð* SÐ*Ð*ˆØÐ&ð  (Ÿ|š|¨M¸4Ñ@Ô@Ð@�ð ?Àk×FZÒFZÐ[dÐ_bÐ[dÐ[dÑFeÔFeð ?Ý# K°°gÑ>Ô>�øØ-×6Ò6°{ÑCÔCÐCˆYð 	9ÝÐ>°9Ð>Ð>Ñ?Ô?Ð?Ý 	¨3°Ñ8Ô8ˆKà!ð 	Y sÐ.HÐ'HÐ'HØ*:×*>Ò*>¸{ÈKÑ*XÔ*XˆN˜;Ñ'ØÐ&Ø×Ò ¨[Ñ9Ô9Ð9à˜ÒÐØ+×4Ò4°[ÑAÔAˆLØ×0Ò0°Ñ>Ô>Ð>ÝÐ>°Ð>Ð>Ñ?Ô?Ð?ØˆØð 	&Ø× Ò  Ñ%Ô%Ð%ùà(8×(<Ò(<½T¼ZÈÕZ^Ð=_Ñ=_Ô=_ÐarØDIð )=ñ )Kô )K€NÐ$Ñ%à×ÒÐ0°.ÑAÔAÐAõ ÔÔ(ð )Ø×&Ò&Ñ(Ô(Ð(ð ð .ØÐ ¨xÈÐ^c×^gÒ^gÑ^iÔ^iØ',ð	.ñ 	.ô 	.ð 	.õ ˜#˜~¨tÑ4Ô4Ð4s   Ï>P Ð
P6Ð!P1Ð1P6rÿ   r
   r&   r	   c                óÞ   ‡ — ˆ fd„t          j        ¦   «         D ¦   «         }t          |¦  «        dk    r*t          t          |¦  «        › d‰ j        › d|› d�¦  «        ‚ |d         ‰ ¦  «        S )Nc                óR   •— g | ]#}|j                              ‰¦  «        ¯|j         ‘Œ$S r+   )r“   Úsupports_target)r.   r   rÿ   s     €r"   rL   z make_backend.<locals>.<listcomp>—  s1   ø€ Ð[Ð[Ð[˜a¸¼
×8RÒ8RÐSYÑ8ZÔ8ZÐ[ˆqŒzÐ[Ð[Ð[r#   r   z! compatible backends for target (z) (z). There should only be one.r   )r   ÚvaluesÚlenÚRuntimeErrorr†   )rÿ   Úactivess   ` r"   r  r  –  sƒ   ø€ Ø[Ð[Ð[Ð[¥8¤?Ñ#4Ô#4Ð[Ñ[Ô[€GÝ
ˆ7�|„|�qÒÐÝÝ�7‰|Œ|ÐvÐv¸f¼nÐvÐvÐQXÐvÐvÐvñxô xð 	xàˆ7�1Œ:�fÑÔÐr#   c                  ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚLazyDictc                ó"   — || _         g | _        d S rh   )ÚdataÚextras)rG   r@  s     r"   rI   zLazyDict.__init__   s   € ØˆŒ	ØˆŒˆˆr#   c                ó€   — | j         D ]\  }}| j         ||Ž z  | _        Œ| j                              ¦   «          | j        S rh   )rA  r@  Úclear©rG   ÚfuncÚargss      r"   r  zLazyDict.get¤  sI   € Øœ+ð 	0ð 	0‰JˆD�$Øœ	 D D¨$ KÑ/ˆDŒIˆIØŒ×ÒÑÔÐØŒyÐr#   c                ó>   — | j                              ||f¦  «         d S rh   )rA  r§   rD  s      r"   ÚaddzLazyDict.addª  s"   € ØŒ×Ò˜D $˜<Ñ(Ô(Ð(Ð(Ð(r#   N)r7   rn   ro   rI   r  rH  r+   r#   r"   r>  r>  ž  sA   € € € € € ðð ð ðð ð ð)ð )ð )ð )ð )r#   r>  c                  ó   — e Zd Zd„ ZdS )ÚAsmDictc                ól   — |dk    rt          | d         ¦  «        }nt          d|z  ¦  «        ‚|| |<   |S )NÚsassrº   zUnknown key: '%s')r   ÚKeyError)rG   r]   Úvalues      r"   Ú__missing__zAsmDict.__missing__°  s@   € à�&Š=ˆ=Ý˜T 'œ]Ñ+Ô+ˆEˆEåÐ.°Ñ4Ñ5Ô5Ð5àˆˆS‰	Øˆr#   N)r7   rn   ro   rO  r+   r#   r"   rJ  rJ  ®  s#   € € € € € ðð ð ð ð r#   rJ  c                  ó6   ‡ — e Zd Zd„ Zd„ Zˆ fd„Zd„ Zd„ Zˆ xZS )r  c           	     óD  ‡— ddl m} t          d„ |                     ¦   «         D ¦   «         ¦  «        }t	          j        |                     ¦   «         ¦  «        }t          |d         ¦  «        |d<   |d         }t          |d         |d         |d         ¦  «        |d<    |d	t          t          |                     ¦   «         ¦  «        ¦  «        ¦  «        } |di |¤Ž| _        t          | j        j        ¦  «        }	|	                     | j        ¦  «        | _        || _        || _        | j        j        | _        d
„ |                     ¦   «         D ¦   «         }
|	j        Št+          ˆfd„|
D ¦   «         ¦  «        | _        | j        ‰         | _        d | _        d | _        d S )Nr   )Ú
namedtuplec              3  ód   K  — | ]+\  }}|                      d ¦  «        ¯t          |¦  «        V — Œ,dS )rú   N©rË   r   ©r.   ÚcÚps      r"   rÍ   z*CompiledKernel.__init__.<locals>.<genexpr>¿  s>   è è € Ð`Ð`©$¨!¨QÈAÏJÊJÐW^ÑL_ÔL_Ð`�d 1™gœgÐ`Ð`Ð`Ð`Ð`Ð`r#   Úcluster_dimsrÿ   r†   ÚarchÚ	warp_sizeÚKernelMetadatac                ó\   — g | ])\  }}|                      d ¦  «        °t          |¦  «        ‘Œ*S )rú   rT  rU  s      r"   rL   z+CompiledKernel.__init__.<locals>.<listcomp>Í  s4   € Ð[Ð[Ð[¡  AÀqÇzÂzÐRYÑGZÔGZÐ[•T˜!‘W”WÐ[Ð[Ð[r#   c                ó¢   •— i | ]K}|j         d d…         |j         d d…         ‰k    r|                     ¦   «         n|                     ¦   «         “ŒLS )r   N)ry   r¼   rz   )r.   ÚfileÚ
binary_exts     €r"   r1   z+CompiledKernel.__init__.<locals>.<dictcomp>Ï  se   ø€ ð 
ð 
ð 
àð ŒK˜˜˜ŒO°$´+¸a¸b¸b´/ÀZÒ2OÐ2O˜TŸ_š_Ñ.Ô.Ð.ÐUY×UcÒUcÑUeÔUeð
ð 
ð 
r#   r+   )ÚcollectionsrR  Únextr<   r  Úloadsrz   rA   r
   rU   r  rE   rû   r  rÿ   Úpack_metadataÚpacked_metadatar{   r^   r8   r_  rJ  ÚasmÚkernelr‚   Úfunction)rG   r{   rü   r^   rR  r-  rû   rÿ   r[  r†   Ú	asm_filesr_  s              @r"   rI   zCompiledKernel.__init__½  s¥  ø€ Ø*Ð*Ð*Ð*Ð*Ð*ÝÐ`Ð`°.×2FÒ2FÑ2HÔ2HÐ`Ñ`Ô`ÑaÔaˆÝ”:˜m×5Ò5Ñ7Ô7Ñ8Ô8ˆÝ#(¨°.Ô)AÑ#BÔ#Bˆ�Ñ à˜(Ô#ˆÝ& v¨iÔ'8¸&À¼.È&ÐQ\ÔJ]Ñ^Ô^ˆ�ÑØ#˜Ð$4µf½TÀ(Ç-Â-Á/Ä/Ñ=RÔ=RÑ6SÔ6SÑTÔTˆØ&˜Ð2Ð2¨Ð2Ð2ˆŒÝ˜tœ}Ô3Ñ4Ô4ˆØ&×4Ò4°T´]ÑCÔCˆÔØˆŒØˆŒ	Ø”MÔ&ˆŒ	à[Ð[¨×)=Ò)=Ñ)?Ô)?Ð[Ñ[Ô[ˆ	ØÔ'ˆ
Ýð 
ð 
ð 
ð 
à!ð
ñ 
ô 
ñ ô ˆŒð ”h˜zÔ*ˆŒð ˆŒØˆŒˆˆr#   c                ó2  — | j         �d S t          j                             ¦   «         }t          j                             | j        | j        ¦  «        | _        t          |¦  «        }| j        j	        |k    rt          | j        j	        |d¦  «        ‚t          | j        d¦  «        r9| j        j        �-d}| j        j        |k    rt          | j        j        |d¦  «        ‚t          j        j                             | j        | j        | j        j	        |¦  «        \  | _         | _        | _        | _        | _        t          j                             ¦   «         j        }| j        j        |z  | j        k    r#t          | j        j        |z  | j        d¦  «        ‚d S )Nzshared memoryÚ	tmem_sizei   ztensor memoryÚthreads)r‚   r   r³   Úget_current_deviceÚlauncher_clsr{   rû   Úrunr²   Úsharedr   rO   rj  r´   Úload_binaryr8   rf  rg  Ún_regsÚn_spillsÚn_max_threadsr  rZ  r�   )rG   r¶   Ú
max_sharedÚmax_tmem_sizerZ  s        r"   Ú_init_handleszCompiledKernel._init_handlesÚ  s\  € ØŒ;Ð"ØˆFÝ”×1Ò1Ñ3Ô3ˆå”=×-Ò-¨d¬h¸¼ÑFÔFˆŒå# FÑ+Ô+ˆ
ØŒ=Ô *Ò,Ð,Ý  ¤Ô!5°zÀ?ÑSÔSÐSÝ�4”= +Ñ.Ô.ð 	^°4´=Ô3JÐ3VàˆMØŒ}Ô&¨Ò6Ð6Ý$ T¤]Ô%<¸mÈ_Ñ]Ô]Ð]åU[ÔUbÔUh×UtÒUtØŒI�t”{ D¤MÔ$8¸&ñVBô VBÑRˆŒ�T”] D¤K°´ÀÔ@Rå”M×4Ò4Ñ6Ô6Ô@ˆ	ØŒ=Ô" YÑ.°Ô1CÒCÐCÝ  ¤Ô!8¸9Ñ!DÀdÔFXÐZcÑdÔdÐdð DÐCr#   c                óz   •— |dk    r|                       ¦   «          t          ¦   «                              |¦  «        S )Nrn  )rv  ÚsuperÚ__getattribute__)rG   r8   Ú	__class__s     €r"   ry  zCompiledKernel.__getattribute__ð  s6   ø€ Ø�5Š=ˆ=Ø×ÒÑ Ô Ð Ý‰wŒw×'Ò'¨Ñ-Ô-Ð-r#   c                óŠ  — t           j        j        €d S t          | j        | j        |dœ¦  «        }t          | j        t          ¦  «        r| j        j	        j
        €|S i }d}t          | j        j	        j        ¦  «        D ]\  }}||         ||<   |dz  }Œ|                     | j        j	        j
        || j        |f¦  «         |S )N)r8   rg  Ústreamr   r   )r   ÚruntimeÚlaunch_enter_hookr>  r8   rg  r=   r{   r%   r3   Úlaunch_metadatarC   r?   rH  rû   )	rG   Úgridr|  rF  ÚretÚarg_dictÚarg_idxÚiÚarg_names	            r"   r  zCompiledKernel.launch_metadataõ  sÁ   € ÝŒ=Ô*Ð2Ø�4Ý ¤	°t´}ÐPVÐWÐWÑXÔXˆÝ˜$œ(¥IÑ.Ô.ð 	°$´(´+Ô2MÐ2UØˆJØˆØˆÝ$ T¤X¤[Ô%:Ñ;Ô;ð 	ð 	‰KˆAˆxØ!% g¤ˆH�XÑØ�q‰LˆGˆGØ�Š�””Ô+¨d°D´MÀ8Ð-LÑMÔMÐMØˆ
r#   c                óD   ‡ ‡— ‰                       ¦   «          d dœˆˆ fd„
}|S )N)r|  c                óD  •— | €=t           j                             ¦   «         }t           j                             |¦  «        }  ‰j        ‰| g|¢R Ž } ‰j        ‰d         ‰d         ‰d         | ‰j        ‰j        |t          j	        j
        t          j	        j        g	|¢R Ž  d S )Nr   r   r   )r   r³   rl  Úget_current_streamr  rn  rg  rd  r   r}  r~  Úlaunch_exit_hook)r|  rF  r¶   r  r€  rG   s       €€r"   Úrunnerz*CompiledKernel.__getitem__.<locals>.runner  s¯   ø€ Øˆ~Ýœ×9Ò9Ñ;Ô;�Ýœ×9Ò9¸&ÑAÔA�Ø2˜dÔ2°4¸ÐGÀ$ÐGÐGÐGˆOØˆDŒH�T˜!”W˜d 1œg t¨A¤w°¸¼ÀtÔG[Ð]lÝ”]Ô4µe´mÔ6Tð]ØW[ð]ð ]ð ]ð ]ð ]ð ]r#   )rv  )rG   r€  rŠ  s   `` r"   Ú__getitem__zCompiledKernel.__getitem__  sP   øø€ Ø×ÒÑÔÐà!%ð 	]ð 	]ð 	]ð 	]ð 	]ð 	]ð 	]ð 	]ð ˆr#   )	r7   rn   ro   rI   rv  ry  r  r‹  Ú__classcell__)rz  s   @r"   r  r  »  sw   ø€ € € € € ðð ð ð:eð eð eð,.ð .ð .ð .ð .ð
ð ð ðð ð ð ð ð ð r#   r  )r¿   rÀ   rk   )rÿ   r
   r&   r	   )3Ú
__future__r   rW   r  Ú_C.libtritonr   r   r   Úbackends.compilerr   r	   r
   r   r   r   Úruntime.autotunerr   Úruntime.cacher   r   r   Úruntime.driverr   Útools.disasmr   Úpathlibr   r   Ú	functoolsrš   r¤   rÞ   Úptx_prototype_patternr}   Úptx_arg_type_patternr€   r   r%   rq   Ú	lru_cacher°   r²   r¾   rÑ   rÜ   r5  r  r>  r:   rJ  r  r+   r#   r"   ú<module>r™     s  ðØ "Ð "Ð "Ð "Ð "Ð "Ø €€€Ø €€€Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !Ø .Ð .Ð .Ð .Ð .Ð .Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø 	€	€	€	Ø Ð Ð Ð Ø 	€	€	€	Ø Ð Ð Ð Ø €€€ð YÐ à	Ð ðÐ ð ,Ð à	ÐðÐ ð

ð 
ð 
ð#ð #ð #ð #ð #ñ #ô #ð #ðL'ð 'ð 'ð 'ð 'ñ 'ô 'ð 'ðT €ÔÑÔð 1ð  1ñ Ôð 1ðF €ÔÑÔðOð Oñ ÔðOð,ð ,ð ,ð#$ð #$ð #$ð #$ðL$
ð $
ð $
ð $
ð $
ñ $
ô $
ð $
ðNN5ð N5ð N5ð N5ðbð ð ð ð)ð )ð )ð )ð )ñ )ô )ð )ð 
ð 
ð 
ð 
ð 
ˆdñ 
ô 
ð 
ðSð Sð Sð Sð Sñ Sô Sð Sð Sð Sr#   