§
    KŠtj#  ã                   ó  — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZmZmZ d dlZd dlmZ d dlmZmZmZ g d¢Zg d¢Zeez   Zg d¢Zed	gz   Zeez   Zed	gz   Zd
dgZdgez   dgz   ez   d	gz   Z e ee¦  «        h d£z
  ¦  «        Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1d „ Z2d!„ Z3d"„ Z4d#„ Z5d8d$ee         fd%„Z6d9d&ej7        d'eeej8        f         fd(„Z9d&e:d'ej;        fd)„Z<d'e:fd*„Z=d+„ Z>d:d-„Z?d.„ Z@d:d/„ZAejB         C                     e?¦   «           eA¦   «         ¬0¦  «        ZDd1eEd2eEfd3„ZFd4eej8        ejG        jH        j        f         d'ej8        fd5„ZId9d6eee:                  fd7„ZJdS );é    N©Úknobs)ÚOptionalÚSetÚUnion)ÚRandomState)ÚTensorWrapperÚreinterpretÚtype_canonicalisation_dict)Úint8Úint16Úint32Úint64)Úuint8Úuint16Úuint32Úuint64)Úfloat16Úfloat32Úfloat64Úbfloat16Úfloat8_e4m3fnÚfloat8_e5m2Úboolr   >   r   r   r   c                  óJ   — t           j                             dd¦  «        dk    S )NÚTRITON_INTERPRETÚ0Ú1)ÚosÚenvironÚget© ó    úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/triton/_internal_testing.pyÚis_interpreterr%      s   € ÝŒ:�>Š>Ð,¨cÑ2Ô2°cÒ9Ð9r#   c                  ór   — t          ¦   «         rd S t          j        j        j                             ¦   «         S ©N)r%   ÚtritonÚruntimeÚdriverÚactiveÚget_current_targetr"   r#   r$   r,   r,      s/   € ÝÑÔð ØˆtÝŒ>Ô Ô'×:Ò:Ñ<Ô<Ð<r#   c                  ó<   — t          ¦   «         } | €dn
| j        dk    S )NFÚcuda©r,   Úbackend©Útargets    r$   Úis_cudar3   $   s"   € ÝÑ!Ô!€FØ�Nˆ5ˆ5¨¬¸&Ò(@Ð@r#   c                  ón   — t          ¦   «         o't          j                             ¦   «         d         dk    S )Nr   é   ©r3   Útorchr.   Úget_device_capabilityr"   r#   r$   Úis_ampere_or_newerr9   )   ó)   € Ý‰9Œ9ÐC�œ×9Ò9Ñ;Ô;¸AÔ>À!ÒCÐCr#   c                  ój   — t          ¦   «         o%t          j                             ¦   «         d         dv S )Nr   )é
   é   r6   r"   r#   r$   Úis_blackwellr>   -   s)   € Ý‰9Œ9ÐJ�œ×9Ò9Ñ;Ô;¸AÔ>À(ÐJÐJr#   c                  ór   — t          ¦   «         o)t          j                             ¦   «         dd…         dk    S )Nr   é   )r<   é   r6   r"   r#   r$   Úis_blackwell_ultrarB   1   s-   € Ý‰9Œ9ÐK�œ×9Ò9Ñ;Ô;¸A¸a¸CÔ@ÀGÒKÐKr#   c                  ón   — t          ¦   «         o't          j                             ¦   «         d         dk    S ©Nr   é	   r6   r"   r#   r$   Úis_hopper_or_newerrF   5   r:   r#   c                  ón   — t          ¦   «         o't          j                             ¦   «         d         dk    S rD   r6   r"   r#   r$   Ú	is_hopperrH   9   r:   r#   c                  ón   — t          ¦   «         o't          j                             ¦   «         d         dk    S )Nr   é   r6   r"   r#   r$   Úis_sm12xrK   =   s)   € Ý‰9Œ9ÐD�œ×9Ò9Ñ;Ô;¸AÔ>À"ÒDÐDr#   c                  ó<   — t          ¦   «         } | €dn
