
     `ib                         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           n## e$ r d$Zd% Z G d& d'          Zd( Zd) ZY nw xY wd*ee         d+efd,Zd*ed+dfd-Zg d.ZdS )/    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    y/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/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dS )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ppr,   N)__name__
__module____qualname__r4   r(   r,   r*   r   r      s(        	q 	q 	q 	q 	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ttr,   attn_implementationreturnc                 8    | duo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@BUVV^bbr,   c                 h   t          |           sdS t          st          d          ddlm} ddlm} d}| }d| v r-|                     d          \  }}|                    |          }d|v r-|                    d          \  }}|	                                }n|}d}|	                                }|
                    d          \  }}}|	                                }|r|	                                nd}	 t          ||	          }	n(# t          $ r}
t          d
| d|
 d          d}
~
ww xY wt          |	d          r,|t          }t!          ||	          }t#          |	d           n|t%          |	|          }|                    | |           |                    | |d                    dS )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88888*
!!!.A.G.G.L.L++3778IJJ
/55c::!''))"mmooG'',,OGQmmooG
&#))+++$C[Gc222 [ [ [YYYUVYYYZZZ[ v/00 7$ 7!"3FKKK#F>>>>>		 !&+66$$%8/JJJ ))*=?[\o?pqqqqqs   8D
 

D/D**D/)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 H H H H H 4 4 4 4 4 4Ju                   OO;:  *
 OO/*  
 $O9)   =-! ! !
 
 OO2+  
 :1      :1! ! !	 11! ! !
 
& !33__:),6 6 6
 !33__:*,6 6 6
 !33__:(,6 6 6
 !33__:vW`6 6 6
 !33__:vW`6 6 6
 !33__:z[d6 6 6
{dM dMOT#tE&#+$6$GHHI d d dL O,,,, u u u  q q q q q q q q
 
 

u u u u u)u08C= T    1r# 1r$ 1r 1r 1r 1rh  s   E8F F:9F: