§
    OŠtj Q  ã                  óê  — 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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)d„ Z*d*d„Z+ G d„ d¦  «        Z,d+d„Z-d,d"„Z. G d#„ d$¦  «        Z/ G d%„ d&e0¦  «        Z1d'„ Z2 G d(„ d)¦  «        Z3dS )-é    )Ú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                óÜ   — 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      úV/var/www/html/CA-Chatbot/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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          ¦   «         | _        | j                             ¦   «         D ]&}t          |t          ¦  «        st%          d¦  «        ‚Œ'd S )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+   r1   Ú
constexprsr:   ÚkÚvs          r#   Ú__init__zASTSource.__init__6   s  € ØˆŒÝ œˆŒØˆŒØ”KˆŒ	Ø"ˆŒÝ™œˆŒØÐ!Ø"×(Ò(Ñ*Ô*ð &ð &‘��1Ý1;¸A½sÑ1CÔ1CÐJ�R”\×'Ò'¨Ñ*Ô*Ð-Ð-È�Ý! !¥UÑ+Ô+Ð+Ð+Ð+Ø$%�”˜qÑ!Ð!Ø�_�d™fœfˆŒ
Ø”×$Ò$Ñ&Ô&ð 	Að 	AˆAÝ˜a¥Ñ%Ô%ð AÝÐ ?Ñ@Ô@Ð@ðAð	Að 	A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 © rD   )Ú.0r?   r@   s      r#   ú
<listcomp>z"ASTSource.hash.<locals>.<listcomp>H   s   € ÐCÐCÐC™D˜A˜q�aÐCÐCÐCr$   c                óN   — t          | d¦  «        r| j        nt          | ¦  «        S )NÚ	cache_key)ÚhasattrrH   r6   )r    s    r#   ú<lambda>z ASTSource.hash.<locals>.<lambda>I   s!   € ­7°1°kÑ+BÔ+BÐN˜AœK˜KÍÈAÉÌ€ r$   ú-c                ó,   •— g | ]\  }} ‰|¦  «        ‘ŒS rD   rD   )rE   r?   r@   Úget_keys      €r#   rF   z"ASTSource.hash.<locals>.<listcomp>J   s%   ø€ Ð!XÐ!XÐ!X±°°A ' '¨!¡*¤*Ð!XÐ!XÐ!Xr$   úutf-8)Úsortedr1   r4   Újoinr3   r+   rH   r6   r:   ÚhashlibÚsha256ÚencodeÚ	hexdigest)r=   Ú
sorted_sigÚconstants_keyÚkeyrM   s       @r#   ÚhashzASTSource.hashG   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$   Útargetr
   c                ó:   — ddl m}  || j        | ||||¬¦  «        S )Nr   )Úast_to_ttir)ÚcontextÚoptionsÚcodegen_fnsÚ