| j        dk    S )NFÚhipr/   r1   s    r$   Úis_hiprN   A   ó"   € ÝÑ!Ô!€FØ�Nˆ5ˆ5¨¬¸%Ò(?Ð?r#   c                  óR   — t          ¦   «         } | d uo| j        dk    o
| j        dk    S )NrM   Úgfx90a©r,   r0   Úarchr1   s    r$   Úis_hip_cdna2rT   F   ó0   € ÝÑ!Ô!€FØ˜ÐÐU &¤.°EÒ"9ÐU¸f¼kÈXÒ>UÐUr#   c                  óR   — t          ¦   «         } | d uo| j        dk    o
| j        dk    S )NrM   Úgfx942rR   r1   s    r$   Úis_hip_cdna3rX   K   rU   r#   c                  óR   — t          ¦   «         } | d uo| j        dk    o
| j        dk    S )NrM   Úgfx950rR   r1   s    r$   Úis_hip_cdna4r[   P   rU   r#   c                  óN   — t          ¦   «         } | d uo| j        dk    od| j        v S )NrM   Úgfx11rR   r1   s    r$   Úis_hip_rdna3r^   U   ó0   € ÝÑ!Ô!€FØ˜ÐÐT &¤.°EÒ"9ÐT¸gÈÌÐ>TÐTr#   c                  óN   — t          ¦   «         } | d uo| j        dk    od| j        v S )NrM   Úgfx12rR   r1   s    r$   Úis_hip_rdna4rb   Z   r_   r#   c                  óN   — t          ¦   «         } | d uo| j        dk    od| j        v S )NrM   Úgfx1250rR   r1   s    r$   Úis_hip_gfx1250re   _   s0   € ÝÑ!Ô!€FØ˜ÐÐV &¤.°EÒ"9ÐV¸iÈ6Ì;Ð>VÐVr#   c                  óV   — t          ¦   «         pt          ¦   «         pt          ¦   «         S r'   )rT   rX   r[   r"   r#   r$   Úis_hip_cdnarg   d   s   € Ý‰>Œ>Ð=�\™^œ^Ð=­|©~¬~Ð=r#   c                  ó:   — t          ¦   «         pt          ¦   «         S r'   )r^   rb   r"   r#   r$   Úis_hip_rdnari   h   s   € Ý‰>Œ>Ð+�\™^œ^Ð+r#   c                  ó&   — t          ¦   «         rdndS )Ni € i   )r[   r"   r#   r$   Úget_hip_lds_sizerk   l   s   € Ý!‘^”^Ð.ˆ6ˆ6¨Ð.r#   c                  ó<   — t          ¦   «         } | €dn
| j        dk    S )NFÚxpur/   r1   s    r$   Úis_xpurn   p   rO   r#   c                  óN   — t          ¦   «         } | €dnt          | j        ¦  «        S )NÚ )r,   ÚstrrS   r1   s    r$   Úget_archrr   u   s%   € ÝÑ!Ô!€FØ�ˆ2ˆ2¥S¨¬Ñ%5Ô%5Ð5r#   Úrsc                 ó¤  — t          | t          ¦  «        r| f} |€t          d¬¦  «        }|t          t          z   v rœt          j        t          t
          |¦  «        ¦  «        }|€|j        nt          ||j        ¦  «        }|€|j	        nt          ||j	        ¦  «        }t          t
          |¦  «        }| 
                    ||| |¬¦  «        }d||dk    <   |S |r)d|v r%| 
                    dd	| t
          j        ¬¦  «        }|S |t          v r*|                     dd| ¦  «                             |¦  «        S |d
