ó
    Këgj°œ  ã                  óì  • S SK Jr  S SKrS SKrS SKJr  S SKJs  Jr  S SK	r	S SK
Jr  S SKJr  S SKJrJrJr  \	R&                  " S S S S S	.5      \	R(                  " S@S
 V Vs/ s H  n S  H  n\	R+                  SU 0US9PM     M!     snn / SQS.\D6\	R,                                      SAS j5       5       5       r\	R&                  " S S S S S	.5      \	R(                  " S@S Vs/ s H  n\	R+                  0 US9PM     sn/ SQS.\D6\	R,                                  SBS j5       5       5       r\	R&                  " S S S S S.5      \	R(                  " S@S
 V Vs/ s H  n S  H  n\	R+                  SU 0US9PM     M!     snn / SQS.\D6\	R,                                        SCS j5       5       5       r\	R&                  " S S  S! S" S.5      \	R(                  " S@S Vs/ s H  n\	R+                  0 US9PM     sn/ S#QS.\D6\	R,                                    SDS$ j5       5       5       r\" S%5            SE                   SFS& jj5       r\" S%5               SG                           SHS' jj5       r " S( S)\R:                  R<                  5      r " S* S+\R:                  R<                  5      r      SI                 SJS, jjr!     SI                 SJS- jjr"    SK                   SLS. jjr#    SK                 SMS/ jjr$ " S0 S1\RJ                  5      r& " S2 S3\RJ                  5      r' " S4 S5\&5      r( " S6 S7\'5      r) " S8 S9\RJ                  5      r* " S: S;\*5      r+ " S< S=\RJ                  5      r, " S> S?\,5      r-gs  snn f s  snf s  snn f s  snf )Né    )ÚannotationsN)Údispatch)Úautotune_cache_kwargsÚget_multiprocessor_countÚinput_guardc                ó   • U S   S L$ ©NÚresidual_out© ©Úargss    Ú©C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\fla/modules/fused_norm_gate.pyÚ<lambda>r      ó   € ¨4°Ñ+?ÀtÑ+Kó    c                ó   • U S   S L$ ©NÚresidualr   r   s    r   r   r      ó   €  T¨*Ñ%5¸TÑ%Ar   c                ó   • U S   S L$ ©NÚwr   r   s    r   r   r      ó   €  4¨¡9°DÑ#8r   c                ó   • U S   S L$ ©NÚbr   r   s    r   r   r      ó   €   c¡°$Ñ!6r   )ÚSTORE_RESIDUAL_OUTÚHAS_RESIDUALÚ
HAS_WEIGHTÚHAS_BIAS)é   é    é@   )é   é   r"   ÚBT)Ú	num_warps)ÚDÚNBÚIS_RMS_NORMr   r   r    )ÚconfigsÚkeyc                óÌ  • [         R                  " S5      R                  [         R                  5      nUU-  [         R                  " SU5      -   n[         R                  " SU5      nUU:  nUU
:  nUS S 2S 4   US S S 24   -  nU US S 2S 4   U-  -   US S S 24   -   n[         R
                  " UUSS9R                  [         R                  5      nU(       aO  UUS S 2S 4   U-  -   US S S 24   -   nU[         R
                  " UUSS9R                  [         R                  5      -  nU(       aR  UUS S 2S 4   U-  -   US S S 24   -   n[         R                  " UUR                  UR                  R                  5      US9  U(       d›  [         R                  " USS9U-  nUU-   n [         R                  " U UR                  U R                  R                  5      US9  [         R                  " US S S 24   UUS S 2S 4   -
  S5      n![         R                  " U!U!-  SS9U-  n"O:[         R                  " US S S 24   US5      n![         R                  " U!U!-  SS9U-  n"S[         R                  " U"U	-   5      -  n#UU-   n$[         R                  " U$U#R                  U$R                  R                  5      US9  U(       a5  [         R
                  " UU-   US9R                  [         R                  5      n%U(       a5  [         R
                  " UU-   US9R                  [         R                  5      n&U(       d  UWS S 2S 4   -
  U#S S 2S 4   -  OUU#S S 2S 4   -  n'U(       a  U'W%S S S 24   -  OU'n(U(       a  U(W&S S S 24   -   n(UUS S 2S 4   U-  -   US S S 24   -   n)[         R
                  " U)USS9R                  [         R                  5      n*US:X  d  US:X  a  U(U*-  [         R                  " U*5      -  n(OUS	:X  a  U([         R                  " U*5      -  n(UUS S 2S 4   U-  -   US S S 24   -   n+[         R                  " U+U(R                  U+R                  R                  5      US9  g )
Nr   ç        ©ÚmaskÚother©r1   é   ©ÚaxisÚswishÚsiluÚsigmoid)ÚtlÚ
program_idÚtoÚint64ÚarangeÚloadÚfloat32ÚstoreÚdtypeÚ
element_tyÚsumÚwhereÚsqrtr9   ),ÚxÚgÚyr   r   r   r
   ÚmeanÚrstdÚepsÚTr)   r'   ÚBDr*   Ú
ACTIVATIONr+   r   r   r    r!   Úi_tÚo_tÚo_dÚm_dÚm_tÚm_xÚp_xÚb_xÚp_resÚ	p_res_outÚb_meanÚp_meanÚb_xbarÚb_varÚb_rstdÚp_rstdÚb_wÚb_bÚb_x_hatÚb_yÚp_gÚb_gÚp_ys,                                               r   Úlayer_norm_gated_fwd_kernelrg      sÉ  € ôJ �-Š-˜Ó
×
Ñ
œbŸh™hÓ
'€Cà
�‰(”R—Y’Y˜q "Ó%Ñ
%€CÜ
�)Š)�A�rÓ
€CØ
�‰'€CØ
�‰'€CØ
Ša�ˆg‰,˜˜T¢1˜W™Ñ
%€Cà
ˆc’!�T�'‰l˜QÑÑ
  Tª1 W¡Ñ
-€CÜ
�'Š'�#˜C sÑ
+×
.Ñ
.¬r¯z©zÓ
:€CÞØ˜3šq $˜w™<¨!Ñ+Ñ+¨c°$º°'©lÑ:ˆØŒr�wŠw�u 3¨cÑ2×5Ñ5´b·j±jÓAÑAˆÞØ  3¢q¨$ w¡<°!Ñ#3Ñ3°c¸$Â¸'±lÑBˆ	Ü
�Š�˜CŸF™F 9§?¡?×#=Ñ#=Ó>ÀSÒIÞÜ—’˜ !Ñ$ qÑ(ˆØ˜‘ˆÜ
�Š�˜Ÿ™ 6§<¡<×#:Ñ#:Ó;À#ÒFÜ—’˜#˜d¢A˜g™,¨¨f²Q¸°W©oÑ(=¸sÓCˆÜ—’�v ‘¨QÑ/°!Ñ3‰ä—’˜#˜d¢A˜g™,¨¨SÓ1ˆÜ—’�v ‘¨QÑ/°!Ñ3ˆØ”—’˜ ™Ó%Ñ%€Fà�C‰Z€FÜ‡H‚HˆV�V—Y‘Y˜vŸ|™|×6Ñ6Ó7¸cÒBæÜ�gŠg�a˜#‘g CÑ(×+Ñ+¬B¯J©JÓ7ˆÞÜ�gŠg�a˜#‘g CÑ(×+Ñ+¬B¯J©JÓ7ˆÞ?Jˆs�VšA˜t˜G‘_Ñ$¨ªq°$¨w©Ò7ÐPSÐV\Ò]^Ð`dÐ]dÑVeÑPe€GÞ$.ˆ'�C˜ša˜‘LÒ
 °G€CÞØ�C˜ša˜‘LÑ ˆð ˆc’!�T�'‰l˜QÑÑ
  Tª1 W¡Ñ
-€CÜ
�'Š'�#˜C sÑ
+×
.Ñ
.¬r¯z©zÓ
:€CØ�WÓ 
¨fÓ 4Ø�C‰iœ"Ÿ*š* S›/Ñ)‰Ø	�yÓ	 Ø”B—J’J˜s“OÑ#ˆð ˆc’!�T�'‰l˜QÑÑ
  Tª1 W¡Ñ
-€CÜ‡H‚HˆS�#—&‘&˜Ÿ™×-Ñ-Ó.°SÓ9r   c                ó   • U S   S L$ r	   r   r   s    r   r   r   q   r   r   c                ó   • U S   S L$ r   r   r   s    r   r   r   r   r   r   c                ó   • U S   S L$ r   r   r   s    r   r   r   s   r   r   c                ó   • U S   S L$ r   r   r   s    r   r   r   t   r   r   )é   r%   r&   r"   )r)   r+   r   r   r    c                ó,  • [         R                  " S5      nU UU
-  -  n UUU
-  -  nUUU
-  -  nU(       a  UUU
-  -  nU(       a  UUU
-  -  n[         R                  " SU5      nUU
:  n[         R                  " U U-   USS9R	                  [         R
                  5      nU(       a9  U[         R                  " UU-   USS9R	                  [         R
                  5      -  nU(       a  [         R                  " UU-   UUS9  U(       di  [         R                  " USS9U
-  n[         R                  " UU-   U5        [         R                  " UUU-
  S5      n[         R                  " UU-  SS9U
-  nO3[         R                  " UUS5      n[         R                  " UU-  SS9U
-  nS[         R                  " UU	-   5      -  n[         R                  " UU-   U5        U(       a5  [         R                  " UU-   US9R	                  [         R
                  5      nU(       a5  [         R                  " UU-   US9R	                  [         R
                  5      nU(       d  UW-
  U-  OUU-  nU(       a  UW-  OUnU(       a  UW-   n[         R                  " UU-   USS9R	                  [         R
                  5      nUS:X  d  US:X  a  UU-  [         R                  " U5      -  nOUS	:X  a  U[         R                  " U5      -  n[         R                  " UU-   UUS9  g )
Nr   r/   r0   r3   r5   r4   r7   r8   r9   )r:   r;   r>   r?   r<   r@   rA   rD   rE   rF   r9   )rG   rH   rI   r   r   r   r
   rJ   rK   rL   r)   rN   rO   r+   r   r   r    r!   rP   rR   rS   rW   rZ   r\   r]   r^   r`   ra   rb   rc   re   s                                  r   Úlayer_norm_gated_fwd_kernel1rn   o   sƒ  € ôD �-Š-˜Ó
€CØˆˆq‰�L€AØˆˆq‰�L€AØˆˆq‰�L€AÞØ�C˜!‘GÑˆÞØ˜˜a™Ñˆä
�)Š)�A�rÓ
€CØ
�‰'€CÜ
�'Š'�!�c‘' ¨3Ñ
/×
2Ñ
2´2·:±:Ó
>€CÞØŒr�wŠw�x #‘~¨C°sÑ;×>Ñ>¼r¿z¹zÓJÑJˆÞÜ
�Š� Ñ# S¨sÒ3ÞÜ—’˜ !Ñ$ qÑ(ˆÜ
�Š�˜‘˜VÔ$Ü—’˜#˜s V™|¨SÓ1ˆÜ—’�v ‘¨QÑ/°!Ñ3‰ä—’˜#˜s CÓ(ˆÜ—’�v ‘¨QÑ/°!Ñ3ˆØ”—’˜ ™Ó%Ñ%€FÜ‡H‚HˆT�C‰Z˜Ô æÜ�gŠg�a˜#‘g CÑ(×+Ñ+¬B¯J©JÓ7ˆÞÜ�gŠg�a˜#‘g CÑ(×+Ñ+¬B¯J©JÓ7ˆÞ-8ˆs�V‰|˜vÒ%¸cÀF¹l€GÞ%ˆ'�CŠ-¨7€CÞØ�C‰iˆô �'Š'�!�c‘' ¨3Ñ
/×
2Ñ
2´2·:±:Ó
>€CØ�WÓ 
¨fÓ 4Ø�C‰iœ"Ÿ*š* S›/Ñ)‰Ø	�yÓ	 Ø”B—J’J˜s“OÑ#ˆô ‡H‚HˆQ�‰W�c Ó$r   c                ó   • U S   S L$ ©NÚ	dresidualr   r   s    r   r   r   Â   ó   €  d¨;Ñ&7¸tÑ&Cr   c                ó   • U S   S L$ r   r   r   s    r   r   r   Ã   r   r   c                ó   • U S   S L$ r   r   r   s    r   r   r   Ä   r   r   c                ó   • U S   S L$ ©NrI   r   r   s    r   r   r   Å   ó   € ¨¨c©¸$Ñ)>r   )ÚHAS_DRESIDUALr    r!   ÚRECOMPUTE_OUTPUT)r)   r*   r+   rx   r    c                ó0  • [         R                  " S5      n[         R                  " SU5      nUU:  nU(       aZ  [         R                  " UU-   US9R	                  [         R
                  5      n[         R                  " UU4[         R
                  S9nU(       a[  [         R                  " UU-   USS9R	                  [         R
                  5      n [         R                  " UU4[         R
                  S9n![        UU-  UU-  U-   U5       GH  n"U"[         R                  " SU5      -   R	                  [         R                  5      n#U#U:  n$U$S S 2S 4   US S S 24   -  n%U U#S S 2S 4   U-  -   US S S 24   -   n&UU#S S 2S 4   U-  -   US S S 24   -   n'UU#S S 2S 4   U-  -   US S S 24   -   n(UU#S S 2S 4   U-  -   US S S 24   -   n)UU#S S 2S 4   U-  -   US S S 24   -   n*[         R                  " U&U%SS9R	                  [         R
                  5      n+[         R                  " U'U%SS9R	                  [         R
                  5      n,[         R                  " U(U%SS9R	                  [         R
                  5      n-U(       d  UU#-   n.[         R                  " U.U$SS9n/UU#-   n0[         R                  " U0U$SS9n1U(       d  U+W/S S 2S 4   -
  U1S S 2S 4   -  OU+U1S S 2S 4   -  n2[         R                  " US S S 24   U2S5      n2U(       a  U2WS S S 24   -  OU2n3U(       a  U3W S S S 24   -   n3U(       aR  UU#S S 2S 4   U-  -   US S S 24   -   n4[         R                  " U4U3R	                  U4R                  R                  5      U%S9  [         R                  " U,5      n5US:X  d  US:X  a  U-U3-  U5U,U5-  SU5-
  -  -   -  n6U-U,-  U5-  n-OUS	:X  a  U-U3-  U5-  SU5-
  -  n6U-U5-  n-U-n7U(       d  U(       a-  U"[         R                  " SU5      -   [        UU-  U-   U5      :  n$U(       a*  U-W-  n7W[         R                  " U$S S 2S 4   U-U2-  S5      -  nU(       a"  W![         R                  " U$S S 2S 4   U-S5      -  n!U(       dW  [         R                  " U2U7-  SS
9U-  n8[         R                  " U7SS
9U-  n9U7U2U8S S 2S 4   -  U9S S 2S 4   -   -
  U1S S 2S 4   -  n:O4[         R                  " U2U7-  SS
9U-  n8U7U2U8S S 2S 4   -  -
  U1S S 2S 4   -  n:U(       aQ  U
U#S S 2S 4   U-  -   US S S 24   -   n;[         R                  " U;U%SS9R	                  [         R
                  5      n<U:U<-  n:U(       aR  UU#S S 2S 4   U-  -   US S S 24   -   n=[         R                  " U=U:R	                  U=R                  R                  5      U%S9  [         R                  " U)U:R	                  U)R                  R                  5      U%S9  [         R                  " U*W6R	                  U*R                  R                  5      U%S9  GM     U(       a2  [         R                  " UUU-  -   U-   [         R                  " WSS
9US9  U(       a3  [         R                  " U	UU-  -   U-   [         R                  " W!SS
9US9  g g ©Nr   r3   ©rB   r/   r0   r7   r8   r4   r9   r5   )r:   r;   r>   r?   r<   r@   ÚzerosÚranger=   rE   rA   rB   rC   r9   ÚminrD   )>rG   rH   r   r   rI   ÚdyÚdxÚdgÚdwÚdbrq   Údresidual_inrJ   rK   rM   ÚBSr)   r'   rN   r*   rO   r+   ÚSTORE_DRESIDUALrx   r    r!   ry   Úi_srR   rS   r`   Úb_dwra   Úb_dbrP   rQ   rT   rU   rV   rd   Úp_dyÚp_dxÚp_dgrW   re   Úb_dyr[   rZ   r_   r^   Úb_xhatrc   rf   Úb_sigmoid_gÚb_dgÚb_wdyÚb_c1Úb_c2Úb_dxÚp_dresÚb_dresÚ	p_dres_ins>                                                                 r   Úlayer_norm_gated_bwd_kernelr™   À   s  € ôV �-Š-˜Ó
€CÜ
�)Š)�A�rÓ
€CØ
�‰'€CÞÜ�gŠg�a˜#‘g CÑ(×+Ñ+¬B¯J©JÓ7ˆÜ�xŠx˜˜R˜¬¯
©
Ñ3ˆÞÜ�gŠg�a˜#‘g C¨sÑ3×6Ñ6´r·z±zÓBˆÜ�xŠx˜˜R˜¬¯
©
Ñ3ˆô �S˜2‘X˜s R™x¨"™}¨b×1ˆØ”R—Y’Y˜q "Ó%Ñ%×)Ñ)¬"¯(©(Ó3ˆØ�A‰gˆØ’!�T�'‰l˜S ¢q ™\Ñ)ˆØ�#’a˜�g‘, Ñ"Ñ" S¨ªq¨¡\Ñ1ˆØ�#’a˜�g‘, Ñ"Ñ" S¨ªq¨¡\Ñ1ˆØ�Cš˜4˜‘L 1Ñ$Ñ$ s¨4²¨7¡|Ñ3ˆØ�Cš˜4˜‘L 1Ñ$Ñ$ s¨4²¨7¡|Ñ3ˆØ�Cš˜4˜‘L 1Ñ$Ñ$ s¨4²¨7¡|Ñ3ˆä�gŠg�c ¨3Ñ/×2Ñ2´2·:±:Ó>ˆÜ�gŠg�c ¨3Ñ/×2Ñ2´2·:±:Ó>ˆÜ�wŠw�t #¨SÑ1×4Ñ4´R·Z±ZÓ@ˆæØ˜C‘ZˆFÜ—W’W˜V¨#°SÑ9ˆFØ˜‘ˆÜ—’˜ c°Ñ5ˆæBM�#˜šq $˜w™Ñ'¨6²!°T°'©?Ò:ÐSVÐY_Ò`aÐcgÐ`gÑYhÑShˆÜ—’˜#˜d¢A˜g™,¨°Ó4ˆæ'1ˆf�s˜4¢˜7‘|Ò#°vˆÞØ˜˜D¢!˜G™Ñ$ˆCÞØ�cš!˜T˜'‘l QÑ&Ñ&¨¨T²1¨W©Ñ5ˆCÜ�HŠH�S˜#Ÿ&™& §¡×!5Ñ!5Ó6¸SÒAä—j’j “oˆØ˜Ó  J°&Ó$8Ø˜#‘: ¨s°[Ñ/@ÀAÈÁOÑ/TÑ!TÑUˆDØ˜#‘: Ñ+‰DØ˜9Ó$Ø˜#‘: Ñ+¨q°;©Ñ?ˆDØ˜+Ñ%ˆDØˆæžð œŸš 1 bÓ)Ñ)¬S°°r±¸B±ÀÓ-BÑBˆCÞØ˜3‘JˆEØ”B—H’H˜S¢ D ™\¨4°&©=¸#Ó>Ñ>ˆDÞØ”B—H’H˜S¢ D ™\¨4°Ó5Ñ5ˆDÞÜ—6’6˜& 5™.¨qÑ1°AÑ5ˆDÜ—6’6˜% aÑ(¨1Ñ,ˆDØ˜V dª1¨d¨7¡mÑ3°dº1¸d¸7±mÑCÑDÈÊqÐRVÈwÉÑW‰Dä—6’6˜& 5™.¨qÑ1°AÑ5ˆDØ˜F Tª!¨T¨'¡]Ñ2Ñ2°fºQÀ¸W±oÑEˆDÞØ ¢Q¨ W¡°Ñ!1Ñ1°C¸ºa¸±LÑ@ˆFÜ—W’W˜V¨#°SÑ9×<Ñ<¼R¿Z¹ZÓHˆFØ�F‰NˆDæØ$ sª1¨d¨7¡|°aÑ'7Ñ7¸#¸dÂA¸g¹,ÑFˆIÜ�HŠH�Y §¡¨	¯©×(BÑ(BÓ CÈ#ÒNä
�Š��t—w‘w˜tŸz™z×4Ñ4Ó5¸CÒ@Ü
�Š��t—w‘w˜tŸz™z×4Ñ4Ó5¸CÕ@ñC 2öF Ü
�Š��c˜A‘g‘ Ñ#¤R§V¢V¨D°qÑ%9ÀÒDÞÜ
�Š��c˜A‘g‘ Ñ#¤R§V¢V¨D°qÑ%9ÀÓDð r   c                ó   • U S   S L$ rp   r   r   s    r   r   r   E  rr   r   c                ó   • U S   S L$ r   r   r   s    r   r   r   F  r   r   c                ó   • U S   S L$ r   r   r   s    r   r   r   G  r   r   c                ó   • U S   S L$ rv   r   r   s    r   r   r   H  rw   r   )r)   r+   r‡   rx   r    c                ó¤	  • [         R                  " S5      n[         R                  " SU5      nUU:  nU UU-  U-  -  n UUU-  U-  -  nU(       a  U
UU-  U-  -  n
U(       a  UUU-  U-  -  nUUU-  U-  -  nUUU-  U-  -  nUUU-  U-  -  nU(       a  UUU-  U-  -  nU(       aY  [         R                  " UU-   US9R	                  [         R
                  5      n[         R                  " U4[         R
                  S9nU(       aZ  [         R                  " UU-   USS9R	                  [         R
                  5      n[         R                  " U4[         R
                  S9n[        UU-  [        UU-  U-   U5      5       GHÿ  n [         R                  " U U-   USS9R	                  [         R
                  5      n![         R                  " UU-   USS9R	                  [         R
                  5      n"[         R                  " UU-   USS9R	                  [         R
                  5      n#U(       d  [         R                  " UU -   5      n$[         R                  " UU -   5      n%U(       d  U!W$-
  U%-  OU!U%-  n&[         R                  " UU&S5      n&U(       a  U&W-  OU&n'U(       a  U'W-   n'U(       a  [         R                  " UU-   U'US9  [         R                  " U"5      n(US:X  d  US:X  a  U#U'-  U(U"U(-  SU(-
  -  -   -  n)U#U"-  U(-  n#OUS	:X  a  U#U'-  U(-  SU(-
  -  n)U#U(-  n#U#n*U(       a  U#W-  n*WU#U&-  -  nU(       a  WU#-  nU(       dB  [         R                  " U&U*-  SS
9U-  n+[         R                  " U*SS
9U-  n,U*U&U+-  U,-   -
  U%-  n-O&[         R                  " U&U*-  SS
9U-  n+U*U&U+-  -
  U%-  n-U(       a;  [         R                  " U
U-   USS9R	                  [         R
                  5      n.U-U.-  n-U(       a  [         R                  " UU-   U-US9  [         R                  " UU-   U-US9  [         R                  " UU-   W)US9  U U-  n UU-  nU(       a  U
U-  n
U(       a  UU-  nU(       a  UU-  nUU-  nUU-  nUU-  nGM     U(       a  [         R                  " UUU-  -   U-   WUS9  U(       a   [         R                  " U	UU-  -   U-   WUS9  g g r{   )r:   r;   r>   r?   r<   r@   r}   r~   r   rE   rA   r9   rD   )/rG   rH   r   r   rI   r€   r�   r‚   rƒ   r„   rq   r…   rJ   rK   rM   r†   r)   rN   rO   r+   r‡   rx   r    r!   ry   rˆ   rR   r1   r`   r‰   ra   rŠ   rP   rW   re   rŽ   rZ   r^   r�   rc   r�   r‘   r’   r“   r”   r•   r—   s/                                                  r   Úlayer_norm_gated_bwd_kernel1rŸ   C  sq  € ôR �-Š-˜Ó
€CÜ
�)Š)�A�rÓ
€CØ�‰7€DØˆˆr‰�A‰Ñ€AØˆˆr‰�A‰Ñ€AÞØ�S˜2‘X ‘\Ñ!ˆ	ÞØ˜˜b™ 1™Ñ$ˆØˆ#�‰(�Q‰,Ñ€BØˆ#�‰(�Q‰,Ñ€BØˆ#�‰(�Q‰,Ñ€BÞØ	ˆS�2‰X˜‰\ÑˆÞÜ�gŠg�a˜#‘g DÑ)×,Ñ,¬R¯Z©ZÓ8ˆÜ�xŠx˜˜¤R§Z¡ZÑ0ˆÞÜ�gŠg�a˜#‘g D°Ñ4×7Ñ7¼¿
¹
ÓCˆÜ�xŠx˜˜¤R§Z¡ZÑ0ˆä�S˜2‘Xœs 3¨¡8¨b¡=°!Ó4×5ˆä�gŠg�a˜#‘g D°Ñ2×5Ñ5´b·j±jÓAˆÜ�gŠg�a˜#‘g D°Ñ2×5Ñ5´b·j±jÓAˆÜ�wŠw�r˜C‘x d°!Ñ4×7Ñ7¼¿
¹
ÓCˆæÜ—W’W˜T C™ZÓ(ˆFÜ—’˜ ™Ó$ˆæ0;�#˜‘, &Ò(ÀÀvÁˆÜ—’˜$ ¨Ó,ˆæ(ˆf�sŠl¨fˆÞØ˜‘)ˆCÞÜ�HŠH�Q˜‘W˜c¨Ò-ä—j’j “oˆØ˜Ó  J°&Ó$8Ø˜#‘: ¨s°[Ñ/@ÀAÈÁOÑ/TÑ!TÑUˆDØ˜#‘: Ñ+‰DØ˜9Ó$Ø˜#‘: Ñ+¨q°;©Ñ?ˆDØ˜+Ñ%ˆDØˆÞØ˜3‘JˆEØ�D˜6‘MÑ!ˆDÞØ�D‰LˆDÞÜ—6’6˜& 5™.¨qÑ1°AÑ5ˆDÜ—6’6˜% aÑ(¨1Ñ,ˆDØ˜V d™]¨TÑ1Ñ2°fÑ<‰Dä—6’6˜& 5™.¨qÑ1°AÑ5ˆDØ˜F T™MÑ)¨VÑ3ˆDÞÜ—W’W˜Y¨™_°4¸qÑA×DÑDÄRÇZÁZÓPˆFØ�F‰NˆDæÜ�HŠH�\ CÑ'¨°DÒ9Ü
�Š��c‘˜4 dÒ+Ü
�Š��c‘˜4 dÒ+à	ˆQ‰ˆØ	ˆQ‰ˆÞØ˜‰NˆIÞØ˜AÑˆLÞØ�‰FˆAØ
ˆa‰ˆØ
ˆa‰ˆØ
ˆa‰‹ñu 6öv Ü
�Š��c˜A‘g‘ Ñ# T°Ò5ÞÜ
�Š��c˜A‘g‘ Ñ# T°Ó5ð r   Úmodulesc
                óÞ  ^• Ub  UR                   nU R                  u  mn
Ub  UR                  TU
4:X  d   eUb  UR                  U
4:X  d   eUb  UR                  U
4:X  d   e[        R                  " Xc  U R                   OUS9nUc  Ub0  X€R                   :w  a!  [        R                  " TX R
                  US9nOS nU	(       d/  [        R                  " T4[        R                  U R
                  S9OS n[        R                  " T4[        R                  U R
                  S9nSU R                  5       -  n[        U[        R                  " U
5      5      nU
U:”  a  [        S5      eU
S::  a[  [        R                  " TS5      nU4S jn[        U   " S0 SU _S	U_S
U_SU_SU_SU_SU_SU_SU_SU_ST_SU
_SU_SU_SU_SU	_6  O[        T4   " U UUUUUUUUUU
UUU	S9  X½Xìb  U4$ U 4$ )Nr|   ©ÚdevicerB   ©rB   r£   é   ú4This layer norm doesn't support feature dim >= 64KB.é   c                ó:   >• [         R                  " TU S   5      4$ )Nr'   )ÚtritonÚcdiv)ÚmetarM   s    €r   ÚgridÚ"layer_norm_gated_fwd.<locals>.gridí  s   ø€ Ü—K’K  4¨¡:Ó.Ð0Ð0r   rG   rH   rI   r   r   r   r
   rJ   rK   rL   rM   r)   rN   r*   rO   r+   )rG   rH   rI   r   r   r   r
   rJ   rK   rL   r)   rN   rO   r+   r   )rB   ÚshapeÚtorchÚ
empty_likeÚemptyr£   ÚfloatÚelement_sizer   r©   Únext_power_of_2ÚRuntimeErrorrª   rg   rn   )rG   rH   ÚweightÚbiasÚ
activationrL   r   Ú	out_dtypeÚresidual_dtypeÚis_rms_normr)   rI   r
   rJ   rK   ÚMAX_FUSED_SIZErN   r*   r¬   rM   s                      @r   Úlayer_norm_gated_fwdr½   Â  sU  ø€ ð ÑØ!Ÿ™ˆØ�7‰7�D€A€qØÑØ�~‰~ ! Q Ó'Ð'Ð'ØÑØ�|‰| ˜tÓ#Ð#Ð#ØÑØ�z‰z˜a˜TÓ!Ð!Ð!ä×Ò˜Ñ-> !§'¢'ÀIÑN€AØÑ Ñ :¸~×QXÑQXÓ?XÜ—{’{ 1 a·±ÀÑO‰àˆÞHSŒ5�;Š;˜�t¤5§;¡;°q·x±xÒ@ÐY]€DÜ�;Š;˜�t¤5§;¡;°q·x±xÑ@€Dà˜aŸn™nÓ.Ñ.€NÜ	ˆ^œV×3Ò3°AÓ6Ó	7€BØˆ2ƒvÜÐQÓRÐRð 	ˆCƒxô �[Š[˜˜IÓ&ˆõ	1ô 	$ DÒ)ò 	
Ùð	
áð	
ñ ð	
ñ ð		
ñ
 ð	
ñ ð	
ñ &ð	
ñ ð	
ñ ð	
ñ ð	
ñ ð	
ñ ð	
ñ ð	
ñ ð	
ñ "ð	
ñ  $ò!	
ô& 	% a TÒ*ØØØØØØØ%ØØØØØØ!Ø#ò	
ð" �DÑ*B˜,ÐIÐIÈÐIÐIr   c                ó  • UR                   u  pïU R                   Xï4:X  d   eU	b  U	R                   Xï4:X  d   eUb  UR                   U4:X  d   eUb  UR                   U4:X  d   eUc  [        R                  " U5      O[        R                  " XïXÁR                  S9nUc  [        R                  " U5      O[        R                  " XïXÁR                  S9nU
(       a0  UR
                  UR
                  :w  a  [        R                  " U5      OS nU(       a*  [        R                  " XïU R
                  U R                  S9OS nSUR                  5       -  n[        U[        R                  " U5      5      nUU:”  a  [        S5      e[        [        UR                  R                  5      U5      n[        R                  " UU-  5      nUb0  [        R                  " UU4[        R                  UR                  S9OS nUb0  [        R                  " UU4[        R                  UR                  S9OS nU4nUS::  ai  [        R                   " US5      n["        U   " S0 SU_SU_SU_SU_S	U_S
U _SU_SU_SU_SU_SU	_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SUS L_6  ON[$        U   " S0 SU_SU_SU_SU_S	U_S
U _SU_SU_SU_SU_SU	_SU_SU_SU_SU_SU_SU_SU_SU_SU_SUS L_6  Ub*  UR'                  S5      R)                  UR
                  5      OS nUb*  UR'                  S5      R)                  UR
                  5      OS nU
(       a  UR
                  UR
                  :X  a  UnU(       d  UUUUU4$ UUUUUU4$ )Nr¤   r¥   r¦   r§   rG   rH   r   r   rI   r€   r�   r‚   rƒ   r„   rq   r…   rJ   rK   rM   r)   r†   rN   r*   rO   r+   r‡   r   r   )r®   r¯   r°   r±   r£   rB   r³   r   r©   r´   rµ   r   ÚindexÚmathÚceilr²   rª   r™   rŸ   rD   r<   )r€   rG   rH   r¶   r·   r¸   rL   rJ   rK   rq   Úhas_residualr»   Úx_dtypeÚrecompute_outputrM   r)   r�   r‚   r…   rI   r¼   rN   ÚNSr†   rƒ   r„   r¬   r*   s                               r   Úlayer_norm_gated_bwdrÆ     s)  € ð" �7‰7�D€AØ�8‰8˜�vÓÐÐØÑØ�‰ 1 &Ó(Ð(Ð(ØÑØ�|‰| ˜tÓ#Ð#Ð#ØÑØ�z‰z˜a˜TÓ!Ð!Ð!à '¡Œ×	Ò	˜!Ô	´U·[²[ÀÈW×]eÑ]eÑ5f€BØ '¡Œ×	Ò	˜!Ô	´U·[²[ÀÈW×]eÑ]eÑ5f€BÞ*6¸2¿8¹8ÀqÇwÁwÓ;N”5×#Ò# AÔ&ÐTX€LÞ?OŒ�Š�A §¡°·±Ò;ÐUY€Að ˜aŸn™nÓ.Ñ.€NÜ	ˆ^œV×3Ò3°AÓ6Ó	7€BØˆ2ƒvÜÐQÓRÐRô 
Ô% a§h¡h§n¡nÓ5°qÓ	9€BÜ	�Š�1�r‘6Ó	€BàJPÑJ\Œ�Š�b˜!�W¤E§K¡K¸¿¹Ò	FÐbf€BØHLÑHXŒ�Š�b˜!�W¤E§K¡K¸¿¹Ò	DÐ^b€BØˆ5€DàˆCƒxô �[Š[˜˜IÓ&ˆä# DÒ)ò 	
Ùð	
áð	
ñ ð	
ñ ð		
ñ
 ð	
ñ ð	
ñ ð	
ñ ð	
ñ ð	
ñ ð	
ñ  ð	
ñ &ð	
ñ ð	
ñ ð	
ñ ð	
ñ  ð!	
ñ" ð#	
ñ$ ð%	
ñ& ð'	
ñ( "ð)	
ñ* $ð+	
ð, )°Ñ4ò-	
ô2 	% TÒ*ò 	
Ùð	
áð	
ñ ð	
ñ ð		
ñ
 ð	
ñ ð	
ñ ð	
ñ ð	
ñ ð	
ñ ð	
ñ  ð	
ñ &ð	
ñ ð	
ñ ð	
ñ ð	
ñ  ð!	
ñ" ð#	
ñ$ ð%	
ñ& "ð'	
ñ( $ð)	
ð* )°Ñ4ñ+	
ð. (.Ñ'9ˆ�‰�‹�‰�f—l‘lÔ	#¸t€BØ%)Ñ%5ˆ�‰�‹�‰�d—j‘jÔ	!¸4€Bæ˜Ÿ™ A§G¡GÓ+ØˆÞ1AˆB��B˜˜LÐ)ÐhÈÈBÐPRÐTVÐXdÐfgÐGhÐhr   c                  ó€   • \ rS rSr\\     S                   SS jj5       5       r\\S 5       5       rSrg)ÚLayerNormGatedFunctioniƒ  Nc                óŽ  • UR                   nUR                   nUR                  SUR                   S   5      nUR                  SUR                   S   5      nUb1  UR                   U:X  d   eUR                  SUR                   S   5      nUb  UR                  OU	(       a  [        R                  OS n[        UUUUUUUUU
S9	u  pïnnU R                  UX#XOU5        X°l        XÀl        XPl	        Xpl
        X l        US LU l        X€l        UR                  U l        UR                  U5      nU(       d  U$ UUR                  U5      4$ )Néÿÿÿÿ)	rG   rH   r¶   r·   r¸   rL   r   rº   r»   )r®   ÚreshaperB   r¯   r²   r½   Úsave_for_backwardÚ
x_shape_ogÚ
g_shape_ogr¸   rL   r»   rÂ   ÚprenormrÃ   )ÚctxrG   rH   r¶   r·   r¸   r   rL   rÏ   Úresidual_in_fp32r»   rÍ   rÎ   rº   rI   rJ   rK   r
   s                     r   ÚforwardÚLayerNormGatedFunction.forward„  s6  € ð —W‘Wˆ
Ø—W‘Wˆ
à�I‰I�b˜!Ÿ'™' "™+Ó&ˆØ�I‰I�b˜!Ÿ'™' "™+Ó&ˆØÑØ—>‘> ZÓ/Ð/Ð/Ø×'Ñ'¨¨H¯N©N¸2Ñ,>Ó?ˆHØ+3Ñ+?˜ŸšÖUeÄeÇkÂkÐkoˆÜ&:ØØØØØ!ØØØ)Ø#ñ
'
Ñ#ˆ��|ð 	×Ñ˜l¨A°tÀ4ÔHØ#ŒØ#ŒØ#ŒØŒØ%ŒØ#¨4Ð/ˆÔØŒØ—g‘gˆŒØ�I‰I�jÓ!ˆÞˆqÐJ a¨×)=Ñ)=¸jÓ)IÐ%JÐJr   c                óª  • U R                   u  p4pVpxUR                  SUR                  S   5      nUR                  UR                  :X  d   eU R                  (       aA  US   n	U	R                  SU	R                  S   5      n	U	R                  UR                  :X  d   eOS n	[	        UUUUUU R
                  U R                  UUU	U R                  U R                  U R                  S9u  p«pÍnU
R                  U R                  5      UR                  U R                  5      UUS U R                  (       a  UR                  U R                  5      OS S S S S 4
$ )NrÊ   r   )r€   rG   rH   r¶   r·   r¸   rL   rJ   rK   rq   rÂ   r»   rÃ   )Úsaved_tensorsrË   r®   rÏ   rÆ   r¸   rL   rÂ   r»   rÃ   rÍ   rÎ   )rÐ   r€   r   rG   rH   r¶   r·   rJ   rK   rq   r�   r‚   rƒ   r„   Údres_ins                  r   ÚbackwardÚLayerNormGatedFunction.backward³  s3  € ð *-×):Ñ):Ñ&ˆˆf˜DØ�Z‰Z˜˜BŸH™H R™LÓ)ˆØ�x‰x˜1Ÿ7™7Ó"Ð"Ð"Ø�;�;Ø˜Q™ˆIØ!×)Ñ)¨"¨i¯o©o¸bÑ.AÓBˆIØ—?‘? a§g¡gÓ-Ð-Ñ-àˆIÜ"6ØØØØØØ—~‘~Ø—‘ØØØØ×)Ñ)ØŸ™Ø—K‘Kñ#
Ñˆ�˜ð  �J‰J�s—~‘~Ó&Ø�J‰J�s—~‘~Ó&ØØØØ/2×/?×/?ˆG�O‰O˜CŸN™NÔ+ÀTØØØØð
ð 	
r   r   ©Nç�íµ ÷Æ°>FFF)rG   útorch.TensorrH   rÛ   r¶   rÛ   r·   rÛ   r¸   Ústrr   útorch.Tensor | NonerL   r²   rÏ   ÚboolrÑ   rÞ   r»   rÞ   ©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ústaticmethodr   rÒ   r×   Ú__static_attributes__r   r   r   rÈ   rÈ   ƒ  s¸   † ØØð )-ØØØ!&Ø!ð+Kàð+Kð ð+Kð ð	+Kð
 ð+Kð ð+Kð &ð+Kð ð+Kð ð+Kð ð+Kð ô+Kó ó ð+KðZ Øñ$
ó ó ó$
r   rÈ   c                  ó„   • \ rS rSr\\     S                     SS jj5       5       r\\S 5       5       rSrg)ÚLayerNormGatedLinearFunctioniÜ  Nc                óº  • UR                   nUR                   nUR                  SUR                   S   5      nUR                  SUR                   S   5      nUb1  UR                   U:X  d   eUR                  SUR                   S   5      nUb  UR                  OU
(       a  [        R                  OS n[        UUUUUUUUS9u  nnnnUR                  U5      n[        R                  " 5       (       a  [        R                  " 5       OUR                  nUR                  U5      nUb  UR                  U5      OS n[        R                  " UR                  UR                  5      XV5      nU R                  UX#XEUU5        XÀl        XÐl        X€l        X°l        US LU l        X�l        UR                  U l        US L U l        U	(       d  U$ UUR                  U5      4$ )NrÊ   )rG   rH   r¶   r·   rL   r   rº   r»   )r®   rË   rB   r¯   r²   r½   Úis_autocast_enabledÚget_autocast_gpu_dtyper<   ÚFÚlinearrÌ   rÍ   rÎ   rL   r»   rÂ   rÏ   rÃ   Úlinear_bias_is_none)rÐ   rG   rH   Únorm_weightÚ	norm_biasÚlinear_weightÚlinear_biasr   rL   rÏ   rÑ   r»   rÍ   rÎ   rº   rI   rJ   rK   r
   rB   Úouts                        r   rÒ   Ú$LayerNormGatedLinearFunction.forwardÝ  sª  € ð  —W‘Wˆ
Ø—W‘Wˆ
à�I‰I�b˜!Ÿ'™' "™+Ó&ˆØ�I‰I�b˜!Ÿ'™' "™+Ó&ˆØÑØ—>‘> ZÓ/Ð/Ð/Ø×'Ñ'¨¨H¯N©N¸2Ñ,>Ó?ˆHØ+3Ñ+?˜ŸšÖUeÄeÇkÂkÐkoˆÜ&:ØØØØØØØ)Ø#ñ	'
Ñ#ˆˆ4��|ð �I‰I�jÓ!ˆÜ27×2KÒ2K×2MÑ2M”×,Ò,Ô.ÐST×SZÑSZˆØ%×(Ñ(¨Ó/ˆØ/:Ñ/F�k—n‘n UÔ+ÈDˆÜ�hŠh�q—t‘t˜M×/Ñ/Ó0°-ÓMˆà×Ñ˜l¨A¸IÐVZÐ\`ÔaØ#ŒØ#ŒØŒØ%ŒØ#¨4Ð/ˆÔØŒØ—g‘gˆŒØ"-°Ð"5ˆÔÞ!ˆsÐN¨¨\×-AÑ-AÀ*Ó-MÐ'NÐNr   c                ó^  • U R                   u  p4pVpxn	UR                  SUR                  S   5      n[        R                  " XR                  5       5      n
U R                  (       a  S OUR                  S5      nU
R                  UR                  :X  d   eU R                  (       aA  US   nUR                  SUR                  S   5      nUR                  UR                  :X  d   eOS n[        U
UUUUU R                  UU	UU R                  U R                  U R                  SS9u  pÞnnnn[        R                  " SUU5      nUR                  U R                   5      UR                  U R"                  5      UUUUU R                  (       a  UR                  U R                   5      OS S S S S 4$ )NrÊ   r   T)r€   rG   rH   r¶   r·   rL   rJ   rK   rq   rÂ   r»   rÃ   rÄ   z	bo,bi->oi)rÕ   rË   r®   rë   rì   Útrí   rD   rÏ   rÆ   rL   rÂ   r»   rÃ   r¯   ÚeinsumrÍ   rÎ   )rÐ   Údoutr   rG   rH   rî   rï   rð   rJ   rK   r€   Údlinear_biasrq   r�   r‚   Údnorm_weightÚ
dnorm_biasrÖ   rI   Údlinear_weights                       r   r×   Ú%LayerNormGatedLinearFunction.backward  sx  € ð CF×BSÑBSÑ?ˆˆk m¸4Ø�|‰|˜B §
¡
¨2¡Ó/ˆÜ�XŠX�dŸO™OÓ-Ó.ˆØ"×6×6‘t¸D¿H¹HÀQ»KˆØ�x‰x˜1Ÿ7™7Ó"Ð"Ð"Ø�;�;Ø˜Q™ˆIØ!×)Ñ)¨"¨i¯o©o¸bÑ.AÓBˆIØ—?‘? a§g¡gÓ-Ð-Ñ-àˆIÜ7KØØØØØØ—‘ØØØØ×)Ñ)ØŸ™Ø—K‘KØ!ñ8
Ñ4ˆ�˜j¨'°1ô Ÿš k°4¸Ó;ˆà�J‰J�s—~‘~Ó&Ø�J‰J�s—~‘~Ó&ØØØØØ/2×/?×/?ˆG�O‰O˜CŸN™NÔ+ÀTØØØØð
ð 	
r   r   rÙ   )rG   rÛ   rH   rÛ   rî   rÛ   rï   rÛ   rð   rÛ   rñ   rÛ   r   rÝ   rL   r²   rÏ   rÞ   rÑ   rÞ   r»   rÞ   rß   r   r   r   rç   rç   Ü  sÃ   † ØØð )-ØØØ!&Ø!ð0Oàð0Oð ð0Oð "ð	0Oð
  ð0Oð $ð0Oð "ð0Oð &ð0Oð ð0Oð ð0Oð ð0Oð ô0Oó ó ð0Oðd Øñ(
ó ó ó(
r   rç   c	                ó>   • [         R                  U UUUUUUUUS5
      $ ©NF©rÈ   Úapply©	rG   rH   r¶   r·   r¸   r   rÏ   rÑ   rL   s	            r   Úlayer_norm_gatedr  >  s5   € ô "×'Ñ'Ø	Ø	ØØØØØØØØóð r   c	                ó>   • [         R                  U UUUUUUUUS5
      $ ©NTrÿ   r  s	            r   Úrms_norm_gatedr  W  s5   € ô "×'Ñ'Ø	Ø	ØØØØØØØØóð r   c
                ó@   • [         R                  U UUUUUUU	UUS5      $ rþ   ©rç   r   ©
rG   rH   rî   rï   rð   rñ   r   rÏ   rÑ   rL   s
             r   Úlayer_norm_swish_gate_linearr	  p  s8   € ô (×-Ñ-Ø	Ø	ØØØØØØØØØóð r   c
                ó@   • [         R                  U UUUUUUU	UUS5      $ r  r  r  s
             r   Úrms_norm_swish_gate_linearr  ‹  s8   € ô (×-Ñ-Ø	Ø	ØØØØØØØØØóð r   c                  ó”   ^ • \ rS rSr      S               SU 4S jjjrS rS	S jr   S
           SS jjrSrU =r	$ )ÚFusedLayerNormGatedi¦  c                óî  >• XgS.n[         T	U ]  5         Xl        X l        XPl        X@l        U R
                  S;  a  [        SU R
                   35      eU R                  SS 5        U R                  SS 5        U(       ag  [        R                  " [        R                  " U40 UD65      U l        U(       a0  [        R                  " [        R                  " U40 UD65      U l        U R                  5         g ©Nr¢   )r7   r8   r9   zUnsupported activation: r¶   r·   )ÚsuperÚ__init__Úhidden_sizeÚelementwise_affinerL   r¸   Ú
ValueErrorÚregister_parameterÚnnÚ	Parameterr¯   r±   r¶   r·   Úreset_parameters)
Úselfr  r  r·   r¸   rL   r£   rB   Úfactory_kwargsÚ	__class__s
            €r   r  ÚFusedLayerNormGated.__init__§  sÁ   ø€ ð %+Ñ;ˆÜ‰ÑÔà&ÔØ"4ÔØŒØ$Œà�?‰?Ð">Ó>ÜÐ7¸¿¹Ð7HÐIÓJÐJà×Ñ ¨$Ô/Ø×Ñ ¨Ô-ÞÜŸ,š,¤u§{¢{°;Ñ'QÀ.Ñ'QÓRˆDŒKÞÜŸLšL¬¯ª°[Ñ)SÀNÑ)SÓT�”	à×ÑÕr   c                óè   • U R                   (       aa  [        R                  R                  U R                  5        U R
                  b*  [        R                  R                  U R
                  5        g g g ©N)r  r  ÚinitÚones_r¶   r·   Úzeros_©r  s    r   r  Ú$FusedLayerNormGated.reset_parametersÅ  sG   € Ø×"×"Ü�G‰G�M‰M˜$Ÿ+™+Ô&Ø�y‰yÑ$Ü—‘—‘˜tŸy™yÕ)ð %ð #r   c                óè   • U R                   R                   SU R                   3nU R                  (       d  USU R                   3-  nUSU R                   3-  nUSU R
                   3-  nUS-  nU$ ©NÚ(ú, elementwise_affine=ú, eps=z, activation=Ú)©r  rà   r  r  rL   r¸   ©r  Úss     r   Ú__repr__ÚFusedLayerNormGated.__repr__Ë  ó   € Ø�~‰~×&Ñ&Ð' q¨×)9Ñ)9Ð(:Ð;ˆØ×&×&ØÐ(¨×)@Ñ)@Ð(AÐBÑBˆAØ	ˆv�d—h‘h�ZÐ Ñ ˆØ	ˆ}˜TŸ_™_Ð-Ð.Ñ.ˆØ	ˆS‰ˆØˆr   c                ót   • [        UUU R                  U R                  U R                  UU R                  UUS9	$ ©N)r   rL   rÏ   rÑ   )r  r¶   r·   r¸   rL   ©r  rG   rH   r   rÏ   rÑ   s         r   rÒ   ÚFusedLayerNormGated.forwardÔ  s<   € ô  ØØØ�K‰KØ�I‰IØ�O‰OØØ—‘ØØ-ñ

ð 
	
r   )r¸   r·   r  rL   r  r¶   )TFr7   çñhãˆµøä>NN)r  Úintr  rÞ   r·   rÞ   r¸   rÜ   rL   r²   r£   útorch.device | NonerB   útorch.dtype | NoneÚreturnr  ©r8  rÜ   ©NFF©rG   rÛ   rH   rÛ   r   rÝ   rÏ   rÞ   rÑ   rÞ   r8  rÛ   ©
rà   rá   râ   rã   r  r  r-  rÒ   rå   Ú__classcell__©r  s   @r   r  r  ¦  sÈ   ø† ð $(ØØ!ØØ&*Ø$(ð àð ð !ð ð ð	 ð
 ð ð ð ð $ð ð "ð ð 
÷ ð  ò<*ôð )-ØØ!&ð
àð
ð ð
ð &ð	
ð
 ð
ð ð
ð 
÷
ó 
r   r  c                  óŽ   ^ • \ rS rSr     S             SU 4S jjjrS rS	S jr   S
           SS jjrSrU =r	$ )ÚFusedRMSNormGatedié  c                ó‚  >• XVS.n[         TU ]  5         Xl        X l        X0l        X@l        U R
                  S;  a  [        SU R
                   35      eU(       a1  [        R                  " [        R                  " U40 UD65      U l        OU R                  SS 5        U R                  SS 5        U R                  5         g r  )r  r  r  r  rL   r¸   r  r  r  r¯   r±   r¶   r  r  )	r  r  r  rL   r¸   r£   rB   r  r  s	           €r   r  ÚFusedRMSNormGated.__init__ê  s    ø€ ð %+Ñ;ˆÜ‰ÑÔà&ÔØ"4ÔØŒØ$Œà�?‰?Ð">Ó>ÜÐ7¸¿¹Ð7HÐIÓJÐJæÜŸ,š,¤u§{¢{°;Ñ'QÀ.Ñ'QÓRˆD�Kà×#Ñ# H¨dÔ3Ø×Ñ ¨Ô-à×ÑÕr   c                óz   • U R                   (       a*  [        R                  R                  U R                  5        g g r  ©r  r  r  r   r¶   r"  s    r   r  Ú"FusedRMSNormGated.reset_parameters  ó$   € Ø×"×"Ü�G‰G�M‰M˜$Ÿ+™+Õ&ð #r   c                óè   • U R                   R                   SU R                   3nU R                  (       d  USU R                   3-  nUSU R                   3-  nUSU R
                   3-  nUS-  nU$ r%  r*  r+  s     r   r-  ÚFusedRMSNormGated.__repr__
  r/  r   c                ót   • [        UUU R                  U R                  U R                  UU R                  UUS9	$ r1  )r  r¶   r·   r¸   rL   r2  s         r   rÒ   ÚFusedRMSNormGated.forward  s<   € ô ØØØ�K‰KØ�I‰IØ�O‰OØØ—‘ØØ-ñ

ð 
	
r   )r¸   r  rL   r  r¶   )Tr4  r7   NN)r  r5  r  rÞ   rL   r²   r¸   rÜ   r£   r6  rB   r7  r8  r@  r9  r:  r;  r<  r>  s   @r   r@  r@  é  s»   ø† ð $(ØØ!Ø&*Ø$(ð àð ð !ð ð ð	 ð
 ð ð $ð ð "ð ð 
÷ ð  ò8'ôð )-ØØ!&ð
àð
ð ð
ð &ð	
ð
 ð
ð ð
ð 
÷
ó 
r   r@  c                  óT   ^ • \ rS rSr     S             SU 4S jjjrSrU =r$ )ÚFusedLayerNormSwishGatei(  c           	     ó*   >• [         TU ]  UUUUUUS9  g )N)r  r  r·   rL   r£   rB   ©r  r  )r  r  r  r·   rL   r£   rB   r  s          €r   r  Ú FusedLayerNormSwishGate.__init__)  s)   ø€ ô 	‰ÑØ#Ø1ØØØØð 	ò 	
r   r   )TFr4  NN)r  r5  r  rÞ   r·   rÞ   rL   r²   r£   r6  rB   r7  r8  rL  ©rà   rá   râ   rã   r  rå   r=  r>  s   @r   rL  rL  (  sb   ø† ð $(ØØØ&*Ø$(ð
àð
ð !ð
ð ð	
ð
 ð
ð $ð
ð "ð
ð 
!÷
ö 
r   rL  c                  óN   ^ • \ rS rSr    S           SU 4S jjjrSrU =r$ )ÚFusedRMSNormSwishGatei<  c                ó(   >• [         TU ]  UUUUUS9  g ©N)r  r  rL   r£   rB   rN  ©r  r  r  rL   r£   rB   r  s         €r   r  ÚFusedRMSNormSwishGate.__init__=  ó&   ø€ ô 	‰ÑØ#Ø1ØØØð 	ò 	
r   r   ©Tr4  NN)r  r5  r  rÞ   rL   r²   r£   r6  rB   r7  r8  rR  rP  r>  s   @r   rR  rR  <  sU   ø† ð $(ØØ&*Ø$(ð
àð
ð !ð
ð ð	
ð
 $ð
ð "ð
ð 
÷
ö 
r   rR  c                  ó”   ^ • \ rS rSr    S           SU 4S jjjrS rS	S jr     S
               SS jjrSrU =r	$ )ÚFusedLayerNormGatedLineariN  c                ó&  >• XES.n[         TU ]  5         Xl        X l        X0l        U(       a1  [
        R                  " [        R                  " U40 UD65      U l	        OU R                  SS 5        U R                  SS 5        U R                  5         g ©Nr¢   r¶   r·   )r  r  r  r  rL   r  r  r¯   r±   r¶   r  r  ©r  r  r  rL   r£   rB   r  r  s          €r   r  Ú"FusedLayerNormGatedLinear.__init__O  sv   ø€ ð %+Ñ;ˆÜ‰ÑÔà&ÔØ"4ÔØŒæÜŸ,š,¤u§{¢{°;Ñ'QÀ.Ñ'QÓRˆD�Kà×#Ñ# H¨dÔ3Ø×Ñ ¨Ô-à×ÑÕr   c                óz   • U R                   (       a*  [        R                  R                  U R                  5        g g r  rD  r"  s    r   r  Ú*FusedLayerNormGatedLinear.reset_parametersf  rF  r   c                óÄ   • U R                   R                   SU R                   3nU R                  (       d  USU R                   3-  nUSU R                   3-  nUS-  nU$ ©Nr&  r'  r(  r)  ©r  rà   r  r  rL   r+  s     r   r-  Ú"FusedLayerNormGatedLinear.__repr__j  ói   € Ø�~‰~×&Ñ&Ð' q¨×)9Ñ)9Ð(:Ð;ˆØ×&×&ØÐ(¨×)@Ñ)@Ð(AÐBÑBˆAØ	ˆv�d—h‘h�ZÐ Ñ ˆØ	ˆS‰ˆØˆr   c                ób   • [        UUU R                  U R                  UUUU R                  UUS9
$ r1  )r	  r¶   r·   rL   ©r  rG   rH   r¶   r·   r   rÏ   rÑ   s           r   rÒ   Ú!FusedLayerNormGatedLinear.forwardr  s;   € ô ,ØØØ�K‰KØ�I‰IØØØØ—‘ØØ-ñ
ð 	
r   ©r  rL   r  r¶   rX  )r  r5  r  rÞ   rL   r²   r£   r6  rB   r7  r8  rZ  r9  ©NNNFF©rG   rÛ   rH   rÛ   r¶   rÝ   r·   rÝ   r   rÝ   rÏ   rÞ   rÑ   rÞ   r8  rÛ   r<  r>  s   @r   rZ  rZ  N  sÈ   ø† ð $(ØØ&*Ø$(ð àð ð !ð ð ð	 ð
 $ð ð "ð ð 
#÷ ð  ò.'ôð '+Ø$(Ø(,ØØ!&ð
àð
ð ð
ð $ð	
ð
 "ð
ð &ð
ð ð
ð ð
ð 
÷
ó 
r   rZ  c                  óN   ^ • \ rS rSr    S           SU 4S jjjrSrU =r$ )ÚFusedLayerNormSwishGateLineariŠ  c                ó(   >• [         TU ]  UUUUUS9  g rT  rN  rU  s         €r   r  Ú&FusedLayerNormSwishGateLinear.__init__‹  rW  r   r   rX  )r  r5  r  rÞ   rL   r²   r£   r6  rB   r7  r8  rm  rP  r>  s   @r   rm  rm  Š  sU   ø† ð $(ØØ&*Ø$(ð
àð
ð !ð
ð ð	
ð
 $ð
ð "ð
ð 
'÷
ö 
r   rm  c                  ó�   ^ • \ rS rSr    S         SU 4S jjjrS rS	S jr     S
               SS jjrSrU =r	$ )ÚFusedRMSNormGatedLineariœ  c                ó$  >• XES.n[         TU ]  5         Xl        X l        X0l        U R                  SS 5        U R                  SS 5        U(       a0  [        R                  " [        R                  " U40 UD65      U l
        U R                  5         g r\  )r  r  r  r  rL   r  r  r  r¯   r±   r¶   r  r]  s          €r   r  Ú FusedRMSNormGatedLinear.__init__�  sv   ø€ ð %+Ñ;ˆÜ‰ÑÔà&ÔØ"4ÔØŒà×Ñ ¨$Ô/Ø×Ñ ¨Ô-ÞÜŸ,š,¤u§{¢{°;Ñ'QÀ.Ñ'QÓRˆDŒKà×ÑÕr   c                óz   • U R                   (       a*  [        R                  R                  U R                  5        g g r  rD  r"  s    r   r  Ú(FusedRMSNormGatedLinear.reset_parameters³  rF  r   c                óÄ   • U R                   R                   SU R                   3nU R                  (       d  USU R                   3-  nUSU R                   3-  nUS-  nU$ rb  rc  r+  s     r   r-  Ú FusedRMSNormGatedLinear.__repr__·  re  r   c                ób   • [        UUU R                  U R                  UUUU R                  UUS9
$ r1  )r  r¶   r·   rL   rg  s           r   rÒ   ÚFusedRMSNormGatedLinear.forward¿  s;   € ô *ØØØ�K‰KØ�I‰IØØØØ—‘ØØ-ñ
ð 	
r   ri  rX  )
r  rÞ   rL   r²   r£   r6  rB   r7  r8  rq  r9  rj  rk  r<  r>  s   @r   rq  rq  œ  sÀ   ø† ð $(ØØ&*Ø$(ð ð !ð ð ð	 ð
 $ð ð "ð ð 
!÷ ð  ò,'ôð '+Ø$(Ø(,ØØ!&ð
àð
ð ð
ð $ð	
ð
 "ð
ð &ð
ð ð
ð ð
ð 
÷
ó 
r   rq  c                  óN   ^ • \ rS rSr    S           SU 4S jjjrSrU =r$ )ÚFusedRMSNormSwishGateLineari×  c                ó(   >• [         TU ]  UUUUUS9  g rT  rN  rU  s         €r   r  Ú$FusedRMSNormSwishGateLinear.__init__Ø  rW  r   r   rX  )r  r5  r  rÞ   rL   r²   r£   r6  rB   r7  r8  r{  rP  r>  s   @r   r{  r{  ×  sU   ø† ð $(ØØ&*Ø$(ð
àð
ð !ð
ð ð	
ð
 $ð
ð "ð
ð 
%÷
ö 
r   r{  r   )r)   útl.constexprr'   r~  rN   r~  r*   r~  rO   r~  r+   r~  r   r~  r   r~  r    r~  r!   r~  )r)   r~  rN   r~  rO   r~  r+   r~  r   r~  r   r~  r    r~  r!   r~  )r)   r~  r'   r~  rN   r~  r*   r~  rO   r~  r+   r~  r‡   r~  rx   r~  r    r~  r!   r~  ry   r~  )r)   r~  rN   r~  rO   r~  r+   r~  r‡   r~  rx   r~  r    r~  r!   r~  ry   r~  )r7   r4  NNNF)rG   rÛ   rH   rÛ   r¶   rÛ   r·   rÛ   r¸   rÜ   rL   r²   r   rÛ   r¹   útorch.dtyperº   r  r»   rÞ   )	r7   r4  NNNFFNF)r€   rÛ   rG   rÛ   rH   rÛ   r¶   rÛ   r·   rÛ   r¸   rÜ   rL   r²   rJ   rÛ   rK   rÛ   rq   rÛ   rÂ   rÞ   r»   rÞ   rÃ   r  rÄ   rÞ   )r7   NFFrÚ   )rG   rÛ   rH   rÛ   r¶   rÛ   r·   rÛ   r¸   rÜ   r   rÝ   rÏ   rÞ   rÑ   rÞ   rL   r²   )NFFrÚ   )rG   rÛ   rH   rÛ   rî   rÛ   rï   rÛ   rð   rÛ   rñ   rÛ   r   rÝ   rÏ   rÞ   rÑ   rÞ   rL   r²   )rH   rÛ   rî   rÛ   rï   rÛ   rð   rÛ   rñ   rÛ   r   rÝ   rÏ   rÞ   rÑ   rÞ   rL   r²   ).Ú
__future__r   rÀ   r¯   Útorch.nnr  Útorch.nn.functionalÚ
functionalrë   r©   Útriton.languageÚlanguager:   Úfla.modules.backendsr   Ú	fla.utilsr   r   r   Ú
heuristicsÚautotuneÚConfigÚjitrg   rn   r™   rŸ   r½   rÆ   ÚautogradÚFunctionrÈ   rç   r  r  r	  r  ÚModuler  r@  rL  rR  rZ  rm  rq  r{  )r'   r(   s   00r   Ú<module>r�     s  ðõ #ã ã Ý ß Ð Û Ý å )ß RÑ Rð ×ÒáKÙAÙ8Ù6ñ	óð ‡‚ð ÙFRÔoÂlÀÔdnÐW`ˆV�]‰]˜D "˜:°ˆ]Ó;ÑdnÑ;ÁlÒoÚVñð ñð
 ‡�ðH:ð ðH:ð 	ðH:ð 	ðH:ð 	ðH:ð  ð!H:ð" ð#H:ð$ %ð%H:ð& ð'H:ð( ð)H:ð* ó+H:ó óóðH:ðV ×ÒáKÙAÙ8Ù6ñ	óð ‡‚ð ÙERÓSÂ]¸	ˆV�]‰]˜2¨ˆ]Ó3Á]ÑSÚPñð ñð
 ‡�ð@%ð ð@%ð 	ð@%ð ð@%ð ð@%ð %ð@%ð  ð!@%ð" ð#@%ð$ ó%@%ó óóð@%ðF ×ÒáCÙ8Ù6Ù>ñ	óð ‡‚ð ÙFRÔoÂlÀÔdnÐW`ˆV�]‰]˜D "˜:°ˆ]Ó;ÑdnÑ;ÁlÒoÚAñð ñð
 ‡�ðrEð" ð#rEð$ 	ð%rEð& 	ð'rEð( 	ð)rEð* ð+rEð, ð-rEð. "ð/rEð0  ð1rEð2 ð3rEð4 ð5rEð6 #ó7rEó óóðrEðj ×ÒáCÙ8Ù6Ù>ñ	óð ‡‚ð ÙERÓSÂ]¸	ˆV�]‰]˜2¨ˆ]Ó3Á]ÑSÚNñð ñð
 ‡�ðn6ð" ð#n6ð$ 	ð%n6ð& ð'n6ð( ð)n6ð* "ð+n6ð,  ð-n6ð. ð/n6ð0 ð1n6ð2 #ó3n6ó óóðn6ñb 
ˆ)Óð ØØ!Ø!Ø"&ØðQJØðQJàðQJð ðQJð ð	QJð
 ðQJð 
ðQJð ðQJð ðQJð  ðQJð ôQJó ðQJñh 
ˆ)Óð ØØØØ"ØØØØ"ðhiØðhiàðhið ðhið ð	hið
 ðhið ðhið 
ðhið ðhið ðhið ðhið ðhið ðhið ðhið ôhió ðhiôVV
˜UŸ^™^×4Ñ4ô V
ôr_
 5§>¡>×#:Ñ#:ô _
ðN Ø$(ØØ"ØðØðàðð ðð ð	ð
 ðð "ðð ðð ðð 
õð< Ø$(ØØ"ØðØðàðð ðð ð	ð
 ðð "ðð ðð ðð 
õð@ %)ØØ"ØðØðàðð ðð ð	ð
  ðð ðð "ðð ðð ðð 
õðD %)ØØ"Øðàðð ðð ð	ð
  ðð ðð "ðð ðð ðð 
õô6@
˜"Ÿ)™)ô @
ôF<
˜Ÿ	™	ô <
ô~
Ð1ô 
ô(
Ð-ô 
ô$9
 §	¡	ô 9
ôx
Ð$=ô 
ô$8
˜bŸi™iô 8
ôv
Ð"9õ 
ùóq% pùòr Tùób pùòF Ts   Á$&O Ã0O&Å,&O+Ç:O1