module_map)Úcode_generatorr[   r+   )r=   rY   r]   r^   r_   r\   r[   s          r#   Úmake_irzASTSource.make_irN   s=   € Ø/Ð/Ð/Ð/Ð/Ð/Øˆ{˜4œ7 D°'À7ÐXcØ&0ð2ñ 2ô 2ð 	2r$   c                ó   — t          ¦   «         S ©N)r2   ©r=   s    r#   Úparse_optionszASTSource.parse_optionsS   s   € Ý‰vŒvˆr$   )NN©r'   r(   ©rY   r
   ©r/   Ú
__module__Ú__qualname__rA   rX   ra   re   rD   r$   r#   r&   r&   4   sd   € € € € € ðAð Að Að Að Að"?ð ?ð ?ð2ð 2ð 2ð 2ð
ð ð ð ð r$   r&   c                  ó(   — e Zd Zd„ Zd„ Zd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 rD   )r   ©rE   r?   Útys      r#   ú
<dictcomp>z%IRSource.__init__.<locals>.<dictcomp>i   s'   € ÐUÐUÐU¹5¸1¸b˜aÕ!2°2Ñ!6Ô!6ÐUÐUÐUr$   ú@c                ó   — i | ]\  }}||“Œ	S rD   rD   ro   s      r#   rq   z%IRSource.__init__.<locals>.<dictcomp>p   s   € ÐDÐDÐD©¨¨2˜a ÐDÐDÐDr$   )Úpathr   Úsuffixr.   r   r,   r-   Ú	read_textÚsrcr   Úload_dialectsr   r   Úprototype_patternÚ	MULTILINEr   r0   ÚfindallÚarg_type_patternÚ	enumerater1   Úparse_mlir_moduleÚmoduleÚget_entry_func_nameÚget_functionÚget_function_signature)
r=   rt   r\   Úbackendr!   r1   ÚtypesÚfn_nameÚfuncOpÚfunc_tys
             r#   rA   zIRSource.__init__Y   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 )NrN   )rQ   rR   rw   rS   rT   rd   s    r#   rX   zIRSource.hashr   s,   € ÝŒ~˜dœhŸošo¨gÑ6Ô6Ñ7Ô7×AÒAÑCÔCÐCr$   rY   r
   c                ó(   — || j         _        | j         S rc   )r   r\   )r=   rY   r]   r^   r_   r\   s         r#   ra   zIRSource.make_iru   s   € Ø%ˆŒÔØŒ{Ðr$   c                óÎ   — | j         dk    rM| j                             d¦  «        }|€