k    re|                     dd| ¦  «                             d¦  «                             d¦  «        t          j        d¦  «        z                       d¦  «        S |dv r|                     dd| ¦  «        dk    S t#          d|› �¦  «        ‚)zp
    Override `rs` if you're calling this function twice and don't want the same
    result for both calls.
    Né   )Úseed)Údtypeé   r   Úfloat8é   é(   r   r   r   l     þ )r   Úint1Úbool_g        zUnknown dtype )Ú
isinstanceÚintr   Ú
int_dtypesÚuint_dtypesÚnpÚiinfoÚgetattrÚminÚmaxÚrandintr   Úfloat_dtypesÚnormalÚastypeÚviewr   ÚRuntimeError)ÚshapeÚ	dtype_strrs   ÚlowÚhighrƒ   rw   Úxs           r$   Únumpy_randomr’   z   sÆ  € õ
 �%�ÑÔð Ø�	ˆØ	€zÝ˜bÐ!Ñ!Ô!ˆØ•J¥Ñ,Ð,Ð,Ý”�¥ YÑ/Ô/Ñ0Ô0ˆØ˜;ˆeŒiˆi­C°°U´YÑ,?Ô,?ˆØ ˜LˆuŒyˆy­c°$¸¼	Ñ.BÔ.BˆÝ�˜IÑ&Ô&ˆØ�JŠJ�s˜D %¨uˆJÑ5Ô5ˆØˆˆ!ˆqŠ&‰	ØˆØ	ð 
9�x 9Ð,Ð,Ø�JŠJ�r˜2˜u­B¬GˆJÑ4Ô4ˆØˆØ	•lÐ	"Ð	"Ø�yŠy˜˜A˜uÑ%Ô%×,Ò,¨YÑ7Ô7Ð7Ø	�jÒ	 Ð	 Ø—	’	˜!˜Q Ñ&Ô&×-Ò-¨iÑ8Ô8×=Ò=¸hÑGÔGÍ"Ì)ÐT^ÑJ_ÔJ_Ñ_×eÒeÐfoÑpÔpÐpØ	Ð/Ð	/Ð	/Ø�yŠy˜˜A˜uÑ%Ô%¨Ò+Ð+åÐ7¨IÐ7Ð7Ñ8Ô8Ð8r#   r‘   Úreturnc                 ó"  — | j         j        }|t          v rt|                     d¦  «        }|                      t          t          |¦  «        ¦  «        }t          t          j	        ||¬¦  «        t          t          |¦  «        ¦  «        S |r;d|v r7t          t          j	        | |¬¦  «        t          t          |¦  «        ¦  «        S |dk    r.|dk    r(t          j	        | |¬¦  «                             ¦   «         S t          j	        | |¬¦  «        S )zÖ
    Note: We need dst_type because the type of x can be different from dst_type.
          For example: x is of type `float32`, dst_type is `bfloat16`.
          If dst_type is None, we infer dst_type from x.
    Úu)Údevicery   r   r   )rw   Únamer�   ÚlstriprŠ   r„   r‚   r
   r7   ÚtensorÚtlr   )r‘   r–   Údst_typeÚtÚsigned_type_nameÚx_signeds         r$   Ú	to_tritonrŸ   ˜   sð   € ð 	
