Ë
    îÍ:jb   ã                   óÖ  — U d dl Z d dlm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mZmZmZmZmZ d	Zd
 edd¬«      id
 edd¬«      i edd¬«      ej&                   edd¬«      idœd
 edd¬«      iej(                   edd¬«      ej&                   edd¬«      iej&                   edd¬«      idœd
ej&                  ej*                  z   eddd¬«      iid
ej&                  ej*                  z   eddd¬«      iid
ej&                  ej*                  z   eddd¬«      iid
ej&                  ej*                  z   eddd¬«      iid
ej&                  ej*                  z   edd d¬«      iid
ej&                  ej*                  z   edd!d¬«      iid"œZeeeeeef   ef   f   ed#<    ee«       d*ee   d+efd,„Zd*ed+dfd-„Zg d.¢Zy# e$ r d$Zd%„ Z G d&„ d'«      Zd(„ Zd)„ ZY Œ4w xY w)/é    N)Úpartial)ÚOptionalÚUnioné   )Úlazy_import_flash_attentioné   )Úflash_attention_forward)ÚDeviceÚLayerRepositoryÚModeÚ
get_kernelÚregister_kernel_mappingÚreplace_kernel_forward_from_hubÚuse_kernel_forward_from_hubTÚcudaz!kernels-community/deformable-detrÚMultiScaleDeformableAttention)Úrepo_idÚ
layer_namezkernels-community/moeÚLlama4TextMoezkernels-community/liger_kernelsÚLigerRMSNorm)r   Úrocmzmedmekk/triton-llama-mlpÚTritonLlamaMLPzkernels-community/megablocksÚMegaBlocksMoeMLPzahadnagy/megablockszkernels-community/activationÚFastGELUz>=0.0.4,<0.1.0)r   r   ÚversionÚ	QuickGELUÚNewGELUÚSiluz>=0.1.0ÚGeluÚGeluTanh)r   r   ÚRMSNormÚMLPr   r   r   r   ÚSiLUÚGeLUr    Ú_KERNEL_MAPPINGFc                  ó   — d„ }|S )Nc                 ó   — | S )N© )Úclss    úz/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/transformers/integrations/hub_kernels.pyÚ	decoratorz.use_kernel_forward_from_hub.<locals>.decorator‘   s   € ØˆJó    r(   )ÚargsÚkwargsr+   s      r*   r   r   �   s   € ò	ð Ðr,   c                   ó   — e Zd Zd„ Zy)r   c                 ó   — t        d«      ‚)NzNLayerRepository requires `kernels` to be installed. Run `pip install kernels`.©ÚRuntimeError)Úselfr-   r.   s      r*   Ú__init__zLayerRepository.__init__—   s   € ÜÐoÓpÐpr,   N)Ú__name__Ú
__module__Ú__qualname__r4   r(   r,   r*   r   r   –   s   „ ó	qr,   r   c                  ó   — t        d«      ‚)Nz^replace_kernel_forward_from_hub requires `kernels` to be installed. Run `pip install kernels`.r1   ©r-   r.   s     r*   r   r   š   s   € ÜØló
ð 	
r,   c                  ó   — t        d«      ‚)NzVregister_kernel_mapping requires `kernels` to be installed. Run `pip install kernels`.r1   r9   s     r*   r   r   Ÿ   s   € ÜÐsÓtÐtr,   Úattn_implementationÚreturnc                 ó>   — | duxr t        j                  d| «      duS )zJCheck whether `attn_implementation` matches a kernel pattern from the hub.Nz'^[^/:]+/[^/:]+(?:@[^/:]+)?(?::[^/:]+)?$)ÚreÚsearch)r;   s    r*   Ú	is_kernelr@   £   s-   € ð 	 4Ð'ò 	cÜ�I‰IÐ@ÐBUÓVÐ^bÐbðr,   c                 óÆ  — t        | «      syt        st        d«      ‚ddlm} ddlm} d}| }d| v r%| j                  d«      \  }}|j                  |«      }d|v r%|j                  d«      \  }}|j                  «       }n|}d}|j                  «       }|j                  d«      \  }}}|j                  «       }|r|j                  «       nd}	 t        ||¬	«      }	t        |	d«      r#|€t        }t!        ||	¬«      }t#        |	d¬«       n|�t%        |	|«      }|j'                  | «       |j'                  | |d   «       y# t        $ r}
t        d
|› d|
› d�«      ‚d}
~
ww xY w)zALoad and register the kernel associated to `attn_implementation`.Nzƒ`kernels` is either not installed or uses an incompatible version. Please install the latest version with `pip install -U kernels`.r   )ÚALL_MASK_ATTENTION_FUNCTIONS)ÚALL_ATTENTION_FUNCTIONSú|ú:ú@)Úrevisionz-An error occurred while trying to load from 'z': ú.Úflash_attn_varlen_func)ÚimplementationT)Úforce_importÚflash_attention_2)r@   Ú_kernels_availableÚImportErrorÚmasking_utilsrB   Úmodeling_utilsrC   ÚsplitÚgetÚstripÚ	partitionr   Ú	ExceptionÚ
ValueErrorÚhasattrr	   r   r   ÚgetattrÚregister)r;   rB   rC   Úattention_wrapperÚactual_attn_namer   Úkernel_nameÚ_ÚrevÚkernelÚeÚkernel_functions               r*   Úload_and_register_kernelrb   «   s‹  € äÐ(Ô)ØÝÜðOó
ð 	
õ =Ý8àÐà*ÐØ
Ð!Ñ!Ø.A×.GÑ.GÈÓ.LÑ+ÐÐ+à3×7Ñ7Ð8IÓJÐà
ÐÑØ/×5Ñ5°cÓ:Ñˆ�Ø!×'Ñ'Ó)‰à"ˆØˆØ�m‰m‹o€Gà×'Ñ'¨Ó,�O€GˆQ�Ø�m‰m‹o€GÙˆ#�)‰)Œ+ $€Cð[Ü˜G¨cÔ2ˆô ˆvÐ/Ô0ØÐ$Ü 7ÐÜ!Ð"3ÀFÔKˆÜ# F¸Ö>Ø	Ð	 Ü! &¨+Ó6ˆà×$Ñ$Ð%8¸/ÔJØ ×)Ñ)Ð*=Ð?[Ð\oÑ?pÕqøô ò [ÜÐHÈÈ	ÐQTÐUVÐTWÐWXÐYÓZÐZûð[ús   ÃE  Å 	E Å	EÅE )r   r   r   r   )r>   Ú	functoolsr   Útypingr   r   Úmodeling_flash_attention_utilsr   Úflash_attentionr	   Úkernelsr
   r   r   r   r   r   r   rM   Ú	INFERENCEÚTRAININGÚTORCH_COMPILEr%   ÚdictÚstrÚ__annotations__rN   Úboolr@   rb   Ú__all__r(   r,   r*   ú<module>rp      sÂ  ðô 
Ý ß "å HÝ 4ðJu÷÷ ñ ð Ðð ‘OØ;Ø:ôð*
ð ‘Oà/Ø*ôð
ñ $Ø9Ø)ôð —‘¡Ø=Ø-ô!ðñ
ð ‘OØ2Ø+ôð
ð —‘™Ø:Ø1ô ð —‘¡Ø:Ø1ô!ð	ð —‘¡Ø1Ø1ô!ðñ
ð& Ø—‘ ×!3Ñ!3Ñ3±_Ø:Ø)Ø,ô6ðð
ð Ø—‘ ×!3Ñ!3Ñ3±_Ø:Ø*Ø,ô6ðð
ð Ø—‘ ×!3Ñ!3Ñ3±_Ø:Ø(Ø,ô6ðð
ð Ø—‘ ×!3Ñ!3Ñ3±_Ø:ÀvÐW`ô6ðð
ð Ø—‘ ×!3Ñ!3Ñ3±_Ø:ÀvÐW`ô6ðð
ð Ø—‘ ×!3Ñ!3Ñ3±_Ø:ÀzÐ[dô6ðð
ñ{dM€O�T˜#˜t E¨&°#¨+Ñ$6¸Ð$GÑHÐHÑIó dñL ˜OÔ,ð4 8¨C¡=ð °Tó ð1r°#ð 1r¸$ó 1ròh�øði ò uØÐò÷qñ qò
ô
uð)uús   ¡FG ÇG(Ç'G(