
    [Th                     -   S SK r S SKrS SKrS SKrS SKrS SKJrJrJrJrJ	r	  S SK
Jr  S SKrS SKJr  S SKJr  S SKrS SKJrJrJr  S SK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 S
K$J%r%  S SKJ&r&J'r'J(r(  S SK)J*r*J+r+  SSK,J-r-J.r.  SSKJ/r/J0r0J1r1  \" S5      r2\" S5      r3\Rh                  " \55      r6\Rn                  Rp                  r8\Rn                  Rr                  r9\Rn                  Rt                  r:\Rn                  Rv                  r;\Rn                  Rx                  r<\" / \8Rz                  P\8R|                  P\8R~                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\8R                  P\#P\8R                  P\8R                  P\8R                  P\8R                  R                  P\8R                  R                  P\:R                  P\;R                  P5      rg0 \" 5       E\gErh\8R                  \8R                  \8R                  \8R                  R                  \8R                  \8R                  \8R                  \8R                  \8R                  \8R                  \8R                  \8R                  R                  \8R                  \8R                  \8R                  \8R                  /r{\" \h\{5        S\|\	\R                  R                  \R                  R                  4      S\\\3\24   /\\3\24   4   4S jr\" \8GR                  GR                  /5      S\R                  S\SS4S j5       r\" \8GR
                  GR                  /5      S\R                  S\SS4S j5       r\" \8GR                  R                  /5      SSS.S\GR                  S\\GR                  GR                     S\\GR                  GR                     SS4S jj5       r\" \8GR                  /5      \  SS\R                  S\\GR                  GR                     S\\GR                  GR                     S\R                  4S jj5       5       r\" \8GR                  /5      S \|\	\b\GR                  4      S!\GR                  GR                  S"\S\R                  4S# j5       r\" \8R                  /5      SS$.S\R                  S%\bS&\R                  S\R                  S'\GR                  GR                  S\R                  4S( jj5       rq\" \8GR                  R                  /5      S \|\	\b\GR                  4      S)\|\b   S"\S\R                  4S* j5       r\" \8GR                  /5      S+\R                  S,\R                  S-\R                  S.\|\b   S/\	\b\|\b   4   S0\	\b\|\b   4   S1\	\b\|\b   4   S2\S3\|\b   S4\bS5\|\   S\\R                  \R                  \R                  4   4S6 j5       r\" \8GR"                  GR$                  /5      SS\R                  S7\bS\R                  4S8 jj5       r\" \8GR(                  /5      \S9\R                  S:\R                  S\R                  4S; j5       5       r\" \8GR*                  /5      \  SS9\R                  S<\R                  S=\R                  S>\GR                  GR                  S'\GR                  GR                  S\R                  4S? jj5       5       r\" \8GR,                  /5      \S9\R                  S@\R                  S\R                  4SA j5       5       r\" \8GR.                  R                  /5       SSB\|\R                     S%\bS\R                  4SC jj5       r\" \8GR0                  /5      S\R                  S\R                  4SD j5       r\" \8GR2                  /5      SS$.S\R                  SE\R                  S'\\GR                  GR                     S\R                  4SF jj5       r\" \8GR4                  /5      S9\R                  S\R                  4SG j5       r\" \8GR6                  \8GR8                  /5      S9\R                  S\R                  4SH j5       r\" \8GR:                  \9GR:                  /5      S9\R                  SI\R                  S\R                  4SJ j5       r\" \8GR<                  \9GR<                  /5      S9\R                  SI\R                  S\R                  4SK j5       r\" \8GR>                  5        SS9\R                  S%\\b   SM\S\R                  4SN jj5       r\" \8GR@                  5        SS9\R                  S%\\b   SM\S\R                  4SO jj5       r\" \8GRB                  /5      S9\R                  S%\bSP\bSQ\bS\R                  4
SR j5       r\" \8GRD                  R                  /5      S9\R                  S \|\	\b\GR                  4      S\R                  4SS j5       r\" \8GRD                  GRH                  /5      S9\R                  ST\GRH                  S\R                  4SU j5       r SS\R                  SV\\GRL                     S\GRL                  4SW jjr\" \8GRP                  5      SSSSX.S9\R                  ST\\GRH                     SY\\GRR                     SV\\GRL                     S"\S\R                  4SZ jj5       r\" \8GRT                  5      SSSSX.S9\R                  ST\\GRH                     SY\\GRR                     SV\\GRL                     S"\S\R                  4S[ jj5       r\" \8GRV                  5      SSSSLSL\GRX                  S\.S9\R                  S!\	\b\4   ST\\GRH                     S]\\GR\                     SY\\GRR                     S^\S_\SV\GRL                  S\R                  4S` jj5       r\" \8GR^                  R                  5      SSSSX.S9\R                  Sa\bST\\GRH                     SY\\GRR                     SV\\GRL                     S"\S\R                  4Sb jj5       r\" \8GR^                  GR`                  5      SSSSX.S9\R                  Sc\bSa\bST\\GRH                     SY\\GRR                     SV\\GRL                     S"\S\R                  4Sd jj5       r\" \8GRd                  R                  5      Sa\bS \|\	\b\GR                  4      S"\S\R                  4Se j5       r\" \:R                  R                  5      S,\R                  S-\R                  Sf\R                  S\R                  4Sg j5       re\" \;R                  R                  5      S,\R                  Sh\R                  Si\R                  S-\R                  Sj\R                  Sk\R                  Sf\R                  Sl\R                  Sm\R                  Sn\bS\R                  4So j5       rf\" \Rn                  Rt                  GRf                  5      Sp\R                  S\R                  4Sq j5       r\" \8GRj                  /5      \   SSr\R                  Ss\R                  St\bSu\bSv\S\R                  4Sw jj5       5       r\" \8GRl                  GRn                  5       SS9\|\R                     Sx\|\R                     Sy\|\R                     Sz\S\|\R                     4
S{ jj5       r\" \8GRr                  GRn                  5       SS9\|\R                     Sx\|\R                     Sy\|\R                     Sz\S\|\R                     4
S| jj5       r\" \8GRv                  GRn                  5      S}\|\R                     S~\|\R                     S-\GR                  GR                  S\|\R                     4S j5       r\" \8GRv                  GRz                  5      S}\|\R                     S~\|\R                     S\|\GR                  GR                     S\|\R                     4S j5       r\8GR~                  R                  GR                  \GR                  GR                  GR                  5      \" \8GR~                  5      S,\R                  S-\R                  Sf\R                  \R                     S\R                  \R                     S\R                  \R                     S\S\S\S\\R                  \R                  \R                  4   4S j5       5       r\ GR                  " S5      S\\\S\4   4   4S j5       rS\\\S\4   4   4S jr\" \8GR                  5      S9\R                  S\R                  S\R                  S\R                  4S j5       r\" \<GR                  GR                  5      S,\R                  S\bS\bS\ST\GRH                  S\\R                  \R                  4   4S j5       r\" \8GR                  5       SS9\R                  S&\R                  S\R                  S\S\R                  4
S jj5       r\" \8GR                  5       SS9\R                  S&\R                  S\R                  S\S\R                  4
S jj5       r\" \8R                  R                  5      \S+\R                  S\R                  S%\bS\GRH                  S\R                  4
S j5       5       rn\" \8GR                  5      SS.S9\R                  S%\bS&\R                  S\R                  S\S\S\R                  4S jj5       r\" \8GR                  5          SS\R                  S\|\b   S/\\	\b\|\b   4      S0\	\b\|\b   4   S1\	\b\|\b   4   S\S\\R                  \R                  4   4S jj5       r\" \8GR                  5      S\R                  S\|\b   S\\R                  \R                  4   4S j5       r\" \8GR                  GRn                  5      SLSLSSS.S\R                  S9\GR                  GR                  S\S\S\\   S\\R                     S\R                  4S jj5       r\" \8GR                  5          SS9\R                  S\R                  S\S\S\S\\GR                     S\\R                  \R                  4   4S jj5       rg)    N)AnyCallableOptionalTypeVarUnion)	ParamSpec)core_aten_decompositionsget_decompositionsremove_decompositions)_grid_sampler_2d
_index_addpw_cast_for_opmath)extra_random_decomps)counters)	is_fbcode)	out_dtype)pad_listlike)elementwise_dtypesELEMENTWISE_TYPE_PROMOTION_KINDtype_to_dtype)definitely_trueguard_size_oblivious   )configinductor_prims)is_gpu,needs_fallback_due_to_atomic_add_limitationsuse_scatter_fallback_T_Popsreturnc                     [        U 5      (       a  U /OU  H%  nU[        ;   d  M  [        R                  SU 5        M'     [        R
                  " U [        5      $ )Nzduplicate decomp: %s)callabledecompositionslogwarningdecompregister_decomposition)r!   ops     U/var/www/auris/envauris/lib/python3.13/site-packages/torch/_inductor/decomposition.pyr)   r)   }   sI      }}se#-KK.4 . ((n==    tensormsgc                     g N r-   r.   s     r+   assert_async_msg_decompr3          
r,   c                     g r0   r1   r2   s     r+   "functional_assert_async_msg_decompr6      r4   r,   )minmaxsymbolr7   r8   c                    g r0   r1   )r9   r7   r8   s      r+   sym_constrain_range_for_sizer;      s     r,   xc                 V    Ub  U R                  U5      n Ub  U R                  U5      n U $ r0   )	clamp_min	clamp_max)r<   r7   r8   s      r+   clampr@      s/     KK
KKHr,   size
fill_valuekwargsc                     UR                  S5      nUc.  [        [        U5      5      US'   [        R                  " X40 UD6$ [
        $ )Ndtype)getr   typetorchfullNotImplemented)rA   rB   rC   rE   s       r+   rI   rI      sD     JJwE}'Z(89wzz$5f55r,   alphadimindexrL   c          	          [        5       (       d$  U R                  [        R                  :X  a  [        $ [        XX#SUS9$ )NF)inplacerL   )r   rE   rH   bfloat16rJ   r   )r<   rM   rN   r-   rL   s        r+   	index_addrR      s1     ;;177enn4!%eLLr,   physical_layoutc                     S/[        U 5      -  n[        U5       H	  u  pEXCU'   M     [        R                  " U Vs/ s H  oPU   PM	     sn40 UD6R	                  U5      $ s  snf Nr   )len	enumeraterH   emptypermute)rA   rS   rC   permpls         r+   empty_permutedr]      s^     3T?D/*Q +;;9AQ9DVDLLTRR9s   A!grad_outputinputweight
bias_sizesstridepaddingdilation
transposedoutput_paddinggroupsoutput_maskc                 >   U
S   (       a$  [        U R                  R                  5      (       d  [        $ [        R                  U S/[        [        SU R                  5       5      5      -   5      n[        R                  U UUUUUUUUU	U
S   U
S   S/5      u  pnXU4$ )N   r   r   F)
r   devicerG   rJ   atensumlistrangerM   convolution_backward)r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   	grad_biasgrad_inpgrad_weight_s                  r+   rp   rp      s     q>(:(:(?(?!@!@qcDq+//:K1L,M&MNI#88	QQ/ H1 9--r,   decimalsc                 F    SU-  n[         R                  X-  5      SU-  -  $ )Ng      $@g      ?)rl   round)r<   ru   ten_pow_decimalss      r+   	round_decry      s)    X~::a*+s5E/EFFr,   selfbatch2c                    [         R                  (       a  U R                  R                  S:w  ar  [	        U R
                  S   S:H  5      (       d   [	        UR
                  S   S:H  5      (       a2  U R                  S5      UR                  S5      -  R                  SS9nU$ U R                  R                  S:X  a  [	        U R                  S5      S:H  5      (       a|  [	        UR                  S5      S:H  5      (       aZ  [        S   S==   S-  ss'   [        R                  " U R                  S5      UR                  S5      -  SSS	9R                  S5      $ [        $ )
Ncpur   rj   rM   inductordecompose_bmmTrM   keepdim)r   coordinate_descent_tuningrk   rG   r   shape	unsqueezerm   rA   r   rH   squeezerJ   )rz   r{   outs      r+   bmmr     s#    ''DKK,<,<,E

1 2337KLLOq 8
 8
 >>"%(8(8(;;@@Q@GCJ{{5 		! 1227KKKOq 8
 8
 Z 1Q6199Q&.."44!Til r,   mat1mat2betac                    U R                   R                  S:X  GaG  [        UR                  S5      S:H  5      (       a  [        UR                  S5      S:H  5      (       ac  [        S   S==   S-  ss'   [
        R                  " UR                  S5      UR                  S5      -  SSS9R                  S5      nXE-  X0-  -   $ [        UR                  S5      S:H  5      (       a~  [        UR                  S5      S	:*  5      (       a\  [        UR                  S5      S	:*  5      (       a:  [        S   S==   S-  ss'   UR                  U-  R                  SSS9nXE-  X0-  -   $ [        $ )
Nr}   r   r   r~   r   decompose_addmmTr      )rk   rG   r   rA   r   rH   rm   r   r   r   TrJ   )rz   r   r   r   rL   r   s         r+   addmmr     s;    {{5 		! 1227KIIbMQ8
 8
 Z !23q83))Q$,,r"224il  ;,, 1!233		! 233		! 233Z !23q8366D=%%!T%:C;,,r,   input2c           	         [         R                  (       a  U R                  R                  S:w  ap  [	        U R
                  S   S:H  5      (       d   [	        UR
                  S   S:H  5      (       a0  U R                  S5      UR                  S5      -  R                  SS9$ U R                  R                  S:X  Ga  [	        U R                  S5      S:H  5      (       a  [	        U R                  S5      S:  5      (       a  [	        UR                  S5      S:H  5      (       a  U R                  UR                  :X  a  [        [        R                  " U 5      [        R                  " U5      -   S:*  5      (       a\  [        S   S	==   S-  ss'   [        R                  " [        U R                  S5      5       Vs/ s H  o US S 24   U-  PM     sn5      $ [	        U R                  S5      S:H  5      (       a|  [	        UR                  S5      S:H  5      (       aZ  [        S   S	==   S-  ss'   [        R                  " U R!                  S5      UR!                  S5      -  SS
S9R                  S5      $ ["        $ s  snf )Nr}   r   r   rj   r   r~       r   decompose_mmTr   )r   r   rk   rG   r   r   r   rm   rA   rE   r   rH   numelr   catro   r   rJ   )rz   r   is      r+   mmr   5  s    ''DKK,<,<,E

1 2337KLLOq 8
 8
 NN1%(8(8(;;@@Q@GG{{5  2!!344$TYYq\A%566$V[[^q%899v||+T!2U[[5H!HR OPPZ 0A509951;NO;Na1a4j61;NOPP		! 1227KKKOq 8
 8
 Z 0A5099Q&.."44!Til  Ps   9I9tensorsc                   ^^^ SSK Jm  S[        R                  S[        4UU4S jjn[        [        X 5      5      m[        T5      S:X  a  TS   R                  5       $ S[        T5      s=:  a  [        U 5      :  a#  O  O [        R                  R                  TT5      $ [        T5      S:  a  [        U4S jT 5       5      (       a  TS   n[        UR                  5      nTS:  a  T[        UR                  5      -   OTmUR                  T[        T5      5        UR                  T5      R                   " U6 R#                  TTS-   5      R                  5       $ [$        $ )Nr   )r   r<   r"   c                    > [        U R                  5      S:X  a  T" U R                  S   S:H  5      (       a  gT[        U R                  5      :  a  T" U R                  T   S:H  5      (       a  gg)Nr   r   FT)rV   r   )r<   rM   r   s    r+   non_empty_tensorcat.<locals>.non_empty_tensora  s]    " qww<1!5aggajAo!F!FQWW"6qwws|q7H"I"Ir,   r   c              3   0   >#    U  H  oTS    L v   M     g7f)r   Nr1   ).0tfiltered_tensorss     r+   	<genexpr>cat.<locals>.<genexpr>  s      )*:Qa  *:s   )%torch.fx.experimental.symbolic_shapesr   rH   Tensorboolrn   filterrV   clonerl   r   defaultallr   insertr   expandflattenrJ   )r   rM   r   inpr   r   r   s    `   @@r+   r   r   Z  s5   
 KELL T  2 F#3=>
!"((**	
S!"	1S\	1xx 0#66 q S )*:) & & q!SYY&)AgcC		N"3S#./0}}S!((%088cAgFLLNN r,   c                 *   U R                  5       (       ah  [        R                  " [        R                  " U R                  5      [        S5      [        R                  " U R                  U R                  5      5      $ [        U [        R                  S9u  p[        R                  " [        R                  X R                  S9n[        R                  " U S:  US5      n[        R                  " [        R                  " U 5      [        S5      U5      $ )Nnan)type_promotion_kindrE   rk   r   g        )
is_complexrH   whereisnanrealfloatatan2imagr   r   INT_TO_FLOATscalar_tensormathpirk   )r<   rt   rE   r   rets        r+   angler     s    ||~~{{KKuu{{166166/J
 	
 "	;HHHA 
		TWWE((	CB
++a!eR
%C;;u{{1~uU|S99r,   yc                   [         R                  " U 5      =(       a    U R                  5       n[         R                  " U5      =(       a    UR                  5       nU(       a  U(       d  [        $ UnUb  X!-  n[         R                  " U R
                  UR
                  5      nS[         R                  S[         R                  4S jnU" U R                  U R                  R
                  5      5      nU" UR                  UR                  R
                  5      5      n	[         R                  " X-   SS9R                  U5      n
U
$ )Nr-   r"   c                     U R                   Gt pUS-  S:w  a  [        S5      e/ UQUS-  PSP7nU R                  U5      nU$ )zNReshape tensor from [*initial_dims, last_dim] to *initial_dims, last_dim/2, 2]rj   r   zQThe size of the last dimension must be even to reshape it to [..., last_dim/2, 2])r   AssertionErrorview)r-   initial_dimslast_dim	new_shapereshaped_tensors        r+   reshape_tensor_complex#add.<locals>.reshape_tensor_complex  s\     #),, a<1 c 
 6l5HM515	 ++i0r,   )	start_dim)
rH   	is_tensorr   rJ   promote_typesrE   r   r   r   r   )r<   r   rL   x_is_complex_tensory_is_complex_tensorzcomplex_typer   
x_reshaped
z_reshapedresults              r+   addr     s      //!,?//!,?&9	AI&&qww8Lu||  " (qvv||(<=J'qvv||(<=J]]:2bAFF|TFMr,   c                 >    U R                  5       (       a   S5       eU $ )NzTODO: implement this)r   rz   s    r+   conj_physicalr     s       8"88 Kr,   c                     U $ r0   r1   r   s    r+   liftr     s    Kr,   otherc                 b    [         R                  " [         R                  " U5      X:  -  X5      $ r0   rH   r   r   rz   r   s     r+   fminr     #    ;;u{{5)U\:DHHr,   c                 b    [         R                  " [         R                  " U5      X:  -  X5      $ r0   r   r   s     r+   fmaxr     r   r,   Fr   c                 t    U R                   [        R                  :X  a  [        R                  " XUS9$ [        $ Nr   )rE   rH   r   anyrJ   rz   rM   r   s      r+   amaxr     +     zzUZZyy88r,   c                 t    U R                   [        R                  :X  a  [        R                  " XUS9$ [        $ r   )rE   rH   r   r   rJ   r   s      r+   aminr     r   r,   startlengthc                 L    [         R                  " XX#5      R                  5       $ r0   )rH   narrowr   )rz   rM   r   r   s       r+   narrow_copyr     s     <<517799r,   c                 H    [         R                  X5      R                  5       $ r0   )rl   r   r   )rz   rA   s     r+   view_copy_defaultr     s    
 99T &&((r,   rE   c                 @    U R                  U5      R                  5       $ r0   )tor   )rz   rE   s     r+   view_copy_dtyper     s    
 775>!!r,   memory_formatc                 ^    U[         R                  L d  Uc  [        R                  " U 5      $ U$ r0   )rH   preserve_formatutilssuggest_memory_format)r-   r   s     r+   get_like_layoutr     s.    
 ---1F**622r,   )rE   rk   r   rk   c                    [         R                  " / U R                  5       Q4U=(       d    U R                  U=(       d    U R                  S.UD6R                  [        X5      S9$ Nr   r   )rH   randrA   rE   rk   r   r   rz   rE   rk   r   rC   s        r+   	rand_liker    s\     ::$))+!tzz$ 	
 	bt;b<=r,   c                    [         R                  " / U R                  5       Q4U=(       d    U R                  U=(       d    U R                  S.UD6R                  [        X5      S9$ r   )rH   randnrA   rE   rk   r   r   r  s        r+   
randn_liker  /  s\     ;;$))+!tzz$ 	
 	bt;b<=r,   )rE   layoutrk   
pin_memoryrequires_gradr   r  r  r  c          	          [         R                  " / U R                  5       QUU=(       d    U R                  U=(       d    U R                  U=(       d    U R
                  US9R                  [        X5      S9$ )N)rE   r  rk   r  r   )rH   rI   rA   rE   r  rk   r   r   )rz   rB   rE   r  rk   r  r  r   s           r+   	full_liker
  @  s_     ::$))+!tzz$$# 	bt;b<=r,   highc                    [         R                  R                  " SU/ U R                  5       Q4U=(       d    U R                  U=(       d    U R
                  S.UD6R                  [        X5      S9$ )Nr   r   r   rl   randintlowrA   rE   rk   r   r   )rz   r  rE   rk   r   rC   s         r+   randint_liker  V  sj     <<	$))+ !tzz$  	bt;b<=r,   r  c                    [         R                  R                  " UU/ U R                  5       Q4U=(       d    U R                  U=(       d    U R
                  S.UD6R                  [        X5      S9$ r   r  )rz   r  r  rE   rk   r   rC   s          r+   randint_like_lowr  j  sj     <<$))+ !tzz$  	bt;b<=r,   c                 F    [         R                  R                  " SX40 UD6$ rU   )rl   r  r  )r  rA   rC   s      r+   r  r    s      <<At4V44r,   biasc                     [         R                  R                  R                  U5      n[         R                  R                  R	                  XX!R                  5       S   5      $ rU   )rH   r!   
_quantized$wrapped_fbgemm_pack_gemm_matrix_fp16!wrapped_fbgemm_linear_fp16_weightrA   )r_   r`   r  packed_weights       r+   #linear_dynamic_fp16_unpacked_weightr    sK     II((MMfUM99AAdKKM!$4 r,   input_scaleinput_zero_pointweight_scaleweight_zero_point	out_scaleout_zero_pointout_channelc
           	          [         R                  R                  R                  X4XV5      n
[         R                  R                  R	                  U UUU
UUU	5      $ r0   )rH   r!   r  _wrapped_linear_prepack#_wrapped_quantized_linear_prepacked)r_   r  r  r`   r  r  r  r  r   r!  r  s              r+   wrapped_quantized_linearr%    sX     II((@@/M 99CC r,   packedc                     S[         R                  S[         R                  4S jnU" U SSS24   5      nU" U SSS 24   5      nU SS S24   R                  [         R                  5      U-  U-   $ )Nu8r"   c                   ^  U 4S jS 5       u  pp4[         R                  S:X  a3  XS-  -   US-  -   US-  -   R                  [        R                  5      S   $ US-  US-  -   US-  -   U-   R                  [        R                  5      S   $ )Nc              3   l   >#    U  H)  nTS U4   R                  [        R                  5      v   M+     g7f.N)r   rH   int32)r   nr(  s     r+   r   Pq_embedding_bag_byte_unpack_decomp.<locals>.bitcast_u8_to_f32.<locals>.<genexpr>  s)     G,QbajmmEKK00,s   14)r   r   rj      little   r      r+  )sys	byteorderr   rH   float32)r(  r<   r   r   ws   `    r+   bitcast_u8_to_f32=q_embedding_bag_byte_unpack_decomp.<locals>.bitcast_u8_to_f32  s    G,G
a==H$aLAG,R8>>u}}MiXX"Wb)Q!V4q8>>u}}MiXXr,   .i)rH   r   r   r5  )r&  r7  scalesoffsetss       r+   "q_embedding_bag_byte_unpack_decompr<    sz    Yell Yu|| Y vc2b5j12FsBCx 01G#ss(u}}-6@@r,   agridinterpolation_modepadding_modealign_cornersc           	          U R                   [        R                   " S5      :H  =(       a)    US:H  =(       a    U R                  [        R                  S9(       + n[	        U UUUUUS9nU$ )Nr}   r   r   )r>  r?  r@  rA  _expand_grid)rk   rH   is_contiguouscontiguous_formatdecomp_grid_sampler_2d)r=  r>  r?  r@  rA  rC  outputs          r+   grid_sampler_2drH    sm     	
ELL'' 	C!#	COO%*A*AOBL $	-!#!F Mr,   left_tensorsright_tensorsscalarc                 z    [         R                  R                  U [         R                  R                  X5      US9$ NrK   )rl   _foreach_addList_foreach_mulrz   rI  rJ  rK  s       r+   _foreach_addcmul_scalarrR    :     !!d$$\A "  r,   c                 z    [         R                  R                  U [         R                  R                  X5      US9$ rM  )rl   rN  rO  _foreach_divrQ  s       r+   _foreach_addcdiv_scalarrV    rS  r,   start_tensorsend_tensorsc           	          [         R                  R                  U [         R                  R	                  [         R
                  R                  X5      U5      5      $ r0   )rl   rN  rO  rP  Scalar_foreach_sub)rW  rX  r`   s      r+   _foreach_lerp_scalarr\    sJ     !!  "";>	
 r,   scalarsc           	          [         R                  R                  U [         R                  R	                  [         R
                  R                  X5      U5      5      $ r0   )rl   rN  rO  rP  
ScalarListr[  )rW  rX  r]  s      r+   _foreach_lerp_scalarlistr`    sJ     !!$$"";>	
 r,   running_meanrunning_vartrainingexponential_average_factorepsilonc           
          [         R                  U UUUUUUU5      u  pn
U(       a  XU
4$ UUR                  S5      UR                  S5      4$ )Nr   )rl   native_batch_norm	new_zeros)r_   r`   r  ra  rb  rc  rd  re  r=  bcs              r+   miopen_batch_normrl    sh     $$"	GA! ay	 r,   .c                      0 [         E[        E$ r0   )r%   r   r1   r,   r+   fast_random_decompsrn  0  s    5n5 455r,   c                  L    [         R                  (       a  [        $ [        5       $ )z"decomps can change based on config)r   fallback_randomr%   rn  r1   r,   r+   select_decomp_tablerq  7  s      r,   masksourcec                    SSK JnJn  U" U R                  UR                  5      (       a  [
        R                  X/5      u  pUR                  S5      R                  S5      S-
  nS XU4 5       u  pgn[
        R                  XU/S5      n	[        R                  " XyU5      R                  U R                  5      $ [        $ )Nr   )BackendFeaturehas_backend_featurer~   r   c              3   @   #    U  H  oR                  5       v   M     g 7fr0   )r   )r   r<   s     r+   r   !masked_scatter.<locals>.<genexpr>K  s     ,WBVQYY[[BVs   )codegen.commonru  rv  rk   MASKED_SCATTER_WITH_INDEXrl   broadcast_tensorsreshapecumsum_unsafe_masked_indexrH   r   r   r   rJ   )
rz   rr  rs  ru  rv  
source_idx	self_flat	mask_flatsource_flatr   s
             r+   masked_scatterr  >  s     D4;;(P(PQQ ++TL9
\\"%,,Q/!3
,W4vBV,W)	k**;J<QRS{{9i8==djjIIr,   	quant_min	quant_maxepsc                    [         R                  " U 5      u  pVXe-
  [        X!-
  5      -  n[         R                  " U[         R                  " U/5      5      nU[         R
                  " XW-  5      R                  [         R                  5      -
  n[         R                  " XU5      nUR                  [         R                  5      UR                  [         R                  5      4$ r0   )rH   aminmaxr   r8   r   rw   r   intr@   float64int64)	r_   r  r  r  rE   min_valmax_valscale
zero_points	            r+   choose_qparams_tensorr  Q  s     }}U+G%	(=">>EIIeU\\3%01EU[[9<<UYYGGJZI>J88EMM"JMM%++$>>>r,   
accumulatec                     U R                  5       n[        R                  " XA/UR                  UR                  5      U5      nUR                  U R                  5      $ r0   )r   rH   	index_putr|  r   )rz   rN   rs  r  	flatteneds        r+   putr  a  sJ     I7FNN5;;7I TZZ((r,   c                 L    [         R                  XX#S9nU R                  U5      $ )N)r  )rl   r  copy_)rz   rN   rs  r  r   s        r+   put_r  o  s$     ((4(
>C::c?r,   rG  input_dtypec                     X-  n[         R                  " XBSS9n[        R                  " U* XT5      nU R                  U:w  a  UR                  U5      nUR                  5       $ )NTr   )rH   rm   r   fmarE   r   
contiguous)r^   rG  rM   r  new_grad_outputsum_new_grad
grad_inputs          r+   _softmax_backward_datar  z  s]     "*O99_tDL##VG\KJ K']];/
  ""r,   Tinclude_selfsrcreduction_typer  c                   US:X  Ga  [        U R                  5      (       d  U R                  R                  =(       d    U R                  R                  n[        R
                  " U5      nU(       a)  U n[        R
                  " U 5      R                  XU5      n	OMU R                  XS5      n[        R                  " U 5      R                  XU5      n	U	R                  U	S:  S5      n	UR                  XU5      nU(       a  X-  $ X-  $ [        [        R                  R                  UU R                  UR                  UR                  R                  S5      (       a  [         $ U R"                  US-   S  R%                  5       U R"                  S U R%                  5       -  n
UR%                  5       /U R"                  US-   S  QU R"                  S U Q7n/ ['        U R(                  U-
  U R(                  5      QSP['        SU R(                  U-
  5      Q7nUR+                  [        R,                  5      R/                  U
5      R1                  U5      R3                  U5      nU R5                  UUUUUS9$ )Nmeanr   r   Tr  )r   rE   is_floating_pointr   rH   	ones_likerR   
index_fill
zeros_likemasked_fillr   rl   scatter_reduce_twork   rG   rJ   r   r   ro   ndimr   r  repeat_interleaver|  rY   scatter_reduce)rz   rM   rN   r  r  r  true_divisiononesr   countsrepeatsindex_shaperZ   scatter_indexs                 r+   index_reducer    s    (T

) ) 

44M

8M8Ms#C__T*44SFF//#a0C%%d+55c$GF''
A6FmmC,,s|?#-?  

		

  jjq#))+djj#.>.D.D.FFG;;=L4::cAgi#8L4::ds;KLKNU499s?DII.NNE!TYY_4MND		7	#				  !   r,   kernel_size	ceil_modec                    US:X  a  SS/nUS:X  a  SS/nU(       d  Un[        US5      n[        US5      n[        US5      n[        US5      nUS   US   -  n[        R                  R                  R	                  X5      (       d2  U[        R
                  " [        R                  5      R                  :  a  [        $ [        R                  U UUUUU5      u  px[        R                  UUS   U R                  S5      UU5      n	Xy4$ )Nr   r   rj   r~   )r   rH   	_inductorlowering'should_fallback_max_pool2d_with_indicesiinfoint8r8   rJ   prims#_low_memory_max_pool2d_with_offsets)_low_memory_max_pool2d_offsets_to_indicesrA   )
r<   r  rb   rc   rd   r  window_sizevalsr;  indicess
             r+   max_pool2d_with_indicesr    s    1}q6!|a&{A.KHa(H7A&G&!$Fa.;q>1K 	  HH	
 	
 UZZ0444==	MD ==A	r
G =r,   output_sizec                    U R                   Gt p#nUu  pVUS:X  d  US:X  a7  / UQUPUPnU R                  U5      U R                  U[        R                  S94$ X5-  S:X  a%  XF-  S:X  a  X5-  XF-  /n[        R                  X5      $ [        $ )Nr   )rE   )r   	new_emptyrH   r  rl   r  rJ   )	r<   r  batchh_inw_inh_outw_outo_sizer  s	            r+   adaptive_max_pool2dr    s     U$LEzUaZ'5'%''{{6"AKKekkK$JJJ|qT\Q.}dm4++A;;r,   	out_int32rightsidesortersorted_sequencer  r  r  r  c          	      t    [         R                  U [        R                  " U/U R                  S9UUUUS9S   $ )N)rk   r  r   )rl   searchsortedrH   r-   rk   )r  rz   r  r  r  r  s         r+   searchsorted_scalarr  
  sK     dVO$:$:;   	 	r,   noiselowerupper	generatorc                    U(       aM  U S:*  n[         R                  XX5S9n[        R                  " X`U-  U 5      n[        R                  " XgS5      n	X4$ X#-   S-  n
[         R	                  X
5      [        R
                  " 5       4$ )Nr   )r  r   rj   )rl   uniformrH   r   
leaky_relur   )rz   r  r  r  rc  r  not_positiverrG  	noise_outnegative_slopes              r+   rrelu_with_noise_functionalr    su     qyLLeLA\!8T:KK3	  -1,t4ellnDDr,   )NNrg  )r   r   )NFr0   )r   r   F)r   )F)Nr   r   F)g      ?gUUUUUU?FN)	functoolsloggingr   r3  typingr   r   r   r   r   typing_extensionsr   rH   torch._decomp_decompr(   torch._prims_common_prims_commonr   $torch.ao.quantization.fx._decomposedr	   r
   r   torch._decomp.decompositionsr   rF  r   r   $torch._decomp.decompositions_for_rngr   torch._dynamo.utilsr   torch._environmentr   !torch._higher_order_ops.out_dtyper   torch._inductor.utilsr   r   r   r   r   r   r    r   r   r   r   r   r   r    	getLogger__name__r&   r!   rl   r  	quantizedr  quantized_decomposed_adaptive_avg_pool2d_backwardindex_selectaddmvarangebitwise_and_bitwise_or_
clamp_min_dist
empty_likeflipgeluhardtanhlcmr  linalg_vector_norm_log_softmax max_pool2d_with_indices_backward_native_batch_norm_legit#_native_batch_norm_legit_functional$_native_batch_norm_legit_no_training_batch_norm_with_update"_batch_norm_with_update_functional_batch_norm_no_updatebatch_norm_backwardrh  native_group_normnative_layer_normnll_loss2d_backwardpermute_copyrrelu_with_noise_backward_softmaxsin_sqrt__to_copytril_indicestriu_indicesunbind_copyr  upsample_bilinear2dvecr  r%  inductor_decompositionsr%   _unsafe_indexr~  #_unsafe_masked_index_put_accumulate+_scaled_dot_product_flash_attention_for_cpur   r  r?   r>   rR   gluselect_scatterslice_scattersplitr   r   rm   unbindbaddbmmdecomps_to_excludern   _opsOperatorBaseOpOverloadPacketr)   _assert_asyncr.   strr3   _functional_assert_asyncr6   r;   SymInttypesNumberr@   rI   r]   rp   r   tuplerw   ru   ry   r   r   r   r   r   r   r   r   detach_r   r   r   r   r   	view_copyr   rE   r   r   r   r  rk   r  r
  r   r   r  r  	low_dtyper  r  embedding_bag_byte_unpackr<  rH  _foreach_addcmulrZ  rR  _foreach_addcdivrV  _foreach_lerpr\  r_  r`  rl  py_impl_CDispatchKeyAutograd	lru_cachedictrn  rq  r  choose_qparamsr-   r  r  r  r  r  r  r  r  r  	Generatorr1   r,   r+   <module>rC     so      
  : : '   # + 
 
 F ( ( 7 . 
 X $  T]t_!yy~~		II	YY!!
yy55 ,***** 	

* 		*
 	* 	* 	* 			* 	* 			* 			* 	* 	* 	* 	*  	!*" 	--#*$ 	%%%*& 	00'*( 	11)** 	$$+*, 	//-*. 	""/*0 	  1*2 	3*4 	5*6 	7*8 	  9*: 	;*< 	&&=*> 	?*@ 			A*B 	

C*D 	E*F 	G*H 	I*J 	K*L 	M*N 	  $$O*P 	55Q*R 	++S*, Z K,.J2IJ
 	,,44<<NNNNNNHHJJLLHHKKLL! & n&8 9>	eEJJ++UZZ-H-HHI	J>xB (2r6"223> ++//01ELL s t  2
 66::;<u|| # $  = ::BBCD )-(,	LL 
%++$$	% 
%++$$	%	
 
 E % )-(,	||		%++$$	%	 
%++$$	%	 \\		  &	 $	
uS%,,&'
(	""	 	 \\		 %	 () !"M||M	M <<M LL	M ;;M \\M *M* ,,4456S
uS%,,&'
(S#YS S \\	S 7S 2234..<<. LL. S		.
 #tCy.!. 3S	>". CcN#. . I. . d. 5<<u||34. 5.@ ,,-.G G GU\\ G /G
 
#
,,LL \\  $* %
  ! !
,,
,, ,, ++

	
 ;; \\  &6 	"
,,LL \\  #F ))*+ 2%,,2	2 \\2 ,2j %:U\\ :ell : &:& 
#
 +/	&||&||& EKK&&'	&
 \\& $&R ++,-   .
 DLL12u||   3 EJJ/0Iu|| IELL IU\\ I 1I EJJ/0Iu|| IELL IU\\ I 1I 		" 
,,	#  \\	 # 		" 
,,	#  \\	 # ))*+:
,,:	: : 	:
 \\: ,: //01)
,,)
uS%,,&'
() \\) 2) --./"
,,";;" \\" 0" 48LLE//0  ' $(%)37=
,,= EKK = U\\"	=
 E//0= = \\= (=  ( $(%)37=
,,= EKK = U\\"	=
 E//0= = \\= )=  '
 $(%)%)).)>)>=
,,=c5j!= EKK 	=
 U\\"= U\\"= = = &&= \\= (=* ))112
 $(%)37=
,,=
= EKK 	=
 U\\"= E//0= = \\= 3=& ))334 $(%)37=
,,=	= =
 EKK = U\\"= E//0= = \\= 5=( ,,-5
5
uS%,,&'
(5 5 \\	5 .5 	EEMMN<<LL ,, \\	 O 
;;CCD<< ll LL	
 ,, || ,, || LL  \\ E4 		++EEF
Au|| 
A 
A G
A --./  ||
,,  	
  \\  0: --445
 	
u||
u||$ % 	
 
%,, 6 --445
 	
u||
u||$ % 	
 
%,, 6 **112
%
ell#
 KK
 
%,,	
 3
 **556
%
ell#
 %++$$%
 
%,,	
 7
 ''(<(<(E(EF../<<LL //%,,
' //%,,/	
 .  !&  5<<u||34 0 G< T6T#xS'9"9: 6 6!T#xS'9"9: ! ++,
,,
,, LL \\	 -$ ,;;BBC?<<?? ? 
	?
 ;;? 5<<%&? D? !
 	
)
,,
)<<
) LL
) 	
)
 \\
) "
) 		"
 	
,,<< LL 	
 \\ # 33;;<##LL# 
# 	#
 \\#  =#( ))* 1
,,1	1 <<1 
	1
 1 1 \\1 +1h 445 /3%&&'/||/c/ U3S	>*+/ 3S	>"	/
 CcN#/ / 5<<%&/ 6/d 001||"&s)
5<<%& 2" ))001
 %)	\\	
++

	 		
 	 3-	 U\\"	 \\	 2	& 889 %+/E
,,E<<E E 	E
 E (E 5<<%&E :Er,   