ŒŒ€AØ�KÐÐØŸ8š8 C™=œ=ÐØ—8’8�G¥BÐ(8Ñ9Ô9Ñ:Ô:ˆÝ�5œ<¨¸Ð@Ñ@Ô@Å'Í"ÈaÁ.Ä.ÑQÔQÐQàð 	V˜ HÐ,Ð,Ý�uœ|¨A°fÐ=Ñ=Ô=½wÅrÈ8Ñ?TÔ?TÑUÔUÐUØ�	Š>ˆ>˜h¨*Ò4Ð4Ý”< ¨&Ð1Ñ1Ô1×:Ò:Ñ<Ô<Ð<ÝŒ|˜A fÐ-Ñ-Ô-Ð-r#   c                 óB   — t          j        t          |          d ¦  «        S r'   )rš   Ú	str_to_tyr   ©r‘   s    r$   Ústr_to_triton_dtyper£   «   s   € ÝŒ<Õ2°1Ô5°tÑ<Ô<Ð<r#   c                 ó.  — t          | t          j        j        ¦  «        r| j        S t          | t
          j        ¦  «        r7t          j        dt          | ¦  «        ¦  «        }| 	                    d¦  «        S t          dt          | ¦  «        › �¦  «        ‚)Nz^torch\.(\w+)$rx   znot a triton or torch dtype: )r~   r(   Úlanguagerw   r—   r7   ÚreÚmatchrq   ÚgroupÚ	TypeErrorÚtype)rw   Úms     r$   Útorch_dtype_namer¬   ¯   s|   € Ý�%�œÔ.Ñ/Ô/ð GØŒzÐÝ	�E�5œ;Ñ	'Ô	'ð GåŒHÐ&­¨E©
