§
    ŠŠtj  ã                   ó¸  — 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	 ddl
mZmZmZmZ ddlmZmZ dd	lmZmZmZmZ  ej        e¦  «        Zd
ZdZdZe j        dee edz  f         fd„¦   «         Z!de fd„Z"ddez  fd„Z#e j        de fd„¦   «         Z$dd„Zdddœde%de%de%dedz  dede de ddfd„Z ej&        d
 eeej'        e         ¦  «        ¦  «         dS )é    N)Úcast)ÚVersioné   )Úcudaé   )Ú_available_versionÚ_unavailable_reasonÚcheck_native_jit_disabledÚcheck_native_version_skip)Údsl_registryÚDSLModuleProtocol)Ú	_OpCondFnÚ	_OpImplFnÚderegister_op_overridesÚregister_op_overrideÚtritoné   é   Úreturnc                  ó¾   — t          j        ¦   «         sdS dg} t          | ¦  «        }|€d}t          d¦  «        }nt                               d|¦  «         d}d}||fS )zO
    Check if triton is available

    NOTE: must not import at this point
    )FN)r   r   NTr   z*triton native DSL ops require: `triton` %sF)Ú_cudaÚis_builtr	   r   ÚlogÚinfo)ÚdepsÚreasonÚ	availableÚversions       úX/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_native/triton_utils.pyÚ_check_runtime_availabler        sy   € õ Œ>ÑÔð Øˆ}ð 	ð€Dõ ! Ñ&Ô&€FØ€~Øˆ	Ý$ XÑ.Ô.ˆˆõ
 	�ŠÐ=¸vÑFÔFÐFØˆ	ØˆØ�gÐÐó    c                  ó(   — t          ¦   «         \  } }| S ©N©r    )r   Ú_s     r   Úruntime_availabler&   <   s   € Ý+Ñ-Ô-�L€IˆqØÐr!   c                  ó(   — t          ¦   «         \  } }|S r#   r$   )r%   r   s     r   Úruntime_versionr(   A   s   € Ý)Ñ+Ô+�J€A€wØ€Nr!   c                  óæ   — t          ¦   «         \  } }|€dS |j        t          k    }|j        t          k    }|r|st          ¦   «         rdS t                               d|t          t          ¦  «         dS )NFTzetriton version %s is not sufficient (>= (%s.%s.*)); set TORCH_NATIVE_SKIP_VERSION_CHECK=1 to override)r    ÚmajorÚ_TRITON_REQUIRED_VERSION_MAJORÚminorÚ_TRITON_MINIMUM_VERSION_MINORr   r   r   )r%   r   Úmajor_okÚminor_oks       r   Ú_version_is_sufficientr0   F   s„   € å)Ñ+Ô+�J€A€wà€Øˆuð Œ}Õ >Ò>€HØŒ}Õ =Ò=€Hàð �Xð Õ";Ñ"=Ô"=ð Øˆtå‡H‚Hð	<àÝ&Ý%ñô ð ð ˆ5r!   c                  ó0   — t          t          ¬¦  «         dS )z+
    Deregister all ops through triton
    )Údisable_dsl_namesN)Ú_deregister_op_overrides_implÚ_TRITON_DSL_NAME© r!   r   r   r   ^   s   € õ "Õ4DÐEÑEÔEÐEÐEÐEr!   F©Úallow_multiple_overrideÚunconditional_overrideÚ
lib_symbolÚ	op_symbolÚdispatch_keyÚcondÚimplr7   r8   c          
      ó¤   — t          ¦   «         \  }}|rt          ¦   «         rdS t          ¦   «         sdS t          t          | ||||||¬¦  «         dS )z¥
    See torch/_native/registry.py for the underlying implementation
    and arguments. This is a thin, DSL-checking wrapper over
    _register_op_override_impl
    Nr6   )r    r
   r0   Ú_register_op_override_implr4   )	r9   r:   r;   r<   r=   r7   r8   r   r   s	            r   r   r   e   s{   € õ 2Ñ3Ô3Ñ€IˆwØð Õ3Ñ5Ô5ð Øˆå!Ñ#Ô#ð ØˆåÝØØØØØØ 7Ø5ð	ñ 	ô 	ð 	ð 	ð 	r!   )r   N)(Ú	functoolsÚloggingÚsysÚtypingr   Útorch._vendor.packaging.versionr   Úbackendsr   r   Úcommon_utilsr   r	   r
   r   r   r   Úregistryr   r   r   r3   r   r?   Ú	getLoggerÚ__name__r   r4   r+   r-   ÚcacheÚtupleÚboolr    r&   r(   r0   ÚstrÚregister_dslÚmodulesr5   r!   r   ú<module>rP      sn  ðØ Ð Ð Ð Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ð Ð à 3Ð 3Ð 3Ð 3Ð 3Ð 3à $Ð $Ð $Ð $Ð $Ð $ðð ð ð ð ð ð ð ð ð ð ð ð :Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ðð ð ð ð ð ð ð ð ð ð ð ð €gÔ˜Ñ!Ô!€ð Ð Ø!"Ð Ø !Ð ð „ð %¨¨g¸©nÐ(<Ô"=ð ð ð ñ „ðð6˜4ð ð ð ð ð
˜ ™ð ð ð ð ð
 „ð ð ð ð ñ „ðð.Fð Fð Fð Fð %*Ø#(ðð ð Øðàðð ðð �dÑ
ð	ð
 ðð "ðð !ðð 
ðð ð ð ðH €Ô ˜( D DÐ):¸C¼KÈÔ<QÑ$RÔ$RÑ SÔ SÐ SÐ SÐ Sr!   