Ë
    ÄÓ^jÒ  ã                   ó&  — 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j0                  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jN                  d
 eeejP                  e   «      «       y) é    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yddl} | j                  j                  �yddg}t        |«      }|€d}t        d«      }||fS t        j                  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        úf/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_native/cutedsl_utils.pyÚ_check_runtime_availabler(   %   s•   € ô �>‰>ÔØó
 à‡}�}×ÑÐ$Øð 	*Ø%ð€Dô ! Ó&€FØ€~Øˆ	Ü$Ð%9Ó:ˆð �gÐÐô 	�‰ðð ô		
ð ˆ	ØˆØ�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                  óz   — t        «       \  } }t        «       s|t        v ryt        j	                  d|t        «       y)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   s;   € ä)Ó+�J€A€wÜ Ô" wÔ2LÑ'LØä‡H�Hð	<àÜ"ô	ð r)   c                  ó$   — t        t        ¬«       y)z,
    Deregister all ops through cuteDSL
    )Údisable_dsl_namesN)Ú_deregister_op_overrides_implÚ_CUTEDSL_DSL_NAME© r)   r'   r   r   i   s   € ô "Ô4EÖFr)   F©Úallow_multiple_overrideÚunconditional_overrideÚ
lib_symbolÚ	op_symbolÚdispatch_keyÚcondÚimplr:   r;   c          
      ó|   — t        «       \  }}|r
t        «       ryt        «       syt        t        | ||||||¬«       y)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   sF   € ô 2Ó3Ñ€IˆwÙÔ3Ô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å $÷ó ÷ :÷ó ð €g×Ñ˜Ó!€ð Ð ñ ˆqˆc��1�#�Q�q�cˆNÓÙˆqˆc��1�#�Q�q�cˆNÓÙˆqˆc��1�#�Q�q�cˆNÓð,Ð ˜C ™Ló ð ‡�ð' %¨¨g¸©nÐ(<Ñ"=ò 'ó ð'ðT˜4ó ð
˜ ™ó ð
 ‡�ð˜ò ó ðóGð %*Ø#(òØðàðð ðð �dÑ
ð	ð
 ðð "ðð !ðð 
óðH €× Ñ ˜)¡TÐ*;¸S¿[¹[ÈÑ=RÓ%SÕ Tr)   