¬
Ñ3Ô3ˆØ�wŠw�q‰zŒzÐåÐE½¸U¹¼ÐEÐEÑFÔFÐFr#   c                 ó,  — t          | t          ¦  «        rc| j                             ¦   «                              ¦   «                              t          t          t          | j	        ¦  «        ¦  «        ¦  «        S t          | t          j        ¦  «        rq| j	        t          j        u r8|                      ¦   «                              ¦   «                              ¦   «         S |                      ¦   «                              ¦   «         S t          d| › �¦  «        ‚)Nz Not a triton-compatible tensor: )r~   r	   ÚbaseÚcpuÚnumpyrŠ   r„   r‚   r¬   rw   r7   ÚTensorr   ÚfloatÚ
ValueErrorr¢   s    r$   Úto_numpyr´   º   sÇ   € Ý�!•]Ñ#Ô#ð AØŒv�zŠz‰|Œ|×!Ò!Ñ#Ô#×*Ò*­7µ2Õ7GÈÌÑ7PÔ7PÑ+QÔ+QÑRÔRÐRÝ	�A•u”|Ñ	$Ô	$ð AØŒ7•e”nÐ$Ð$Ø—5’5‘7”7—=’=‘?”?×(Ò(Ñ*Ô*Ð*Ø�uŠu‰wŒw�}Š}‰ŒÐåÐ?¸AÐ?Ð?Ñ@Ô@Ð@r#   Fc                 óz  — t          ¦   «         rdS t          ¦   «         sdS t          j        j        j        }| rdnd}t          t          t          | 	                    d¦  «        ¦  «        ¦  «        }t          |¦  «        dk    s
J |¦   «         ‚t          j                             ¦   «         d         dk    o||k    S )	NTF)rJ   r   )rJ   rA   ú.r@   r   rE   )r%   r3   r   ÚnvidiaÚptxasÚversionÚtupleÚmapr   ÚsplitÚlenr7   r.   r8   )Ú
byval_onlyÚcuda_versionÚmin_cuda_versionÚcuda_version_tuples       r$   Úsupports_tmarÂ   Å   sµ   € ÝÑÔð ØˆtÝ‰9Œ9ð ØˆuÝ”<Ô%Ô-€LØ",Ð9�w�w°'ÐÝ�s¥3¨×(:Ò(:¸3Ñ(?Ô(?Ñ@Ô@ÑAÔAÐÝÐ!Ñ"Ô" aÒ'Ð'Ð'Ð);Ñ'Ô'Ð'ÝŒ:×+Ò+Ñ-Ô-¨aÔ0°AÒ5Ð`Ð:LÐP`Ò:`Ð`r#   c                  ó’   — t          ¦   «         rdS t          ¦   «         sdS t          j                             ¦   «         d         dk    S )NTFr   rE   )r%   r3   r7   r.   r8   r"   r#   r$   Úsupports_wsrÄ   Ñ   sD   € ÝÑÔð ØˆtÝ‰9Œ9ð ØˆuÝŒ:×+Ò+Ñ-Ô-¨aÔ0°AÒ5Ð5r#   c                 ó   — | rdS dS )NzURequires __grid_constant__ TMA support (NVIDIA Hopper or higher, CUDA 12.0 or higher)zLRequires advanced TMA support (NVIDIA Hopper or higher, CUDA 12.3 or higher)r"   )r¾   s    r$   Útma_skip_msgrÆ   Ù   s   € Øð ^ØfÐfà]Ð]r#   )ÚreasonÚsizeÚalignc                 óD   — t          j        | t           j        d¬¦  «        S )Nr.   )rw   r–   )r7   Úemptyr   )rÈ   rÉ   Ú_s      r$   Údefault_alloc_fnrÍ   ã   s   € ÝŒ;�t¥5¤:°fÐ=Ñ=Ô=Ð=r#   rœ   c                 ó\   — t          | t          j        j        j        ¦  «        r| j        S | S r'   )r~   r(   r)   Újitr	   r®   )rœ   s    r$   Úunwrap_tensorrÐ   ç   s(   € Ý�!•V”^Ô'Ô5Ñ6Ô6ð ØŒvˆØ€Hr#   Úskipped_attrc                 óè   ‡ ‡‡‡‡‡— ddl mŠ ‰ €t          ¦   «         Š t          j        ¦   «         Šˆˆ fd„‰j                             ¦   «         D ¦   «         Šg Š‰j        Šˆˆˆˆfd„}ˆˆˆˆˆfd„}||fS )Nr   r   c                 ód   •— i | ],\  }}t          |‰j        ¦  «        r|‰j        k    ¯%|‰v¯)||“Œ-S r"   )r~   Ú
base_knobs)Ú.0r—   Úknobsetr   rÑ   s      €€r$   ú
<dictcomp>z%_fresh_knobs_impl.<locals>.<dictcomp>õ   sZ   ø€ ð ð ð áˆD�'Ý�g˜uÔ/Ñ0Ô0ðð 6=ÀÔ@PÒ5PÐ5PÐUYÐamÐUmÐUmð 	ˆgàUmÐUmÐUmr#   c                  ó€  •— ‰                      ¦   «         D ] \  } }t          ‰| |                     ¦   «                              ¦   «         ¦  «         |j                             ¦   «         D ]L}|j        t          j        v r‰ 	                    |j        d¬¦  «         Œ2‰ 
                    |j        ¦  «         ŒMŒ¡d‰_        ‰S )NF)ÚraisingT)ÚitemsÚsetattrÚcopyÚresetÚknob_descriptorsÚvaluesÚkeyr   r    ÚdelenvÚappendÚpropagate_env)r—   rÖ   ÚknobÚenv_to_unsetr   Ú	knobs_mapÚmonkeypatchs      €€€€r$   Úfresh_functionz)_fresh_knobs_impl.<locals>.fresh_function  s¾   ø€ à&Ÿ_š_Ñ.Ô.ð 	2ð 	2‰MˆD�'Ý�E˜4 §¢¡¤×!5Ò!5Ñ!7Ô!7Ñ8Ô8Ð8ØÔ0×7Ò7Ñ9Ô9ð 2ð 2�Ø”8�rœzÐ)Ð)Ø×&Ò& t¤x¸Ð&Ñ?Ô?Ð?Ð?à ×'Ò'¨¬Ñ1Ô1Ð1Ð1ð	2ð
 #ˆÔØˆr#   c                  óÔ   •— ‰                      ¦   «         D ]\  } }t          ‰| |¦  «         Œ‰                     ¦   «          ‰D ]}|t          j        v rt          j        |= Œ‰‰_        d S r'   )rÚ   rÛ   Úundor   r    rã   )r—   rÖ   Úkrå   r   ræ   rç   Úprev_propagate_envs      €€€€€r$   Úreset_functionz)_fresh_knobs_impl.<locals>.reset_function  s{   ø€ Ø&Ÿ_š_Ñ.Ô.ð 	*ð 	*‰MˆD�'Ý�E˜4 Ñ)Ô)Ð)Ð)ð 	×ÒÑÔÐØð 	"ð 	"ˆAØ•B”JˆˆÝ”J˜q�MøØ0ˆÔÐÐr#   )r(   r   ÚsetÚpytestÚMonkeyPatchÚ__dict__rÚ   rã   )rÑ   rè   rí   rå   r   ræ   rç   rì   s   `  @@@@@r$   Ú_fresh_knobs_implrò   í   sä   øøøøøø€ ØÐÐÐÐÐàÐÝ‘u”uˆåÔ$Ñ&Ô&€Kðð ð ð ð à"œ^×1Ò1Ñ3Ô3ðñ ô €Ið €LØÔ,Ðð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð ˜>Ð)Ð)r#   )NNNr'   )F)Kr   r¦   r°   r‚   r7   r(   Útriton.languager¥   rš   r   Útypingr   r   r   rï   Únumpy.randomr   Útriton.runtime.jitr	   r
   r   r€   r�   Úintegral_dtypesrˆ   Úfloat_dtypes_with_bfloat16ÚdtypesÚdtypes_with_bfloat16Útorch_float8_dtypesÚtorch_dtypesÚsortedrî   Ú