J d¦   «         ‚d|i}| j                             d¦  «        }|�||d<   |S t          ¦   «         S )NÚttgirzttg.num-warpsz'Unable to parse ttg.num-warps attributeÚ	num_warpszttg.num-ctasÚnum_ctas)r.   r   Úget_int_attrr2   )r=   rŒ   r]   r�   s       r#   re   zIRSource.parse_optionsy   sv   € ØŒ8�wÒÐØœ×0Ò0°ÑAÔAˆIØÐ(Ð(Ð*SÑ(Ô(Ð(Ø" IÐ.ˆGØ”{×/Ò/°Ñ?Ô?ˆHØÐ#Ø&.�˜
Ñ#ØˆNÝ‰vŒvˆr$   Nrg   rh   rD   r$   r#   rl   rl   W   s[   € € € € € ðEð Eð Eð2Dð Dð Dðð ð ð ð	ð 	ð 	ð 	ð 	r$   rl   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~   r\   r   rv   Ú
read_bytes)Ú	full_namer.   r\   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 )ú/)ÚreplaceÚosÚsep)rE   Úbad_files     r#   rF   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 rc   )Útb_frameÚf_codeÚco_filenameÚendswith)rE   ÚfÚ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   ÚcompilationÚfront_end_debuggingÚ	__cause__Úfilter_tracebackÚ__context__Ú__traceback__ÚanyÚappendÚ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 rc   )ÚtimeÚstartÚir_initialization_endÚlowering_stage_endsÚstore_results_endrd   s    r#   rA   zCompileTimer.__init__½   s-   € Ý œI™KœKˆŒ
Ø37ˆÔ"Ø<>ˆÔ Ø/3ˆÔÐÐr$   c                ó6   — t          j         ¦   «         | _        d S rc   )rÀ   rÂ   rd   s    r#   Úfinished_ir_initializationz'CompileTimer.finished_ir_initializationÃ   s   € Ý%)¤Y¡[¤[ˆÔ"Ð"Ð"r$   Ú
stage_namer6   c                ó`   — | j                              |t          j        ¦   «         f¦  «         d S rc   )rÃ   r¶   rÀ   )r=   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Á   )r=   Ú	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$   Nrf   )rÇ   r6   r'   r(   )r'   rÊ   )r/   ri   rj   rA   rÆ   rÉ   rÍ   rD   r$   r#   r¾   r¾   »   sh   € € € € € ð4ð 4ð 4ð 4ð1ð 1ð 1ð 1ðCð Cð Cð Cð
ð 
ð 
ð 
ð 
ð 
r$   r¾   c                óZ  — 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#          ¦   «         n|}
t%          | |||
¬¦  «        }t           j        j        �&t           j                             ¦   «         \  }}||z  }t+          j        |                     d¦  «        ¦  «                             ¦   «         }t3          |¦  «        }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 �]W\  }$}% |%| |¦  «        }&|› d|$› �}"|€B| "                    dd ¦  «        x}'r)|' =                    d|$› �¦  «        rt}          |'|$|¦  «        }&n:| ?                    |"¦  «        x}(r#tu          d|(› �¦  «         t}          |(|$|¦  «        }&|r|$dv r| 6                    |&|"¦  «        ||"<   |�D| 6                    |&|"¦  «         |$dk    r(t�          |&¦  «        })| 6                    |)|dz   ¦  «         |#|$k    r<| ?                    |"¦  «        }*|& 8                    |*¦  «         tu          d|*› �¦  «         |&} |r| A                    |$¦  «         �ŒY| 6                    t…          jC        |tˆ          ¬¦  «        |d¬¦  «        ||<   | E                    ||¦  «         |r" || ||| '                    ¦   «         d¬¦  «         tI          | ||¦  «        S )Nz target must be of GPUTarget typez'source must be either AST or a filepath)Úenv_varsrN   é–   ú.jsonT)rw   ÚmetadataÚmetadata_groupÚtimesÚ	cache_hit)rX   rY   Útriton_versionr   ú.z.sourcezCreating new locations for Úir_overridez
Overriding kernel with file )r˜   r™   Újsonr˜   z.sass)ÚdefaultF)Úbinary)Fr   r¯   Úlistenerr¾   r   r‘   Úget_current_targetr5   r
   Úmake_backendr&   r6   r   r\   rl   re   r2   r   r   ÚruntimeÚadd_stages_inspection_hookrQ   rR   rS   rT   r   ÚoverrideÚdump_irÚstore_binary_onlyr   rX   r   r0   Ú	get_groupÚgetÚalways_compileÚCompiledKernelrÞ   Ú_asdictrÍ   Ú__dict__r   Ú
add_stagesr-   Úlistr;   r8   r.   rx   Úget_codegen_implementationÚget_module_mapra   Ú	Exceptionr²   ÚputÚ
use_ir_locÚcreate_location_snapshotrt   ÚprintrÆ   r4   rª   rœ   Úget_filer   rÉ   rå   ÚdumpsÚvarsÚ	put_group)+rw   rY   r]   Ú	_env_varsÚcompilation_listenerÚtimerrƒ   Ú	ir_sourcer\   Úextra_optionsrÛ   rW   Úinspect_stages_keyÚinspect_stages_hashrX   Ú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_stager^   r_   r   r�   Úir_filenamerü   r.   Ú
compile_irÚnext_modulerä   r›   ÚsassÚir_full_names+                                              r#   Úcompiler  â   s0  € Ý Ô,Ô5ÐØð Ý‘”ˆà€~Ý”×1Ò1Ñ3Ô3ˆÝ�f�iÑ(Ô(ÐLÐLÐ*LÑLÔLÐ(Ý˜6Ñ"Ô"€GÝ˜s¥IÑ.Ô.Ð.€Iàð .Ý˜#�sÑ#Ô#ÐNÐNÐ%NÑNÔNÐ#Ý”*‘,”,ˆÝ�s˜G WÑ-Ô-ˆà×%Ò%Ñ'Ô'€MØ×#Ò#¥D¨Ð):µD±F´FÐ$LÐ$L¸mÐ$LÐ$LÑMÔM€Gà4=Ð4EÕ.Ñ0Ô0Ð0È9€HÝ
˜˜W g¸Ð
AÑ
AÔ
A€CÝ„}Ô/Ð;Ý27´-×2ZÒ2ZÑ2\Ô2\Ñ/ÐÐ/ØÐ!Ñ!ˆÝŒ>˜#Ÿ*š* 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ðØ—’˜V W¨k¸:ÀwÑOÔOˆˆøÝð ð ð Ý˜ÑÔÐØøøøøðøøøð ð 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Ø�gŠ~ˆ~Ý Ñ,Ô,�Ø×#Ò# D¨)°gÑ*=Ñ>Ô>Ð>à˜ÒÐØ+×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   ÏO( Ï(
PÏ2PÐPrY   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 rD   )ÚcompilerÚsupports_target)rE   r    rY   s     €r#   rF   z make_backend.<locals>.<listcomp>o  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ƒ   )rY   Úactivess   ` r#   rê   rê   n  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 rc   )ÚdataÚextras)r=   r'  s     r#   rA   zLazyDict.__init__x  s   € ØˆŒ	ØˆŒˆˆr$   c                ó€   — | j         D ]\  }}| j         ||Ž z  | _        Œ| j                              ¦   «          | j        S rc   )r(  r'  Úclear©r=   Ú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 rc   )r(  r¶   r+  s      r#   ÚaddzLazyDict.add‚  s"   € ØŒ×Ò˜D $˜<Ñ(Ô(Ð(Ð(Ð(r$   N)r/   ri   rj   rA   rñ   r/  rD   r$   r#   r%  r%  v  sA   € € € € € ðð ð ðð ð ð)ð )ð )ð )ð )r$   r%  c                  ó   — e Zd Zd„ ZdS )ÚAsmDictc                ól   — |dk    rt          | d         ¦  «        }nt          d|z  ¦  «        ‚|| |<   |S )Nr  r˜   zUnknown key: '%s')r   ÚKeyError)r=   rW   Úvalues      r#   Ú__missing__zAsmDict.__missing__ˆ  s@   € à�&Š=ˆ=Ý˜T 'œ]Ñ+Ô+ˆEˆEåÐ.°Ñ4Ñ5Ô5Ð5àˆˆS‰	Øˆr$   N)r/   ri   rj   r5  rD   r$   r#   r1  r1  †  s#   € € € € € ðð ð ð ð r$   r1  c                ó*   — t          j        | ¦  «        ‚rc   )ÚcopyÚdeepcopy)Úerrr-  Úkwargss      r#   Ú_raise_errorr;  “  s   € Ý
Œ-˜Ñ
Ô
Ðr$   c                  ó<   — e Zd Zd„ Zd„ Zed„ ¦   «         Zd„ Zd„ ZdS )ró   c           	     ó0  ‡— ddl m} t          d„ |                     ¦   «         D ¦   «         ¦  «        }t	          j        |                     ¦   «         ¦  «        }|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 | _        d S )Nr   )Ú
namedtuplec              3  ód   K  — | ]+\  }}|                      d ¦  «        ¯t          |¦  «        V — Œ,dS )rÝ   N©rª   r   ©rE   ÚcÚps      r#   r­   z*CompiledKernel.__init__.<locals>.<genexpr>›  s>   è è € Ð`Ð`©$¨!¨QÈAÏJÊJÐW^ÑL_ÔL_Ð`�d 1™gœgÐ`Ð`Ð`Ð`Ð`Ð`r$   rY   rƒ   ÚarchÚ	warp_sizeÚKernelMetadatac                ó\   — g | ])\  }}|                      d ¦  «        °t          |¦  «        ‘Œ*S )rÝ   r@  rA  s      r#   rF   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)ru   rš   rv   )rE   ÚfileÚ
binary_exts     €r#   rq   z+CompiledKernel.__init__.<locals>.<dictcomp>ª  se   ø€ ð 
ð 
ð 
àð ŒK˜˜˜ŒO°$´+¸a¸b¸b´/ÀZÒ2OÐ2O˜TŸ_š_Ñ.Ô.Ð.ÐUY×UcÒUcÑUeÔUeð
ð 
ð 
r$   rD   )Úcollectionsr>  Únextr4   rå   Úloadsrv   r
   rO   r÷   r;   rÞ   rê   rY   Úpack_metadataÚpacked_metadatarw   rX   r0   rJ  r1  Úasmrß   Úkernelr   ÚfunctionÚ_run)r=   rw   rß   rX   r>  r  rÞ   rY   rF  rƒ   Ú	asm_filesrJ  s              @r#   rA   zCompiledKernel.__init__™  s�  ø€ Ø*Ð*Ð*Ð*Ð*Ð*ÝÐ`Ð`°.×2FÒ2FÑ2HÔ2HÐ`Ñ`Ô`ÑaÔaˆÝ”:˜m×5Ò5Ñ7Ô7Ñ8Ô8ˆà˜(Ô#ˆÝ& 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                ó¬  ‡ — ‰ j         �d S ˆ fd„}t          j                             ¦   «         }t          j                             ‰ j        ‰ j        ¦  «        ‰ _        t          |¦  «        }‰ j        j	        |k    r$ |t          ‰ j        j	        |d¦  «        ¦  «         t          ‰ j        d¦  «        rB‰ j        j        �6d}‰ j        j        |k    r$ |t          ‰ j        j        |d¦  «        ¦  «         t          j        j        �<t          j                             ‰ j         ‰ j        ‰ j        ‰ j        ‰ j        ¦  «         t          j        j                             ‰ j        ‰ j        ‰ j        j	        |¦  «        \  ‰ _         ‰ _        ‰ _        ‰ _        ‰ _        t          j                             ¦   «         j        }‰ j        j        |z  ‰ j        k    r, |t          ‰ j        j        |z  ‰ j        d¦  «        ¦  «         t          j        j        �>t          j                             ‰ j         ‰ j        ‰ j        ‰ j        ‰ j        ¦  «         d S d S )Nc                ón   •— t          j        | ¦  «        }t          j        t          |¦  «        ‰_        | ‚rc   )r7  r8  Ú	functoolsÚpartialr;  rS  )r9  Ú
