§
    ŠŠtjÒ  ã                   ó8  — U 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 ed› dd› dd› �¦  «         ed› dd› dd› �¦  «         ed› dd› dd› �¦  «        hZee         ed<   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Úcutedslé   ú.é   Ú_CUTEDSL_REQUIRED_VERSIONSÚreturnc                  óä   — t          j        ¦   «         sdS ddl} | j        j        �dS ddg}t          |¦  «        }|€d}t          d¦  «        }nt                               d|¦  «         d	}d}||fS )
z\
    Check if cutedsl (and deps) are available.

    NOTE: Doesn't import at this point
    )FNr   N)Únvidia_cutlass_dslÚcutlass)Úapache_tvm_ffiÚtvm_ffiTr   z`CuTeDSL operators require optional Python packages `nvidia-cutlass-dsl` and `apache-tvm-ffi`; %sF)	Ú_cudaÚis_builtÚtorchÚversionÚhipr	   r   ÚlogÚinfo)r   ÚdepsÚreasonÚ	availabler    s        úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_native/cutedsl_utils.pyÚ_check_runtime_availabler(   %   s¥   € õ Œ>ÑÔð Øˆ}ð
 €L€L€Là„}ÔÐ$Øˆ}ð 	*Ø%ð€Dõ ! Ñ&Ô&€FØ€~Øˆ	Ý$Ð%9Ñ:Ô:ˆˆõ 	�Šðð ñ		
ô 	
ð 	
ð ˆ	ØˆØ�gÐÐó    c                  ó(   — t          ¦   «         \  } }| S ©N©r(   )r&   Ú_s     r'   Úruntime_availabler.   P   s   € Ý+Ñ-Ô-�L€IˆqØÐr)   c                  ó(   — t          ¦   «         \  } }|S r+   r,   ©r-   r    s     r'   Úruntime_versionr1   U   s   € Ý)Ñ+Ô+�J€A€wØ€Nr)   c                  óœ   — t          ¦   «         \  } }t          ¦   «         s	|t          v rdS t                               d|t          ¦  «         dS )NTz`cutedsl version %s is not known-good (ok: %s); set TORCH_NATIVE_SKIP_VERSION_CHECK=1 to overrideF)r(   r   r   r"   r#   r0   s     r'   Ú_version_is_okr3   Z   sW   € å)Ñ+Ô+�J€A€wÝ Ñ"Ô"ð  wÕ2LÐ'LÐ'LØˆtå‡H‚Hð	<àÝ"ñ	ô ð ð ˆ5r)   c                  ó0   — t          t          ¬¦  «         dS )z,
    Deregister all ops through cuteDSL
    )Údisable_dsl_namesN)Ú_deregister_op_overrides_implÚ_CUTEDSL_DSL_NAME© r)   r'   r   r   i   s   € õ "Õ4EÐFÑFÔFÐFÐFÐFr)   F©Úallow_multiple_overrideÚunconditional_overrideÚ
lib_symbolÚ	op_symbolÚdispatch_keyÚcondÚimplr:   r;   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
    Nr9   )r(   r
   r3   Ú_register_op_override_implr7   )	r<   r=   r>   r?   r@   r:   r;   r&   r    s	            r'   r   r   p   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   r6   r   rB   Ú	getLoggerÚ__name__r"   r7   r   ÚsetÚ__annotations__ÚcacheÚtupleÚboolr(   r.   r1   r3   ÚstrÚregister_dslÚmodulesr8   r)   r'   ú<module>rU      sÜ  ðØ Ð Ð Ð Ð Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ð Ð à 3Ð 3Ð 3Ð 3Ð 3Ð 3à $Ð $Ð $Ð $Ð $Ð $ðð ð ð ð ð ð ð ð ð ð ð ð :Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ðð ð ð ð ð ð ð ð ð ð ð ð €gÔ˜Ñ!Ô!€ð Ð ð €GˆqˆNˆN�1ˆNˆN�qˆNˆNÑÔØ€GˆqˆNˆN�1ˆNˆN�qˆNˆNÑÔØ€GˆqˆNˆN�1ˆNˆN�qˆNˆNÑÔð,Ð ˜C œLð ð ñ ð „ð' %¨¨g¸©nÐ(<Ô"=ð 'ð 'ð 'ñ „ð'ðT˜4ð ð ð ð ð
˜ ™ð ð ð ð ð
 „ð˜ð ð ð ñ „ððGð Gð Gð Gð %*Ø#(ðð ð Øðàðð ðð �dÑ
ð	ð
 ðð "ðð !ðð 
ðð ð ð ðH €Ô ˜) T TÐ*;¸S¼[ÈÔ=RÑ%SÔ%SÑ TÔ TÐ TÐ TÐ Tr)   