tma_dtypesr%   r,   r3   r9   r>   rB   rF   rH   rK   rN   rT   rX   r[   r^   rb   re   rg   ri   rk   rn   rr   r’   Úndarrayr±   rŸ   rq   rw   r£   r¬   r´   rÂ   rÄ   rÆ   ÚmarkÚskipifÚrequires_tmar   rÍ   r)   rÏ   rÐ   rò   r"   r#   r$   ú<module>r     s^  ðØ 	€	€	€	Ø 	€	€	€	Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø €€€à $Ð $Ð $Ð $Ð $Ð $Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ Uà0Ð0Ð0€
Ø5Ð5Ð5€Ø˜{Ñ*€Ø0Ð0Ð0€Ø)¨Z¨LÑ8Ð Ø	˜<Ñ	'€Ø  Ñ,Ð Ø&¨Ð6Ð Øˆx˜*Ñ$¨ yÑ0°<Ñ?À:À,ÑN€ØˆV�C�CÐ,Ñ-Ô-Ð0NÐ0NÐ0NÑNÑOÔO€
ð:ð :ð :ð=ð =ð =ðAð Að Að
Dð Dð DðKð Kð KðLð Lð LðDð Dð DðDð Dð DðEð Eð Eð@ð @ð @ð
Vð Vð Vð
Vð Vð Vð
Vð Vð Vð
Uð Uð Uð
Uð Uð Uð
Wð Wð Wð
>ð >ð >ð,ð ,ð ,ð/ð /ð /ð@ð @ð @ð
6ð 6ð 6ð
9ð 9 x°Ô'<ð 9ð 9ð 9ð 9ð<.ð .�”ð .°u¸]ÈEÌLÐ=XÔ7Yð .ð .ð .ð .ð&=˜3ð = 2¤8ð =ð =ð =ð =ðG˜sð Gð Gð Gð GðAð Að Að	að 	að 	að 	að6ð 6ð 6ð^ð ^ð ^ð ^ð Œ{×!Ò! l l¡n¤nÐ"4¸\¸\¹^¼^Ð!ÑLÔL€ð>˜3ð > sð >ð >ð >ð >ð�U˜5œ<¨¬Ô);Ô)IÐIÔJð ÈuÌ|ð ð ð ð ð+*ð +* H¨S°¬XÔ$6ð +*ð +*ð +*ð +*ð +*ð +*r#   