cloned_errr=   s     €r#   Úraise_z,CompiledKernel._init_handles.<locals>.raise_»  s-   ø€ õ œ sÑ+Ô+ˆJÝ!Ô)­,¸
ÑCÔCˆDŒIØˆIr$   zshared memoryÚ	tmem_sizei   ztensor memoryÚthreads)r   r   r‘   Úget_current_deviceÚlauncher_clsrw   rÞ   rS  r�   Úsharedr   rI   r[  r   rë   Úkernel_load_start_hookrR  r0   rß   rX   r’   Úload_binaryrQ  Ún_regsÚn_spillsÚn_max_threadsré   rE  rŒ   Úkernel_load_end_hook)r=   rZ  r”   Ú
max_sharedÚmax_tmem_sizerE  s   `     r#   Ú_init_handleszCompiledKernel._init_handles·  s	  ø€ ØŒ;Ð"ØˆFð	ð 	ð 	ð 	ð 	õ ”×1Ò1Ñ3Ô3ˆå”M×.Ò.¨t¬x¸¼ÑGÔGˆŒ	å# FÑ+Ô+ˆ
ØŒ=Ô *Ò,Ð,ØˆF•> $¤-Ô"6¸
ÀOÑTÔTÑUÔUÐUÝ�4”= +Ñ.Ô.ð 	`°4´=Ô3JÐ3VàˆMØŒ}Ô&¨Ò6Ð6Ø�•~ d¤mÔ&=¸}ÈoÑ^Ô^Ñ_Ô_Ð_ÝŒ=Ô/Ð;ÝŒM×0Ò0°´¸d¼mÈTÌYÐX\ÔXkÐmqÔmvÑwÔwÐwå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ØˆF•> $¤-Ô"9¸IÑ"EÀtÔGYÐ[dÑeÔeÑfÔfÐfÝŒ=Ô-Ð9ÝŒM×.Ò.¨t¬{¸D¼MÈ4Ì9ÐVZÔViÐkoÔktÑuÔuÐuÐuÐuð :Ð9r$   c                óF   — | j         €|                      ¦   «          | j         S rc   )rS  rh  rd   s    r#   ÚrunzCompiledKernel.runÜ  s$   € àŒ9ÐØ×ÒÑ Ô Ð ØŒyÐr$   c                ó”  — t           j        j        €d S |                      ¦   «          t	          | j        | j        |dœ¦  «        }t          | j        t          ¦  «        r| j        j
        j        €|S d„ t          | j        j
        j        |¦  «        D ¦   «         }|                     | j        j
        j        || j        |f¦  «         |S )N)r0   rR  Ústreamc                ó   — i | ]\  }}||“Œ	S rD   rD   )rE   r0   Úargs      r#   rq   z2CompiledKernel.launch_metadata.<locals>.<dictcomp>é  s   € ÐPÐPÐP¡) $¨�D˜#ÐPÐPÐPr$   )r   rë   Úlaunch_enter_hookrh  r%  r0   rR  r5   rw   r&   r+   Úlaunch_metadatar¸   r7   r/  rÞ   )r=   Úgridrl  r-  ÚretÚarg_dicts         r#   rp  zCompiledKernel.launch_metadataâ  s²   € ÝŒ=Ô*Ð2Ø�4Ø×ÒÑÔÐÝ ¤	°t´}ÐPVÐWÐWÑXÔXˆÝ˜$œ(¥IÑ.Ô.ð 	°$´(´+Ô2MÐ2UØˆJØPÐP­s°4´8´;Ô3HÈ$Ñ/OÔ/OÐPÑPÔPˆØ�Š�””Ô+¨d°D´MÀ8Ð-LÑMÔMÐMØˆ
