+
    QV-jó  ã                   ó¾   € ^ RI t ^RIHtHtHt ^RIHt ]P                  ! ]4      t	]! RRR7      t
]! RRR7      t]! 4       t]! 4       tR R	 ltR
 R ltRR R lltR# )é    N)Úis_torch_npu_availableÚis_torch_xpu_availableÚlogging)Úis_torch_greater_or_equalz2.5T)Ú
accept_devz2.8c                ód   € V ^8„  d   QhR\         P                  R\        R\         P                  /# )é   Úhidden_statesÚn_repÚreturn)ÚtorchÚTensorÚint)Úformats   "Úy/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/transformers/integrations/sdpa_attention.pyÚ__annotate__r      s.   € ÷ 	Uñ 	UœUŸ\™\ð 	U´#ð 	U¼%¿,¹,ñ 	Uó    c                ó˜   € V P                   w  r#rEV^8X  d   V # V R,          P                  W#WV4      p V P                  W#V,          WE4      # )zÈ
This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch,
num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim)
)ºNNNr   Nr   r   )ÚshapeÚexpandÚreshape)r
   r   ÚbatchÚnum_key_value_headsÚslenÚhead_dims   &&    r   Ú	repeat_kvr      sU   € ð
 2?×1DÑ1DÑ.€E Ø�„zØÐØ!Ð"2Õ3×:Ñ:¸5ÐW\ÐdlÓm€MØ× Ñ  ¸eÕ(CÀTÓTÐTr   c                ór   € V ^8„  d   QhR\         P                  R,          R\         P                  R\        /# )r	   Úattention_maskNÚkeyr   )r   r   Úbool)r   s   "r   r   r      s3   € ÷ 	Jñ 	J¤E§L¡L°4Õ$7ð 	J¼e¿l¹lð 	JÌtñ 	Jr   c                 óJ   € \         '       d   \        # \        ;'       d    V R J # )N)Ú_is_torch_xpu_availableÚ#_is_torch_greater_or_equal_than_2_8Ú#_is_torch_greater_or_equal_than_2_5)r   r    s   &&r   Úuse_gqa_in_sdpar&      s#   € ÷ ÓÜ2Ð2Ü.×IÐI°>ÀTÐ3IÐIr   c                óT  € V ^8„  d   QhR\         P                  P                  R\         P                  R\         P                  R\         P                  R\         P                  R,          R\        R\        R,          R	\
        R,          R
\        \         P                  R3,          /	# )r	   ÚmoduleÚqueryr    Úvaluer   NÚdropoutÚscalingÚ	is_causalr   )r   ÚnnÚModuler   Úfloatr!   Útuple)r   s   "r   r   r   (   s    € ÷ @ñ @Ü�H‰H�O‰Oð@ä�<‰<ð@ô 
�‰ð@ô �<‰<ð	@ô
 —L‘L 4Õ'ð@ô ð@ô �T�\ð@ô �d�{ð@ô Œ5�<‰<˜ÐÕñ@r   c                 ó´  € VP                  R R4      '       d   \        P                  R4       / p	\        V R4      '       dA   \	        WB4      '       g,   \        W P                  4      p\        W0P                  4      pMRR/p	Ve   TM\        V RR4      pVP                  ^,          ^8„  ;'       d    VRJ ;'       d    Tp\        P                  P                  4       '       d1   \        V\        P                  4      '       d   VP                  4       p\        '       da   Ve]   VP                   \        P"                  8w  d>   \        P$                  ! VP#                  4       4      P'                  VP(                  4      p\        P*                  P,                  P.                  ! VVV3RVR	VR
VRV/V	B p
V
P1                  ^^4      P3                  4       p
V
R3# )Úoutput_attentionsFzƒ`sdpa` attention does not support `output_attentions=True`. Please set your attention to `eager` if you want any of these features.Únum_key_value_groupsÚ
enable_gqaTNr-   Ú	attn_maskÚ	dropout_pÚscale)ÚgetÚloggerÚwarning_onceÚhasattrr&   r   r4   Úgetattrr   r   ÚjitÚ
is_tracingÚ
isinstancer   ÚitemÚ_is_torch_npu_availableÚdtyper!   Úlogical_notÚtoÚdevicer.   Ú
functionalÚscaled_dot_product_attentionÚ	transposeÚ
contiguous)r(   r)   r    r*   r   r+   r,   r-   ÚkwargsÚsdpa_kwargsÚattn_outputs   &&&&&&&&,  r   Úsdpa_attention_forwardrN   (   sª  € ð ‡z�zÐ% u×-Ò-Ü×ÑðWô	
ð €KÜˆvÐ-×.Ò.Ü˜~×3Ò3Ü˜C×!<Ñ!<Ó=ˆCÜ˜e×%@Ñ%@ÓA‰Eà'¨Ð.ˆKð 'Ò2‘	¼ÀÈÐUYÓ8Z€Ið —‘˜A• Ñ"×KÐK ~¸Ð'=×KÐKÀ)€Iô ‡y�y×Ñ×Ò¤*¨Y¼¿¹×"EÒ"EØ—N‘NÓ$ˆ	÷
 ÓØÒ%¨.×*>Ñ*>Ä%Ç*Á*Ô*Lä"×.Ò.¨~×/BÑ/BÓ/DÓE×HÑHÈÏÉÓVˆNä—(‘(×%Ñ%×BÒBØØØñ	ð !ð		ð
 ð	ð ð	ð ð	ð ñ	€Kð ×'Ñ'¨¨1Ó-×8Ñ8Ó:€Kà˜ÐÐr   )g        NN)r   Úutilsr   r   r   Úutils.import_utilsr   Ú
get_loggerÚ__name__r:   r%   r$   r#   rB   r   r&   rN   © r   r   Ú<module>rT      sl   ðÛ ç KÑ KÝ :ð 
×	Ò	˜HÓ	%€ñ '@ÀÐRVÔ&WÐ #Ù&?ÀÐRVÔ&WÐ #Ù0Ó2Ð Ù0Ó2Ð õ	Uõ	J÷@ñ @r   