
    Phb                         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    _/var/www/html/saasai/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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#        |	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78IJ
/55c:!'')"mmoG'',OGQmmoG#))+$C[Gc2 v/0$ 7!"3FK#F>		 !&+6$$%8/J ))*=?[\o?pq  [H	QTUVTWWX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_:vW`6
 !3!33_:vW`6
 !3!33_:z[d6
{dMOT#tE&#+$6$GHHI dL O,48C= T 1r# 1r$ 1rhi  uq q

u)us   FG G('G(