r$   c                óD   ‡ ‡— ‰                       ¦   «          d dœˆˆ fd„
}|S )N)rl  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‘   r]  Úget_current_streamrp  rj  rR  rO  r   rë   ro  Úlaunch_exit_hook)rl  r-  r”   rp  rq  r=   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$   )rh  )r=   rq  rx  s   `` r#   Ú__getitem__zCompiledKernel.__getitem__í  sP   øø€ Ø×ÒÑÔÐà!%ð 	]ð 	]ð 	]ð 	]ð 	]ð 	]ð 	]ð 	]ð ˆr$   N)	r/   ri   rj   rA   rh  Úpropertyrj  rp  ry  rD   r$   r#   ró   ró   —  so   € € € € € ðð ð ð<#vð #vð #vðJ ðð ñ „Xðð
	ð 	ð 	ðð ð ð ð r$   ró   )r�   rž   )NNN)rY   r
   r'   r	   )4Ú
__future__r   rQ   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   rW  r£   rÀ   r7  Úptx_prototype_patternry   Úptx_arg_type_patternr|   r   r&   rl   Ú	lru_cacher�   rœ   r²   r¾   r  rê   r%  r2   r1  r;  ró   rD   r$   r#   ú<module>r†     s   ðØ "Ð "Ð "Ð "Ð "Ð "Ø €€€Ø €€€Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !Ø .Ð .Ð .Ð .Ð .Ð .Ø dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dØ #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø 	€	€	€	Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€ð YÐ à	Ð ðÐ ð ,Ð à	ÐðÐ ð

ð 
ð 
ð ð  ð  ð  ð  ñ  ô  ð  ðF+ð +ð +ð +ð +ñ +ô +ð +ð\ €ÔÑÔðOð Oñ ÔðOð,ð ,ð ,ð#$ð #$ð #$ð #$ðL$
ð $
ð $
ð $
ð $
ñ $
ô $
ð $
ðNI5ð I5ð I5ð I5ðXð ð ð ð)ð )ð )ð )ð )ñ )ô )ð )ð 
ð 
ð 
ð 
ð 
ˆdñ 
ô 
ð 
ðð ð ðað að að að añ aô að að að ar$   