ó
    “~iDP  ã                  óÈ  • S SK Jr  S SKrS SKrSSKJrJr  SSKJr  SSKJ	r	  SSKJ
r
Jr  SSKJrJr  SS	KJr  SS
KJrJrJrJr  SSKJr  SSKJr  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r!S\!0r"Sr#S\#0r$S r% " S S5      r& " S S5      r'\RP                  " 5       S 5       r)S r*S$S jr+ " S S5      r,S%S jr-S&S jr. " S S5      r/ " S S \05      r1S! r2 " S" S#5      r3g)'é    )ÚannotationsNé   )Úget_cache_invalidating_env_varsÚir)Úbackends)ÚLanguage)ÚBaseBackendÚ	GPUTarget)Ú__version__Úknobs)ÚOutOfResources)Úget_cache_managerÚget_dump_managerÚget_override_managerÚget_cache_key)Údriver)Úget_sass)ÚPathz=\.(?:visible|extern)\s+\.(?:entry|func)\s+(\w+)\s*\(([^)]*)\)Úptxz\.param\s+\.(\w+)c                óÚ   • [         R                  " SU 5      n[         R                  " SU 5      nUb  g[         R                  " SSU 5      n Ub  S[        UR	                  S5      5      -   $ U $ )Nz!tt\.ptr<([^,]+)ztt.nv_tma_desc = 1Ú	nvTmaDescz {[^}]+}Ú Ú*é   )ÚreÚsearchÚsubÚconvert_type_reprÚgroup)ÚxÚmatchÚtmas      ÚU/home/mande/repo/quber/.venv/lib/python3.13/site-packages/triton/compiler/compiler.pyr   r   '   sd   € ô �IŠIÐ)¨1Ó-€EÜ
�)Š)Ð)¨1Ó
-€CØ
�ØÜ
�Šˆ{˜B Ó"€AØÑØÔ& u§{¡{°1£~Ó6Ñ6Ð6Ø€Hó    c                  ó8   • \ rS rSrSS	S jjrS rS
S jrS rSrg)Ú	ASTSourceé4   Nc                ó.  • Xl         [        R                  U l        SU l        UR
                  U l        X l        [        5       U l	        Ubq  UR                  5        H]  u  pV[        U[        5      (       a  UR                  R                  U5      4OUn[        U[        5      (       d   eX`R                  U'   M_     U=(       d
    [        5       U l        U R                  R#                  5        H#  n[        U[        5      (       a  M  [%        S5      e   g )NÚttirzSignature keys must be string)Úfnr   ÚTRITONÚlanguageÚextÚ__name__ÚnameÚ	signatureÚdictÚ	constantsÚitemsÚ
isinstanceÚstrÚ	arg_namesÚindexÚtupleÚattrsÚkeysÚ	TypeError)Úselfr*   r0   Ú
constexprsr9   ÚkÚvs          r#   Ú__init__ÚASTSource.__init__6   sÐ   € ØŒÜ Ÿ™ˆŒØˆŒØ—K‘KˆŒ	Ø"ŒÜ›ˆŒØÑ!Ø"×(Ñ(Ö*‘�Ü1;¸A¼s×1CÑ1C�R—\‘\×'Ñ'¨Ó*Ñ-È�Ü! !¤U×+Ñ+Ð+Ð+Ø$%—‘˜qÓ!ñ +ð —_œd›fˆŒ
Ø—‘×$Ñ$Ö&ˆAÜ˜a¤×%Ó%ÜÐ ?Ó@Ð@ò 'r$   c           	     óö  • [        U R                  R                  5       5       VVs/ s H  u  pUPM	     nnnS nSR                  [        U R                  R                  5       5       VVs/ s H  u  pU" U5      PM     snn5      nU R
                  R                   S[        U R                  5       SU SU 3n[        R                  " UR                  S5      5      R                  5       $ s  snnf s  snnf )Nc                óR   • [        U S5      (       a  U R                  $ [        U 5      $ )NÚ	cache_key)ÚhasattrrD   r5   )r    s    r#   Ú<lambda>Ú ASTSource.hash.<locals>.<lambda>I   s    € ¬7°1°k×+BÑ+B˜AŸK™KÐNÌÈAËÐNr$   Ú-úutf-8)Úsortedr0   r3   Újoinr2   r*   rD   r5   r9   ÚhashlibÚsha256ÚencodeÚ	hexdigest)r<   r>   r?   Ú
sorted_sigÚget_keyÚconstants_keyÚkeys          r#   ÚhashÚASTSource.hashG   sÂ   € Ü$*¨4¯>©>×+?Ñ+?Ó+AÔ$BÔCÒ$B™D˜A“aÑ$Bˆ
ÑCÙNˆØŸ™¼ÀÇÁ×@TÑ@TÓ@VÔ9WÔ!XÒ9W±°¡'¨!¦*Ñ9WÒ!XÓYˆØ—‘×"Ñ"Ð# 1¤S¨¯©£_Ð$5°Q°z°lÀ!ÀMÀ?ÐSˆÜ�~Š~˜cŸj™j¨Ó1Ó2×<Ñ<Ó>Ð>ùó	 Dùã!Xs   §C/Á,C5
c           	     ó4   • SSK Jn  U" U R                  XX#US9$ )Nr   )Úast_to_ttir)ÚcontextÚoptionsÚcodegen_fnsÚ
module_map)Úcode_generatorrW   r*   )r<   ÚtargetrY   rZ   r[   rX   rW   s          r#   Úmake_irÚASTSource.make_irN   s   € Ý/Ù˜4Ÿ7™7 DÀ7Ø&0ñ2ð 	2r$   c                ó   • [        5       $ ©N)r1   ©r<   s    r#   Úparse_optionsÚASTSource.parse_optionsS   s	   € Ü‹vˆr$   )r9   r2   r-   r*   r,   r/   r0   )NN©ÚreturnÚNone©r]   r
   ©	r.   Ú
__module__Ú__qualname__Ú__firstlineno__r@   rT   r^   rc   Ú__static_attributes__© r$   r#   r&   r&   4   s   † öAò"?ô2õ
r$   r&   c                  ó0   • \ rS rSrS rS rSS jrS rSrg)	ÚIRSourceéW   c                óò  • Xl         [        U5      nUR                  SS  U l        [        R
                  U l        UR                  5       U l        [        R                  " U5        UR                  U5        U R                  S:X  aÀ  [        R                  " [        U R                     U R                  [        R                  5      nUR                  S5      U l        UR                  S5      n[        R"                  " [$        U R                     U5      n['        U5       VVs0 s H  u  pxU[)        U5      _M     snnU l        g [        R,                  " U R                   U5      U l        U R.                  R1                  5       n	SU	-   U l        U R.                  R3                  U	5      n
U R.                  R5                  U
5      n['        U5       VVs0 s H  u  pxXx_M	     snnU l        g s  snnf s  snnf )Nr   r   r   Ú@)Úpathr   Úsuffixr-   r   r+   r,   Ú	read_textÚsrcr   Úload_dialectsr   r   Úprototype_patternÚ	MULTILINEr   r/   ÚfindallÚarg_type_patternÚ	enumerater   r0   Úparse_mlir_moduleÚmoduleÚget_entry_func_nameÚget_functionÚget_function_signature)r<   rt   rX   Úbackendr!   r0   Útypesr>   ÚtyÚfn_nameÚfuncOpÚfunc_tys               r#   r@   ÚIRSource.__init__Y   sr  € ØŒ	Ü�D‹zˆØ—;‘;˜q˜r�?ˆŒÜ Ÿ™ˆŒØ—>‘>Ó#ˆŒÜ
×Ò˜Ô!Ø×Ñ˜gÔ&ð �8‰8�uÓÜ—I’IÔ/°·±Ñ9¸4¿8¹8ÄRÇ\Á\ÓRˆEØŸ™ A›ˆDŒIØŸ™ A›ˆIÜ—J’JÔ/°·±Ñ9¸9ÓEˆEÜDMÈeÔDTÔUÒDT¹5¸1˜aÔ!2°2Ó!6Ò6ÑDTÒUˆD�Nä×.Ò.¨t¯y©y¸'ÓBˆDŒKØ—k‘k×5Ñ5Ó7ˆGØ˜g™ˆDŒIØ—[‘[×-Ñ-¨gÓ6ˆFØ—k‘k×8Ñ8¸Ó@ˆGÜ1:¸7Ô1CÔDÒ1C©¨˜ašeÑ1CÒDˆD�Nùó Vùó Es   Ä%G-ÇG3c                ó|   • [         R                  " U R                  R                  S5      5      R	                  5       $ )NrI   )rL   rM   rw   rN   rO   rb   s    r#   rT   ÚIRSource.hashr   s'   € Ü�~Š~˜dŸh™hŸo™o¨gÓ6Ó7×AÑAÓCÐCr$   c                ó:   • XPR                   l        U R                   $ ra   )r   rX   )r<   r]   rY   rZ   r[   rX   s         r#   r^   ÚIRSource.make_iru   s   € Ø%�‰ÔØ�{‰{Ðr$   c                óÐ   • U R                   S:X  aM  U R                  R                  S5      nUc   S5       eSU0nU R                  R                  S5      nUb  X2S'   U$ [        5       $ )NÚttgirzttg.num-warpsz'Unable to parse ttg.num-warps attributeÚ	num_warpszttg.num-ctasÚnum_ctas)r-   r   Úget_int_attrr1   )r<   r�   rY   r‘   s       r#   rc   ÚIRSource.parse_optionsy   sl   € Ø�8‰8�wÓØŸ™×0Ñ0°ÓAˆIØÑ(ÐSÐ*SÓSÐ(Ø" IÐ.ˆGØ—{‘{×/Ñ/°Ó?ˆHØÑ#Ø&.˜
Ñ#ØˆNÜ‹vˆr$   )r-   r,   r   r/   rt   r0   rw   Nrh   ri   rn   r$   r#   rp   rp   W   s   † òEò2Dôõ	r$   rp   c                óZ   • [         R                  R                  R                  U 5      S   $ )NÚmax_shared_mem)r   ÚactiveÚutilsÚget_device_properties)Údevices    r#   r•   r•   …   s#   € ä�=‰=×Ñ×4Ñ4°VÓ<Ð=MÑNÐNr$   c                óø   • US:X  d  US:X  a  [         R                  " X5      nX#l        U$ US:X  d  US:X  d  US:X  a  [        U 5      R	                  5       $ US:X  d  US:X  a  [        U 5      R                  5       $ g )Nr)   r�   Úllirr   ÚamdgcnÚcubinÚhsaco)r   r~   rX   r   rv   Ú
read_bytes)Ú	full_namer-   rX   r   s       r#   Úparser¡   Š   st   € Ø
ˆfƒ}˜˜w›Ü×%Ò% iÓ9ˆØ ŒØˆØ
ˆfƒ}˜˜u›¨¨x«Ü�I‹×(Ñ(Ó*Ð*Ø
ˆgƒ~˜ ›Ü�I‹×)Ñ)Ó+Ð+ð (r$   c                óX  ^• [         R                  R                  (       a  gU R                  b  [	        U R                  5        U R
                  b  [	        U R
                  5        SS/nU Vs/ s H"  o"R                  S[        R                  5      PM$     nnU R                  m/ nTb<  [        U4S jU 5       5      (       d  UR                  T5        TR                  mTb  M<  [        X3SS 5       H  u  pEXTl        M     U(       d  SU l	        gSUS   l        US   U l	        gs  snf )	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.pyÚ/c              3  ó”   >#   • U  H=  nTR                   R                  R                  R                  U5      (       d  M9  Uv •  M?     g 7fra   )Útb_frameÚf_codeÚco_filenameÚendswith)Ú.0ÚfÚtbs     €r#   Ú	<genexpr>Ú#filter_traceback.<locals>.<genexpr>­   s1   øé € ÐVši˜¨2¯;©;×+=Ñ+=×+IÑ+I×+RÑ+RÐST×+U—1‘1šiùs
   ƒ8A¿	Ar   éÿÿÿÿr   )r   ÚcompilationÚfront_end_debuggingÚ	__cause__Úfilter_tracebackÚ__context__ÚreplaceÚosÚsepÚ__traceback__ÚanyÚappendÚtb_nextÚzip)ÚeÚ	BAD_FILESÚbad_fileÚframesÚ	cur_frameÚ
next_framer«   s         @r#   r²   r²   •   s  ø€ ô ×Ñ×,×,Øà‡{�{ÑÜ˜Ÿ™Ô%Ø‡}�}Ñ Ü˜Ÿ™Ô'ð 	-Øð€Iñ @IÓIºy°8×!Ñ! #¤r§v¡vÖ.¹y€IÐIà	
�‰€BØ€FØ
‰.ÜÔV™iÓV×VÑVØ�M‰M˜"ÔØ�Z‰Zˆð ‹.ô
 $' v°a°b¨zÖ#:ÑˆØ&Öñ $;ö Øˆ�à!ˆˆr‰
ÔØ  ™)ˆ�ùò! Js   Á.)D'c                  ó<   • \ rS rSrSS jrSS jrS	S jrS
S jrSrg)ÚCompileTimeré»   c                ób   • [         R                   " 5       U l        S U l        / U l        S U l        g ra   )ÚtimeÚstartÚir_initialization_endÚlowering_stage_endsÚstore_results_endrb   s    r#   r@   ÚCompileTimer.__init__½   s'   € Ü ŸIšI›KˆŒ
Ø37ˆÔ"Ø<>ˆÔ Ø/3ˆÕr$   c                ó8   • [         R                   " 5       U l        g ra   )rÆ   rÈ   rb   s    r#   Úfinished_ir_initializationÚ'CompileTimer.finished_ir_initializationÃ   s   € Ü%)§Y¢Y£[ˆÕ"r$   c                ód   • U R                   R                  U[        R                  " 5       45        g ra   )rÉ   r¹   rÆ   )r<   Ú
stage_names     r#   Ústage_finishedÚCompileTimer.stage_finishedÆ   s!   € Ø× Ñ ×'Ñ'¨´T·Y²Y³[Ð(AÕBr$   c                óf  • [         R                   " 5       nU R                  c  Xl        OXl        SS jn/ nU R                  nU R                   H  u  pVUR	                  XR" XF5      45        UnM!     [
        R                  " U" U R                  U R                  5      UU" X@R                  5      S9$ )Nc                ó*   • Uc  g[        X-
  S-  5      $ )Nr   i@B )Úint)rÇ   Úends     r#   ÚdeltaÚCompileTimer.end.<locals>.deltaÐ   s   € Ø‰{ØÜ˜™ wÑ.Ó/Ð/r$   )Úir_initializationÚlowering_stagesÚstore_results)rÇ   ÚfloatrÖ   zfloat | Nonerf   rÕ   )rÆ   rÈ   rÊ   rÉ   r¹   r   ÚCompileTimesrÇ   )r<   Ú	timestampr×   Úlowering_stage_durationsÚstage_startrÐ   Ú	stage_ends          r#   rÖ   ÚCompileTimer.endÉ   s§   € Ü—I’I“Kˆ	Ø×%Ñ%Ñ-Ø)2Õ&à%.Ô"ô	0ð
 $&Ð Ø×0Ñ0ˆØ%)×%=Ô%=Ñ!ˆJØ$×+Ñ+¨Z¸¸{Ó9VÐ,WÔXØ#ŠKñ &>ô ×!Ò!Ù# D§J¡J°×0JÑ0JÓKØ4Ù ×-CÑ-CÓDñ
ð 	
r$   )rÈ   rÉ   rÇ   rÊ   Nre   )rÐ   r5   rf   rg   )rf   zknobs.CompileTimes)	r.   rj   rk   rl   r@   rÍ   rÑ   rÖ   rm   rn   r$   r#   rÃ   rÃ   »   s   † ô4ô1ôC÷
r$   rÃ   c                ó‚  • [         R                  R                  nU(       a
  [        5       nUc  [        R
                  R                  5       n[        U[        5      (       d   S5       e[        U5      n[        U [        5      (       + nU(       a=  [        U [        5      (       d   S5       e[        R                  " 5       n[        XU5      n U R                  5       n	UR                  [!        U=(       d
    [!        5       40 U	D65      nUc
  [#        5       OUn
[%        XX*S9n[&        R(                  " UR+                  S5      5      R-                  5       n[/        U5      n[         R                  R0                  n[         R                  R2                  n[         R                  R4                  nU(       a  [7        U R9                  5       5      OS nU(       a  [;        U R9                  5       5      OS nU R<                  S S nU S3nUR?                  U5      =(       d    0 nURA                  U5      n[         R                  RB                  nU(       dI  UbF  [E        U UU5      nU(       a0  U" U URF                  RI                  5       UWRK                  5       SS9  U$ UUS	.URL                  EU
En[N        US
'   [!        5       nURQ                  UX RR                  5        [U        URW                  5       5      RY                  U RZ                  5      nU(       a  US-  n[        U [        5      (       d<  [        R                  " 5       n[        R\                  " U5        UR]                  U5        UR_                  U5      nURa                  5       n U Rc                  XUUW5      nU(       a'  U SU RZ                   3n URi                  UU 5      UU '   OU S3n URi                  UU 5      UU '   [         R                  Rj                  n!U(       a:  U!(       a3  URm                  U Rn                  5        [q        SU Rn                   35        U(       a  WRs                  5         [U        URu                  5       5      US   GH=  u  n"n#U#" UU5      n$U SU" 3n Uc@  URA                  SS 5      =n%(       a&  U%Rw                  SU" 35      (       a  [y        U%U"U5      n$O3UR{                  U 5      =n&(       a  [q        SU& 35        [y        U&U"U5      n$U(       a  U"S;   a  URi                  U$U 5      UU '   Ub8  URi                  U$U 5        U"S:X  a   [}        U$5      n'URi                  U'US-   5        U!U":X  a0  UR{                  U 5      n(U$Rm                  U(5        [q        SU( 35        U$nU(       d  GM,  WR                  U"5        GM@     URi                  [€        R‚                  " U[„        S9USS9UU'   UR‡                  UU5        U(       a  U" U UUWRK                  5       SS9  [E        U UU5      $ ! [d         a  n[g        U5        e S nAff = f)Nz target must be of GPUTarget typez'source must be either AST or a filepath)Úenv_varsrI   é–   ú.jsonT)rw   ÚmetadataÚmetadata_groupÚtimesÚ	cache_hit)rT   r]   Útriton_versionr   Ú.z.sourcezCreating new locations for Úir_overridez
Overriding kernel with file )r�   rž   Újsonr�   z.sass)ÚdefaultF)Úbinary)Dr   r¯   ÚlistenerrÃ   r   r–   Úget_current_targetr4   r
   Úmake_backendr&   r5   r   rX   rp   rc   r1   r   r   rL   rM   rN   rO   r   ÚoverrideÚdump_irÚstore_binary_onlyr   rT   r   r/   Ú	get_groupÚgetÚalways_compileÚCompiledKernelrç   Ú_asdictrÖ   Ú__dict__r   Ú
add_stagesr,   Úlistr:   r7   r-   rx   Úget_codegen_implementationÚget_module_mapr^   Ú	Exceptionr²   ÚputÚ
use_ir_locÚcreate_location_snapshotrt   ÚprintrÍ   r3   r¨   r¡   Úget_filer   rÑ   rî   ÚdumpsÚvarsÚ	put_group))rw   r]   rY   Ú	_env_varsÚcompilation_listenerÚtimerrƒ   Ú	ir_sourcerX   Úextra_optionsrä   rS   rT   Ú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_stagerZ   r[   r   r¼   Úir_filenamer  r-   Ú
compile_irÚnext_modulerí   r    ÚsassÚir_full_names)                                            r#   Úcompiler   â   s’  € Ü ×,Ñ,×5Ñ5ÐÞÜ“ˆà�~Ü—‘×1Ñ1Ó3ˆÜ�fœi×(Ñ(ÐLÐ*LÓLÐ(Ü˜6Ó"€GÜ˜s¤IÓ.Ô.€IæÜ˜#œs×#Ñ#ÐNÐ%NÓNÐ#Ü—*’*“,ˆÜ�s WÓ-ˆà×%Ñ%Ó'€MØ×#Ñ#¤D¨×):´D³FÑ$L¸mÑ$LÓM€Gà4=Ñ4EÔ.Ô0È9€HÜ
˜ gÑ
A€CÜ�>Š>˜#Ÿ*™* WÓ-Ó.×8Ñ8Ó:€DÜ(¨Ó.Ðô ×'Ñ'×0Ñ0€OÜ×&Ñ&×.Ñ.€NÜ×)Ñ)×;Ñ;ÐÞ>MÔ.¨s¯x©x«zÔ:ÐSWÐÞ6DÔ& s§x¡x£zÔ2È$€Oð
 —‘˜˜#�€IØ$˜+ UÐ+ÐØ%×/Ñ/Ð0AÓB×HÀb€NØ"×&Ñ&Ð'8Ó9€MÜ×&Ñ&×5Ñ5€NÞ˜mÑ7ä˜S .°$Ó7ˆÞÙ ØØŸ™×-Ñ-Ó/Ø-Ø—i‘i“kØòð ˆ
ð Øñð ×
Ñ
ðð ð	€Hô "-€HÐÑä‹V€FØ×Ñ�v˜w¯©Ô5Ü�v—{‘{“}Ó%×+Ñ+¨C¯G©GÓ4€KæØ�qÑˆô �cœ8×$Ñ$Ü—*’*“,ˆÜ
×Ò˜Ô!Ø×Ñ˜gÔ&à×4Ñ4°WÓ=€KØ×'Ñ'Ó)€JðØ—‘˜V¨k¸:ÀwÓOˆö
 Ø"˜ 1 S§W¡W IÐ.ˆØ&6×&:Ñ&:¸6À;Ó&Oˆ�{Ò#à"˜ 7Ð+ˆØ&6×&:Ñ&:¸6À;Ó&Oˆ�{Ñ#ä×"Ñ"×-Ñ-€JÞ–ZØ×'Ñ'¨¯©Ô1ÜÐ+¨C¯H©H¨:Ð6Ô7æØ×(Ñ(Ô*Ü §¡£Ó/°°Ô=‰ˆˆZÙ  ¨Ó2ˆØ"˜ 1 S EÐ*ˆØÑ&ð  (Ÿ|™|¨M¸4Ó@Ð@�Õ@Àk×FZÑFZÐ]^Ð_bÐ^cÐ[d×FeÑFeÜ# K°°gÓ>�øØ-×6Ñ6°{ÓCÐCˆYÕCÜÐ2°9°+Ð>Ô?Ü 	¨3°Ó8ˆKæ! sÐ.HÓ'HØ*:×*>Ñ*>¸{ÈKÓ*XˆN˜;Ñ'ØÑ&Ø×Ñ ¨[Ô9Ø�g‹~Ü Ó,�Ø×#Ñ# D¨)°gÑ*=Ô>à˜ÓØ+×4Ñ4°[ÓAˆLØ×0Ñ0°Ô>ÜÐ/°¨~Ð>Ô?ØˆßÑØ× Ñ  ×%ñ5 >ð8 )9×(<Ñ(<¼T¿ZºZÈÔZ^Ñ=_ÐarØDIð )=ð )K€NÐ$Ñ%à×ÑÐ0°.ÔAö Ù ¨xÈÐ^c×^gÑ^gÓ^iØ',ò	.ô ˜#˜~¨tÓ4Ð4øôo ó Ü˜ÔØûðús   ÎX# Ø#
X>Ø-X9Ø9X>c                ó.  • [         R                  " 5        Vs/ s H0  oR                  R                  U 5      (       d  M$  UR                  PM2     nn[	        U5      S:w  a'  [        [	        U5       SU R                   SU S35      eUS   " U 5      $ s  snf )Nr   z! compatible backends for target (z) (z). There should only be one.r   )r   ÚvaluesÚcompilerÚsupports_targetÚlenÚRuntimeErrorrƒ   )r]   r    Úactivess      r#   ró   ró   k  sˆ   € Ü#+§?¢?Ô#4Ó[Ò#4˜a¿
¹
×8RÑ8RÐSY×8Z‹zˆq�zŒzÑ#4€GÐ[Ü
ˆ7ƒ|�qÓÜÜ�7‹|ˆnÐ=¸f¿n¹nÐ=MÈSÐQXÐPYÐYuÐvóxð 	xà�1Š:�fÓÐùò	 \s
   ˜#B¿Bc                  ó&   • \ rS rSrS rS rS rSrg)ÚLazyDictis  c                ó   • Xl         / U l        g ra   ©ÚdataÚextras)r<   r,  s     r#   r@   ÚLazyDict.__init__u  s   € ØŒ	Øˆ�r$   c                ó¦   • U R                    H  u  pU R                  U" U6 -  U l        M     U R                   R                  5         U R                  $ ra   )r-  r,  Úclear©r<   ÚfuncÚargss      r#   rø   ÚLazyDict.gety  s@   € ØŸ+œ+‰JˆDØŸ	™	¡D¨$ KÑ/ˆDŽIñ &à�‰×ÑÔØ�y‰yÐr$   c                ó<   • U R                   R                  X45        g ra   )r-  r¹   r1  s      r#   ÚaddÚLazyDict.add  s   € Ø�‰×Ñ˜D˜<Õ(r$   r+  N)r.   rj   rk   rl   r@   rø   r6  rm   rn   r$   r#   r)  r)  s  s   † òòõ)r$   r)  c                  ó   • \ rS rSrS rSrg)ÚAsmDictiƒ  c                óT   • US:X  a  [        U S   5      nO[        SU-  5      eX U'   U$ )Nr  r�   zUnknown key: '%s')r   ÚKeyError)r<   rS   Úvalues      r#   Ú__missing__ÚAsmDict.__missing__…  s4   € à�&‹=Ü˜T '™]Ó+‰EäÐ.°Ñ4Ó5Ð5àˆS‰	Øˆr$   rn   N)r.   rj   rk   rl   r=  rm   rn   r$   r#   r9  r9  ƒ  s   † õr$   r9  c                ó.   • [         R                  " U 5      era   )ÚcopyÚdeepcopy)Úerrr3  Úkwargss      r#   Ú_raise_errorrD  �  s   € Ü
�-Š-˜Ó
Ðr$   c                  ó<   • \ rS rSrS rS r\S 5       rS rS r	Sr
g)	rú   i”  c           	     óâ  • SSK Jn  [        S UR                  5        5       5      n[        R
                  " UR                  5       5      nUS   n[        US   US   US   5      US'   U" S[        [        UR                  5       5      5      5      nU" S0 UD6U l        [        U R                  R                  5      n	U	R                  U R                  5      U l        Xl        X0l        U R                  R$                  U l        UR                  5        V
Vs/ s H(  u  p«U
R'                  S	5      (       a  M  [)        U5      PM*     nn
nU	R*                  n[-        U Vs0 s HD  nUR.                  S
S  UR.                  S
S  U:X  a  UR1                  5       OUR                  5       _MF     sn5      U l        X l        U R2                  U   U l        S U l        S U l        S U l        g s  snn
f s  snf )Nr   )Ú
namedtuplec              3  ól   #   • U  H*  u  pUR                  S 5      (       d  M  [        U5      v •  M,     g7f)ræ   N)r¨   r   )r©   ÚcÚps      r#   r¬   Ú*CompiledKernel.__init__.<locals>.<genexpr>˜  s(   é € Ð`Ò2H©$¨!ÈAÏJÉJÐW^×L_›gœd 1Ÿg˜gÒ2Hùs   ‚4¢4r]   rƒ   ÚarchÚ	warp_sizeÚKernelMetadataræ   r   rn   )ÚcollectionsrG  Únextr3   rî   Úloadsrv   r
   rJ   rþ   r:   rç   ró   r]   Úpack_metadataÚpacked_metadatarw   rT   r/   r¨   r   Ú
binary_extr9  ru   rŸ   Úasmrè   Úkernelr   ÚfunctionÚ_run)r<   rw   rè   rT   rG  r  rç   r]   rN  rƒ   rI  rJ  Ú	asm_filesrT  Úfiles                  r#   r@   ÚCompiledKernel.__init__–  s¥  € Ý*ÜÑ`°.×2FÑ2FÔ2HÓ`ÓaˆÜ—:’:˜m×5Ñ5Ó7Ó8ˆà˜(Ñ#ˆÜ& v¨iÑ'8¸&À¹.È&ÐQ\ÑJ]Ó^ˆ�ÑÙ#Ð$4´f¼TÀ(Ç-Á-Ã/Ó=RÓ6SÓTˆÙ&Ñ2¨Ñ2ˆŒÜ˜tŸ}™}×3Ñ3Ó4ˆØ&×4Ñ4°T·]±]ÓCˆÔØŒØŒ	Ø—M‘M×&Ñ&ˆŒ	à)7×)=Ñ)=Ô)?Ô[Ò)?¡ ÀqÇzÁzÐRY×GZ“W”T˜!–WÑ)?ˆ	Ñ[Ø×'Ñ'ˆ
Üá!ó
â!�ð �K‰K˜˜ˆO°$·+±+¸a¸b°/ÀZÓ2O˜TŸ_™_Ô.ÐUY×UcÑUcÓUeÒeÙ!ñ
ó ˆŒð -ÔØ—h‘h˜zÑ*ˆŒð ˆŒØˆŒØˆ�	ùó \ùò
s   ÄG&Ä8G&ÅAG,c                ó  ^ • T R                   b  g U 4S jn[        R                  R                  5       n[        R                  R	                  T R
                  T R                  5      T l        [        U5      nT R                  R                  U:”  a'  U" [        T R                  R                  US5      5        [        T R                  S5      (       aZ  T R                  R                  bC  SnT R                  R                  U:”  a'  U" [        T R                  R                  US5      5        [        R                  R                  bU  [        R                  R                  T R                   T R                   T R"                  T R$                  T R&                  5        [        R                  R(                  R+                  T R"                  T R,                  T R                  R                  U5      u  T l         T l        T l        T l        T l        [        R                  R5                  5       R6                  nT R                  R8                  U-  T R2                  :”  a4  U" [        T R                  R8                  U-  T R2                  S5      5        [        R                  R:                  bV  [        R                  R;                  T R                   T R                   T R"                  T R$                  T R&                  5        g g )Nc                ót   >• [         R                  " U 5      n[        R                  " [        U5      Tl        U era   )r@  rA  Ú	functoolsÚpartialrD  rX  )rB  Ú
cloned_errr<   s     €r#   Úraise_Ú,CompiledKernel._init_handles.<locals>.raise_¸  s,   ø€ ô Ÿš sÓ+ˆJÜ!×)Ò)¬,¸
ÓCˆDŒIØˆIr$   zshared memoryÚ	tmem_sizei   ztensor memoryÚthreads)r   r   r–   Úget_current_deviceÚlauncher_clsrw   rç   rX  r•   Úsharedr   rE   rc  r   ÚruntimeÚkernel_load_start_hookrW  r/   rè   rT   r—   Úload_binaryrV  Ún_regsÚn_spillsÚn_max_threadsrò   rM  r�   Úkernel_load_end_hook)r<   ra  r™   Ú
max_sharedÚmax_tmem_sizerM  s   `     r#   Ú_init_handlesÚCompiledKernel._init_handles´  s
  ø€ Ø�;‰;Ñ"Øõ	ô —‘×1Ñ1Ó3ˆä—M‘M×.Ñ.¨t¯x©x¸¿¹ÓGˆŒ	ä# FÓ+ˆ
Ø�=‰=×Ñ *Ó,Ù”> $§-¡-×"6Ñ"6¸
ÀOÓTÔUÜ�4—=‘= +×.Ñ.°4·=±=×3JÑ3JÑ3VàˆMØ�}‰}×&Ñ&¨Ó6Ù”~ d§m¡m×&=Ñ&=¸}ÈoÓ^Ô_Ü�=‰=×/Ñ/Ñ;Ü�M‰M×0Ñ0°·±¸d¿m¹mÈTÏYÉYÐX\×XkÑXkÐmq×mvÑmvÔwäU[×UbÑUb×UhÑUh×UtÑUtØ�I‰I�t—{‘{ D§M¡M×$8Ñ$8¸&óVBÑRˆŒ�T”] D¤K°´ÀÔ@Rä—M‘M×4Ñ4Ó6×@Ñ@ˆ	Ø�=‰=×"Ñ" YÑ.°×1CÑ1CÓCÙ”> $§-¡-×"9Ñ"9¸IÑ"EÀt×GYÑGYÐ[dÓeÔfÜ�=‰=×-Ñ-Ñ9Ü�M‰M×.Ñ.¨t¯{©{¸D¿M¹MÈ4Ï9É9ÐVZ×ViÑViÐko×ktÑktÕuð :r$   c                óT   • U R                   c  U R                  5         U R                   $ ra   )rX  rq  rb   s    r#   ÚrunÚCompiledKernel.runÙ  s"   € à�9‰9ÑØ×ÑÔ Ø�y‰yÐr$   c                ó(  • [         R                  R                  c  g U R                  5         [	        U R
                  U R                  US.5      n[        U R                  [        5      (       a!  U R                  R                  R                  c  U$ [        U R                  R                  R                  U5       VVs0 s H  u  pVXV_M	     nnnUR                  U R                  R                  R                  XR                  U45        U$ s  snnf )N)r/   rW  Ústream)r   rh  Úlaunch_enter_hookrq  r)  r/   rW  r4   rw   r&   r*   Úlaunch_metadatar»   r6   r6  rç   )r<   Úgridrw  r3  Úretr/   ÚargÚarg_dicts           r#   ry  ÚCompiledKernel.launch_metadataß  sÃ   € Ü�=‰=×*Ñ*Ñ2ØØ×ÑÔÜ §	¡	°t·}±}ÐPVÑWÓXˆÜ˜$Ÿ(™(¤I×.Ñ.°$·(±(·+±+×2MÑ2MÑ2UØˆJÜ/2°4·8±8·;±;×3HÑ3HÈ$Ô/OÔPÒ/O¡) $�D’IÑ/OˆÑPØ�‰�—‘—‘×+Ñ+¨d·M±MÀ8Ð-LÔMØˆ
ùó Qs   Â?Dc                ó@   ^ ^• T R                  5         S S.UU 4S jjnU$ )N)rw  c                ó~  >• U c=  [         R                  R                  5       n[         R                  R                  U5      n TR                  " TU /UQ76 nTR
                  " TS   TS   TS   U TR                  TR                  U[        R                  R                  [        R                  R                  /	UQ76   g )Nr   r   r   )r   r–   re  Úget_current_streamry  rt  rW  rS  r   rh  rx  Úlaunch_exit_hook)rw  r3  r™   ry  rz  r<   s       €€r#   ÚrunnerÚ*CompiledKernel.__getitem__.<locals>.runnerí  s™   ø€ Ø‰~ÜŸ™×9Ñ9Ó;�ÜŸ™×9Ñ9¸&ÓA�Ø"×2Ò2°4¸ÐGÀ$ÒGˆOØ�HŠH�T˜!‘W˜d 1™g t¨A¡w°¸¿¹Àt×G[ÑG[Ð]lÜ—]‘]×4Ñ4´e·m±m×6TÑ6Tð]ØW[ô]r$   )rq  )r<   rz  rƒ  s   `` r#   Ú__getitem__ÚCompiledKernel.__getitem__ê  s%   ù€ Ø×ÑÔà!%÷ 	]ñ 	]ð ˆr$   )rX  rU  rW  rT   rV  rç   rè   r   rm  rk  rl  r/   rS  rw   N)r.   rj   rk   rl   r@   rq  Úpropertyrt  ry  r…  rm   rn   r$   r#   rú   rú   ”  s,   † òò<#vðJ ñó ðò
	õr$   rú   )r¼   ÚBaseException)NNN)r]   r
   rf   r	   )4Ú
__future__r   rL   rî   Ú_C.libtritonr   r   r   Úbackends.compilerr   r	   r
   r   r   r   Úruntime.autotunerr   Úruntime.cacher   r   r   r   Úruntime.driverr   Útools.disasmr   Úpathlibr   r   r^  rµ   rÆ   r@  Úptx_prototype_patternry   Úptx_arg_type_patternr|   r   r&   rp   Ú	lru_cacher•   r¡   r²   rÃ   r   ró   r)  r1   r9  rD  rú   rn   r$   r#   Ú<module>r”     sî   ðÝ "Û Û ß >Ý Ý (ß 6ß !Ý .ß dÓ dÝ #Ý #Ý Û 	Û Û 	Û Û ð YÐ à	Ð ðÐ ð ,Ð à	ÐðÐ ò

÷ ñ  ÷F+ñ +ð\ ×ÒÓñOó ðOò,ô#$÷L$
ñ $
ôNF5ôR÷)ñ )ô 
ˆdô 
ò÷aò ar$   