ó
    pyüi}K  ã                   óF  • % S SK rS SKrS SKrS SKJr  S SKJr  S SKJ	r	  S SK
Jr  SSKJrJr  SSKJr  S	S
KJr  \R(                  " \5      r S SKJrJrJrJrJr  S SKJr  S SKJr    S SKJ!r!   S SKJ#r$  Sr%\RL                  RO                  SS5      RQ                  5       r)Sr*\)\;   r+S\,4S jrS\,4S jr#S\" SSS90S\" SSS90\RZ                  \" SSS90\RZ                  \" SSS90\RZ                  \" S S!S90\RZ                  \" S"S!S90\RZ                  \" SSS90S#.S\" S$S%S90\R\                  \" S&S'S9\RZ                  \" S&S'S90\RZ                  \" S(S'S90\RZ                  \" S&S'S90\RZ                  \" S&S)S90S*.S\RZ                  \R^                  -  \" S+S,S	S-900S\RZ                  \R^                  -  \" S+S.S	S-900S\RZ                  \R^                  -  \" S+S/S	S-900S\RZ                  \R^                  -  \" S+S0S	S-900S\RZ                  \R^                  -  \" S+S1S	S-900S\RZ                  \R^                  -  \" S+S2S	S-900S3.r0\1\,\1\\,-  \\1\\4   -  4   4   \2S4'   \!b;  \RZ                  \!" S5S6S790\R\                  \!" S5S6S79\RZ                  \!" S5S6S790S8.\0S9'   S: r3S^S; jr4SCS	SD.SES	SD.SES	SD.SFS	SD.SGS	SD.SHSISJ.SK.r5\1\,\1\,\,4   4   \2SL'   0 r6\1\,\	S-  4   \2SM'   SN\,S-  SO\74SP jr8 S_SN\,SQ\S-  SR\7SO\	S-  4SS jjr9\64ST\,SU\1\,\	S-  4   4SV jjr:   S`ST\,SW\,S-  SX\;\,-  S-  SR\7SO\	4
SY jjrSZ\<\   \-  4S[ jr=Sq>\S\ 5       r?/ S]Qr@g! \" a    Sr! GNùf = f! \" a    Sr% GNÿf = f! \" a     Sr*Sr+S< rS= r# " S> S?5      rS@ rSA rSB r4 Nëf = f)aé    N)ÚCallable)Úcontextmanager)Ú
ModuleType)Úversioné   )ÚENV_VARS_TRUE_VALUESÚlogging)Úis_kernels_availableé   )Úflash_attention_forward)ÚDeviceÚLayerRepositoryÚModeÚregister_kernel_mappingÚreplace_kernel_forward_from_hub)Ú
get_kernel)Úuse_kernel_forward_from_hub)ÚFuncRepository)Úuse_kernel_func_from_hubTFÚUSE_HUB_KERNELSÚYESÚ
layer_namec                 ól   • [         (       a  [        U 5      $ [        R                  S[         35        S $ )NúFkernels hub usage is disabled through the environment USE_HUB_KERNELS=c                 ó   • U $ ©N© ©Úclss    Úb/home/mande/repo/quber/.venv/lib/python3.13/site-packages/transformers/integrations/hub_kernels.pyÚ<lambda>Ú-use_kernel_forward_from_hub.<locals>.<lambda>F   s   € ™só    )Ú_kernels_enabledÚ$_kernels_use_kernel_forward_from_hubÚloggerÚwarning_onceÚ_TRANSFORMERS_USE_HUB_KERNELS)r   s    r    r   r   ?   s5   € ßÒÜ7¸
ÓCÐCä×ÑØXÔYvÐXwÐxôñ #Ð"r#   Ú	func_namec                 óÈ   • [         (       a  [        (       a  [        U 5      $ [        (       d  [        R	                  S5        S $ [        R	                  S[
         35        S $ )Nzwuse_kernel_func_from_hub is not available in the installed kernels version. Please upgrade kernels to use this feature.r   c                 ó   • U $ r   r   ©Úfuncs    r    r!   Ú*use_kernel_func_from_hub.<locals>.<lambda>U   s   € ¡r#   )r$   Ú_has_use_kernel_func_from_hubÚ!_kernels_use_kernel_func_from_hubr&   r'   r(   )r)   s    r    r   r   H   s_   € ßÒ× =Ò =Ü4°YÓ?Ð?ç0Ò0Ü×#Ñ#ðBôñ %Ð$ô ×#Ñ#Ø\Ô]zÐ\{Ð|ôñ %Ð$r#   Úcudaz!kernels-community/deformable-detrÚMultiScaleDeformableAttention)Úrepo_idr   zkernels-community/moeÚLlama4TextMoezkernels-community/liger_kernelsÚLigerRMSNormzkernels-community/rmsnormÚRMSNormzkernels-community/mlx_rmsnorm)r1   ÚrocmÚxpuÚmpsÚnpuzmedmekk/triton-llama-mlpÚTritonLlamaMLPzkernels-community/megablocksÚMegaBlocksMoeMLPzahadnagy/megablocksÚCPUMegaBlocksMoeMLP)r1   r7   r8   Úcpuzkernels-community/activationÚFastGELU)r3   r   r   Ú	QuickGELUÚNewGELUÚSiluÚGeluÚGeluTanh)r2   r4   r6   ÚMLPr<   r?   r@   rA   ÚSiLUÚGeLUrD   Ú_KERNEL_MAPPINGzkernels-community/rotaryÚapply_rotary_transformers)r3   r)   )r8   r1   Úrotary_pos_embc                 ób   ^• TU ;   =(       d#    [        U4S jU R                  5        5       5      $ )Nc              3   ój   >#   • U  H(  n[        U[        5      =(       a    [        UT5      v •  M*     g 7fr   )Ú
isinstanceÚdictÚhas_key)Ú.0ÚvÚkeys     €r    Ú	<genexpr>Úhas_key.<locals>.<genexpr>î   s(   øé € Ð[ÒPZÈ1œz¨!¬TÓ2×F´w¸qÀ#³ÔFÒPZùs   ƒ03)ÚanyÚvalues)ÚdrR   s    `r    rO   rO   í   s'   ø€ Ø�a‰x×[œ3Ô[ÐPQ×PXÑPXÔPZÓ[Ó[Ð[r#   c                 ó€   • U c  [         n [        U S5      (       a  [        SS9(       d  [        S5      e[	        U 5        g )Nr8   z0.10.2)ÚMIN_VERSIONzfkernels uses an incompatible version. Please install the latest version with `pip install -U kernels`.)rH   rO   r
   ÚImportErrorr   )Úmappings    r    Ú$register_kernel_mapping_transformersr\   ð   s;   € Ø‰?Ü%ˆGÜ�7˜E×"Ñ"Ô+?ÈH×+UÜØxóð ô 	  Õ(r#   c                  ó   • S nU$ )Nc                 ó   • U $ r   r   r   s    r    Ú	decoratorÚ.use_kernel_forward_from_hub.<locals>.decorator  s   € ØˆJr#   r   ©ÚargsÚkwargsr_   s      r    r   r      s   € ò	ð Ðr#   c                  ó   • S nU$ )Nc                 ó   • U $ r   r   r,   s    r    r_   Ú+use_kernel_func_from_hub.<locals>.decorator  s   € ØˆKr#   r   ra   s      r    r   r     s   € ò	ð Ðr#   c                   ó   • \ rS rSrS rSrg)r   i  c                 ó   • [        S5      e)NzNLayerRepository requires `kernels` to be installed. Run `pip install kernels`.©ÚRuntimeError)Úselfrb   rc   s      r    Ú__init__ÚLayerRepository.__init__  s   € ÜÐoÓpÐpr#   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rl   Ú__static_attributes__r   r#   r    r   r     s   † õ	qr#   r   c                  ó   • [        S5      e)Nz^replace_kernel_forward_from_hub requires `kernels` to be installed. Run `pip install kernels`.ri   ©rb   rc   s     r    r   r     s   € ÜØló
ð 	
r#   c                  ó   • [        S5      e)NzVregister_kernel_mapping requires `kernels` to be installed. Run `pip install kernels`.ri   rt   s     r    r   r     s   € ÜÐsÓtÐtr#   c                  ó   • [        S5      e)Nzcregister_kernel_mapping_transformers requires `kernels` to be installed. Run `pip install kernels`.ri   rt   s     r    r\   r\     s   € ÜØqó
ð 	
r#   zkernels-community/causal-conv1d)r3   r   zkernels-community/mamba-ssmz!kernels-community/finegrained-fp8zkernels-community/deep-gemmzkernels-community/sonic-moez
ep-support)r3   Úrevision)zcausal-conv1dz	mamba-ssmzfalcon_mamba-ssmzfinegrained-fp8z	deep-gemmz	sonic-moeÚ_HUB_KERNEL_MAPPINGÚ_KERNEL_MODULE_MAPPINGÚattn_implementationÚreturnc                 óJ   • U SL=(       a    [         R                  " SU 5      SL$ )zJCheck whether `attn_implementation` matches a kernel pattern from the hub.Nz'^[^/:]+/[^/:]+(?:@[^/:]+)?(?::[^/:]+)?$)ÚreÚsearch)rz   s    r    Ú	is_kernelr   *  s-   € ð 	 4Ð'÷ 	cÜ�IŠIÐ@ÐBUÓVÐ^bÐbðr#   Úattention_wrapperÚallow_all_kernelsc                 óš  • SSK Jn  SSKJn  SU ;   a  U R	                  S5      S   OU n[        U5      (       d  g[        (       d  [        S5      eSU;   a$  UR	                  S5      u  pgUR                  5       nOUnSnUR                  5       nUR                  S	5      u  phn	UR                  5       nU	(       a  U	R                  5       OSn	 [        XiUS
9n
[        U
S5      (       a  Uc  [        nUnOUb  [        X§5      nUR!                  U W5        UR!                  XS   5        U
$ ! [         a  n[        SU SU S35      eSnAff = f)aÕ  
Load and register the kernel associated to `attn_implementation`.

Args:
    attn_implementation: A string, usually a kernel repo like "kernels-community/flash-mla".
    attn_wrapper: a callable for the wrapper around the attention implementation. In `transformers` we
        have a wrapper around the `flash_attn_var_len` call, and the same goes for `sdpa` and `eager`.
        They just prepare the arguments properly. This is mostly used for continious batching, where we
        want the `paged` wrapper, which calls the paged cache.
    allow_all_kernels (`bool`, optional):
        Whether to load kernels from unverified hub repos, if it is a custom kernel outside of the `kernels-community`
        hub repository.
r   )ÚALL_MASK_ATTENTION_FUNCTIONS)ÚALL_ATTENTION_FUNCTIONSÚ|r   Núƒ`kernels` is either not installed or uses an incompatible version. Please install the latest version with `pip install -U kernels`.Ú:Ú@)rw   r�   z-An error occurred while trying to load from 'z': Ú.Úflash_attn_varlen_funcÚflash_attention_2)Úmasking_utilsrƒ   Úmodeling_utilsr„   Úsplitr   Ú_kernels_availablerZ   ÚstripÚ	partitionr   Ú	ExceptionÚ
ValueErrorÚhasattrr   ÚgetattrÚregister)rz   r€   r�   rƒ   r„   Úactual_attn_namer3   Úkernel_nameÚ_ÚrevÚkernelÚeÚkernel_functions                r    Úload_and_register_attn_kernelrž   2  sg  € õ  =Ý8à<?ÐCVÓ<VÐ*×0Ñ0°Ó5°aÒ8Ð\oÐÜÐ%×&Ñ&ØßÒÜðOó
ð 	
ð ÐÓØ/×5Ñ5°cÓ:ÑˆØ!×'Ñ'Ó)‰à"ˆØˆØ�m‰m‹o€Gà×'Ñ'¨Ó,�O€G�Ø�m‰m‹o€GÞˆ#�)‰)Œ+ $€Cð[Ü˜GÐEVÑWˆô ˆvÐ/×0Ñ0ØÑ$Ü 7ÐØ+‰Ø	Ñ	 Ü! &Ó6ˆð ×$Ñ$Ð%8¸/ÔJØ ×)Ñ)Ð*=Ð\oÑ?pÔqà€Møô ó [ÜÐHÈÈ	ÐQTÐUVÐTWÐWXÐYÓZÐZûð[ús   Ã
D) Ä)
E
Ä3EÅE
r˜   r[   c                 óê  • X;   a  [        X   [        5      (       a  X   $ U [        ;  a  [        R	                  SU  S35        S X'   g [
        (       aQ   [        U    S   n[        U    R                  SS 5      n[        U    R                  SS 5      n[        X#US9nXQU '   X   $ SS K
nU R                  SS	5      nS
U S3n UR                  " S[        5      n	[        X˜S 5      n
[!        U
5      (       a&  U
" 5       (       a   UR                  " U 5      nX±U '   U$ S X'   X   $ ! [         a
    S X'    X   $ [         a
    S X'    X   $ f = f! [         a    S n
 Nuf = f! [         a
    S X'    X   $ f = f)NzKernel z! not found in _HUB_KERNEL_MAPPINGr3   rw   r   ©rw   r   r   Ú-r™   Úis_Ú
_availablez..utils.import_utils)rM   r   rx   r&   r'   r�   Úgetr   ÚFileNotFoundErrorÚAssertionErrorÚ	importlibÚreplaceÚimport_moduleÚ__package__r•   r’   Úcallable)r˜   r[   r3   rw   r   r›   r§   Únew_kernel_namer)   Ú	utils_modÚis_kernel_availableÚmodules               r    Úlazy_load_kernelr°   o  sÇ  € ØÓ¤*¨WÑ-AÄ:×"NÑ"NØÑ#Ð#ØÔ-Ó-Ü×Ñ˜g k ]Ð2SÐTÔUØ#ˆÑØßÒð
	(Ü)¨+Ñ6°yÑAˆGÜ*¨;Ñ7×;Ñ;¸JÈÓMˆHÜ)¨+Ñ6×:Ñ:¸9ÀdÓKˆGÜ ÀGÑLˆFØ#)�KÑ ð> ÑÐó- 	à%×-Ñ-¨c°3Ó7ˆØ˜/Ð*¨*Ð5ˆ	ð	'Ø!×/Ò/Ð0FÌÓTˆIÜ")¨)ÀÓ"EÐô Ð'×(Ñ(Ñ-@×-BÑ-Bð,Ø"×0Ò0°OÐ3DÓF�Ø'-˜Ñ$Ø�ð $(ˆGÑ àÑÐøô= !ó 	(Ø#'ˆGÒ ð: ÑÐô9 ó 	(à#'ˆGÒ ð4 ÑÐð9	(ûô ó 	'Ø"&Òð	'ûô ó ,Ø'+�Ò$ð ÑÐð,ús=   ÁAD# Ã#E ÄE Ä#E	Ä6E	ÅE	ÅEÅEÅE2Å1E2rw   r   c                 ó^  • SSK Jn  [        (       d  [        S5      eU R	                  S5      S   nUS:w  a  U(       d  [        S5      eSX@S	.n[        R                  R                  S
5      n[        R                  " U5      [        R                  " S5      :¼  a
  [        XX&S9$ [        XUS9$ )Nr   )Ú__version__r†   Ú/r   zkernels-communityziYou need to specify `allow_all_kernels=True` to use kernels outside of the `kernels-community` repositoryÚtransformers)Ú	frameworkr   r3   Úkernelsz0.10.4)rw   r   Ú
user_agentr    )Ú r²   r�   rZ   rŽ   r“   r§   Úmetadatar   Úpkg_versionÚparseÚget_kernel_hub)r˜   rw   r   r�   r²   Úrepo_parentr·   Úkernels_versions           r    r   r   ž  s¬   € õ çÒÜð-ó
ð 	
ð
 ×#Ñ# CÓ(¨Ñ+€KàÐ)Ó)Ö2CÜØwó
ð 	
ð  .¸+Ñ^€JÜ×(Ñ(×0Ñ0°Ó;€OÜ×Ò˜Ó)¬[×->Ò->¸xÓ-HÓHÜ˜kÀgÑeÐeä˜kÀgÑNÐNr#   Úmodule_namesc                 óD   ^ • [        T [        5      (       a  T /m U 4S jnU$ )a3  
This decorator attaches the target function within the module as a plain attribute (not as a submodule).
Keep in mind that this registration is only meant for `kernelize` to recognize its target modules (i.e.
function exchanged for a weightless `nn.Module` with the same forward) to then exchange to the kernel
variation (in-place) if the conditions are met.

We cache each of these function-based registrations: After proper registration and exchange it is removed
from the module's `_modules` dict as it does not really act as `nn.Module` but a base function.
c                 ó<   >^• U R                   mUU4S jnXl         U $ )Nc                 óþ   >• T" U /UQ70 UD6  U R                   R                  S0 5      nT HN  n[        USS 5      =(       d!    [        USS 5      =(       d    [        USS 5      nUc  [        SU< 35      eXCU'   MP     g )NÚ_hidden_kernelsrn   Úkernel_layer_namer)   z)Could not infer kernel function name for )Ú__dict__Ú
setdefaultr•   r“   )rk   rb   rc   Úhidden_kernelsÚfnÚnamer¿   Ú	orig_inits         €€r    Únew_initÚ8use_kernelized_func.<locals>.decorator.<locals>.new_initË  s’   ø€ Ù�dÐ,˜TÒ, VÒ,ð "Ÿ]™]×5Ñ5Ð6GÈÓLˆNÛ"�ä˜B 
¨DÓ1÷ 6Ü˜rÐ#6¸Ó=÷6ä˜r ;°Ó5ð ð
 ‘<Ü$Ð'PÐQSÑPVÐ%WÓXÐXð (*˜tÓ$ò #r#   )rl   )r   rË   rÊ   r¿   s     @€r    r_   Ú&use_kernelized_func.<locals>.decoratorÈ  s   ù€ Ø—L‘Lˆ	ö	*ð"  ŒØˆ
r#   )rM   r   )r¿   r_   s   ` r    Úuse_kernelized_funcrÎ   »  s&   ø€ ô �,¤×)Ñ)Ø$�~ˆõð. Ðr#   c               #   ó,   #   •  Sq Sv •  Sq g! Sq f = f7f)z×
Context manager used to adjust the value of the global `ALLOW_HUB_KERNELS`. This is needed, as this argument
cannot be forwarded directly to the `__init__` of the models, where we set the attention implementation.
TNF)ÚALLOW_ALL_KERNELSr   r#   r    Úallow_all_hub_kernelsrÑ   æ  s!   é € ð"Ø Ðãð "Ñø˜EÑüs   ‚„ Š�‘)	r   r   r   r   r\   r   r°   r   rÎ   r   )NF)NNF)AÚimportlib.metadatar§   Úosr}   Úcollections.abcr   Ú
contextlibr   Útypesr   Ú	packagingr   rº   Úutilsr   r	   Úutils.import_utilsr
   Úflash_attentionr   Ú
get_loggerrn   r&   r¶   r   r   r   r   r   r   r¼   r   r%   r   rZ   r   r0   r/   Úenvironr¤   Úupperr(   r�   r$   ÚstrÚ	INFERENCEÚTRAININGÚTORCH_COMPILErH   rN   Ú__annotations__rO   r\   rx   ry   Úboolr   rž   r°   ÚintÚlistrÎ   rÐ   rÑ   Ú__all__r   r#   r    Ú<module>rç      s·  ðô Û 	Û 	Ý $Ý %Ý å ,ç 1Ý 5Ý 4ð 
×	Ò	˜HÓ	%€ð}
÷õ õõð
Ý*ð
.ÝYà(,Ð%ð %'§J¡J§N¡NÐ3DÀeÓ$L×$RÑ$RÓ$TÐ!ØÐØ4Ð8LÑLÐð#°ô #ð%¨Cô %ð" ‘OØ;Ø:ñð*
ð ‘OØ/Ø*ñð
ð —‘¡Ø=Ø-ñ!ðð —‘¡Ø=Ø-ñ!ðð —‘¡Ø7Ø(ñ!ðð —‘¡Ø;Ø(ñ!ðð —‘¡Ø=Ø-ñ!ðñ5 
ðD ‘OØ2Ø+ñð
ð —‘™Ø:Ø1ñ ð —‘¡Ø:Ø1ñ!ð	ð —‘¡Ø1Ø1ñ!ðð —‘¡Ø:Ø1ñ!ðð —‘¡Ø:Ø4ñ!ðñ/
ð> Ø—‘ ×!3Ñ!3Ñ3±_Ø:Ø)Øñ6ðð
ð Ø—‘ ×!3Ñ!3Ñ3±_Ø:Ø*Øñ6ðð
ð Ø—‘ ×!3Ñ!3Ñ3±_Ø:Ø(Øñ6ðð
ð Ø—‘ ×!3Ñ!3Ñ3±_Ø:ÀvÐWXñ6ðð
ð Ø—‘ ×!3Ñ!3Ñ3±_Ø:ÀvÐWXñ6ðð
ð Ø—‘ ×!3Ñ!3Ñ3±_Ø:ÀzÐ[\ñ6ðð
ñwBe€O�T˜#˜t F¨S¡L°/ÀDÈÈÐI^ÑD_Ñ2_Ð$_Ñ`Ð`Ñaó BðJ Ñ!ð —‘¡Ø6ÐB]ñ!ðð —‘™~Ø6ÐB]ñ ð —‘¡Ø6ÐB]ñ!ð	ñ-
ˆÐ(Ñ)ò \ô)ð^ "CÈqÑQØ:ÀqÑIØ$AÈaÑPØ#FÐSTÑUØ:ÀqÑIØ:ÈÑUñ2Ð �T˜#˜t C¨ H™~Ð-Ñ.ó ð 8:Ð ˜˜S *¨tÑ"3Ð3Ñ4Ó 9ð 3¨¡:ð °$ô ð diñ:Øð:Ø19¸D±ð:Ø\`ð:à�$Ñõ:ðz Pfñ ,  #ð , °°S¸*ÀtÑ:KÐ5KÑ0Lõ , ðb  Ø $Ø#ñ	OØðOà�D‰jðOð �3‰Y˜ÑðOð ð	Oð
 õOð:$ d¨8¡n°xÑ&?ô $ðP Ð ð ñ"ó ð"ò 
�øðO ó Ø‹ðûð ó .Ø(-Ó%ð.ûðD ó !
ØÐØÐòò÷qñ qò
ò
uô
ð=!
úsU   ÁM: Á(M Á/M+ Á7H=M: ÍM(Í$M: Í'M(Í(M: Í+M7Í3M: Í6M7Í7M: Í:#N ÎN 