
    hc                        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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/megablocks)r   r   RMSNormMLPr   _KERNEL_MAPPINGFc                      d }|S )Nc                     | S )N )clss    c/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/transformers/integrations/hub_kernels.py	decoratorz.use_kernel_forward_from_hub.<locals>.decoratora   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__g   s    oppr#   N)__name__
__module____qualname__r+   r   r#   r!   r   r   f   s    	qr#   r   c                      t        d      )Nz^replace_kernel_forward_from_hub requires `kernels` to be installed. Run `pip install kernels`.r(   r$   r%   s     r!   r   r   j   s    l
 	
r#   c                      t        d      )NzVregister_kernel_mapping requires `kernels` to be installed. Run `pip install kernels`.r(   r0   s     r!   r   r   o   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)r2   s    r!   	is_kernelr7   s   s-     	4' 	cII@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#        |	       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`.NzI`kernels` is not installed. Please install it with `pip install kernels`.r   )ALL_MASK_ATTENTION_FUNCTIONS)ALL_ATTENTION_FUNCTIONS|:@)revisionz,An error occured while trying to load from 'z': .flash_attn_varlen_func)implementationflash_attention_2)r7   _kernels_availableImportErrormasking_utilsr9   modeling_utilsr:   splitgetstrip	partitionr   	Exception
ValueErrorhasattrr	   r   r   getattrregister)r2   r9   r:   attention_wrapperactual_attn_namer   kernel_name_revkernelekernel_functions               r!   load_and_register_kernelrX   {   s   ()eff =8*
!!.A.G.G.L++3778IJ
/55c:!'')"mmoG'',OGQmmoG#))+$CZGc2 v/0$ 7!"3FK#F+		 !&+6$$%8/J ))*=?[\o?pq  ZGyPSTUSVVWXYYZs   D> >	EEE)r   r   r   r   )r5   	functoolsr   typingr   r   modeling_flash_attention_utilsr   flash_attentionr	   kernelsr
   r   r   r   r   r   r   rC   	INFERENCETRAININGr   dictstr__annotations__rD   boolr7   rX   __all__r   r#   r!   <module>re      s   
  " H 4Zu    O;:*
 O/*
 $9) =-!
 O2+
 :1  :1!	 11!
E4MOT#tE&#+$6$GHHI 4l O,48C= T .r# .r$ .rbc  uq q

u)us   B4C- -D
	D
