
    IЦib                     ,   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	J
r
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  \Rd                  " \35      r4\Rj                  Rl                  r6\Rj                  Rn                  r7\Rj                  Rp                  r8\Rj                  Rr                  r9\Rj                  Rt                  r:\" / \6Rv                  P\6Rx                  P\6Rz                  P\6R|                  P\6R~                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\6R                  P\#P\6R                  P\6R                  P\6R                  P\6R                  R                  P\8R                  P\9R                  P5      rc0 \" 5       E\cErd\6R                  \6R                  \6R                  \6R                  R                  \6R                  \6R                  \6R                  \6R                  \6R                  \6R                  \6R                  \6R                  R                  \6R                  \6R                  \6R                  \6R                  /rw\" \d\w5        S\\\R                  R                  \R                  R                  4      S\S\4   4S jr{\{" \6R                  R                  /5      S\R                  S\~SS4S j5       r\{" \6GR                   R                  /5      S\R                  S\~SS4S j5       r\{" \6G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\{" \6GR                  /5      \  SS\R                  S\	\GR                  GR
                     S\	\GR                  GR
                     S\R                  4S jj5       5       r\{" \6GR                  /5      S\\\\GR                  4      S\GR                  GR
                  S \S\R                  4S! j5       r\{" \6R                  /5      SS".S\R                  S#\S$\R                  S\R                  S%\GR                  GR
                  S\R                  4S& jj5       rm\{" \6GR                  R                  /5      S\\\\GR                  4      S'\\   S \S\R                  4S( j5       r\{" \6GR                  /5      S)\R                  S*\R                  S+\R                  S,\\   S-\\\\   4   S.\\\\   4   S/\\\\   4   S0\S1\\   S2\S3\\   S\
\R                  \R                  \R                  4   4S4 j5       r\{" \6GR                  GR                  /5      SS\R                  S5\S\R                  4S6 jj5       r\{" \6GR                  /5      \S7\R                  S8\R                  S\R                  4S9 j5       5       r\{" \6GR                   /5      \  SS7\R                  S:\R                  S;\R                  S<\GR                  GR
                  S%\GR                  GR
                  S\R                  4S= jj5       5       r\{" \6GR"                  /5      \S7\R                  S>\R                  S\R                  4S? j5       5       r\{" \6GR$                  R                  /5       SS@\\R                     S#\S\R                  4SA jj5       r\{" \6GR&                  /5      S\R                  S\R                  4SB j5       r\{" \6GR(                  /5      SS".S\R                  SC\R                  S%\	\GR                  GR
                     S\R                  4SD jj5       r\{" \6GR*                  /5      S7\R                  S\R                  4SE j5       r\{" \6GR,                  \6GR.                  /5      S7\R                  S\R                  4SF j5       r\{" \6GR0                  \7GR0                  /5      S7\R                  SG\R                  S\R                  4SH j5       r\{" \6GR2                  \7GR2                  /5      S7\R                  SG\R                  S\R                  4SI j5       r\{" \6GR4                  5        SS7\R                  S#\	\   SK\S\R                  4SL jj5       r\{" \6GR6                  5        SS7\R                  S#\	\   SK\S\R                  4SM jj5       r\{" \6GR8                  /5      S7\R                  S#\SN\SO\S\R                  4
SP j5       r\{" \6GR:                  R                  /5      S7\R                  S\\\\GR                  4      S\R                  4SQ j5       r\{" \6GR:                  GR>                  /5      S7\R                  SR\GR>                  S\R                  4SS j5       r SS\R                  ST\	\GRB                     S\GRB                  4SU jjr\{" \6GRF                  5      SSSSV.S7\R                  SR\	\GR>                     SW\	\GRH                     ST\	\GRB                     S \S\R                  4SX jj5       r\{" \6GRJ                  5      SSSSV.S7\R                  SR\	\GR>                     SW\	\GRH                     ST\	\GRB                     S \S\R                  4SY jj5       r\{" \6GRL                  5      SSSSJSJ\GRN                  SZ.S7\R                  S\\\4   SR\	\GR>                     S[\	\GRR                     SW\	\GRH                     S\\S]\ST\GRB                  S\R                  4S^ jj5       r\{" \6GRT                  R                  5      SSSSV.S7\R                  S_\SR\	\GR>                     SW\	\GRH                     ST\	\GRB                     S \S\R                  4S` jj5       r\{" \6GRT                  GRV                  5      SSSSV.S7\R                  Sa\S_\SR\	\GR>                     SW\	\GRH                     ST\	\GRB                     S \S\R                  4Sb jj5       r\{" \6GRZ                  R                  5      S_\S\\\\GR                  4      S \S\R                  4Sc j5       r\{" \8R                  R                  5      S*\R                  S+\R                  Sd\R                  S\R                  4Se j5       ra\{" \9R                  R                  5      S*\R                  Sf\R                  Sg\R                  S+\R                  Sh\R                  Si\R                  Sd\R                  Sj\R                  Sk\R                  Sl\S\R                  4Sm j5       rb\{" \Rj                  Rp                  GR\                  5      Sn\R                  S\R                  4So j5       r\{" \6GR`                  /5      \   SSp\R                  Sq\R                  Sr\Ss\St\S\R                  4Su jj5       5       r\{" \6GRb                  GRd                  5       SS7\\R                     Sv\\R                     Sw\\R                     Sx\S\\R                     4
Sy jj5       r\{" \6GRh                  GRd                  5       SS7\\R                     Sv\\R                     Sw\\R                     Sx\S\\R                     4
Sz jj5       r\{" \6GRl                  GRd                  5      S{\\R                     S|\\R                     S+\GR                  GR
                  S\\R                     4S} j5       r\{" \6GRl                  GRp                  5      S{\\R                     S|\\R                     S~\\GR                  GR
                     S\\R                     4S j5       r\6GRt                  R                  GRw                  \GRx                  GRz                  GR|                  5      \{" \6GRt                  5      S*\R                  S+\R                  Sd\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\{" \6GR                  5      S7\R                  S\R                  S\R                  S\R                  4S j5       r\{" \:GR                  GR                  5      S*\R                  S\S\S\SR\GR>                  S\
\R                  \R                  4   4S j5       r\{" \6GR                  5       SS7\R                  S$\R                  S\R                  S\S\R                  4
S jj5       r\{" \6GR                  5       SS7\R                  S$\R                  S\R                  S\S\R                  4
S jj5       r\{" \6R                  R                  5      \S)\R                  S\R                  S#\S\GR>                  S\R                  4
S j5       5       rj\{" \6GR                  5      SS.S7\R                  S#\S$\R                  S\R                  S\~S\S\R                  4S jj5       r\{" \6GR                  5          SS\R                  S\\   S-\	\\\\   4      S.\\\\   4   S/\\\\   4   S\S\
\R                  \R                  4   4S jj5       r\{" \6GR                  5      S\R                  S\\   S\
\R                  \R                  4   4S j5       r\{" \6GR                  GRd                  5      SJSJSSS.S\R                  S7\GR                  GR
                  S\S\S\	\~   S\	\R                     S\R                  4S jj5       r\{" \6GR                  5          SS7\R                  S\R                  S\S\S\S\	\GR                     S\
\R                  \R                  4   4S jj5       rg)    N)AnyCallableDictListOptionalTupleUnion)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opsreturn.c                     [        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     \/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/torch/_inductor/decomposition.pyr(   r(   x   sI      }}se#-KK.4 . ((n==    tensormsgc                     g N r,   r-   s     r*   assert_async_msg_decompr2          
r+   c                     g r/   r0   r1   s     r*   "functional_assert_async_msg_decompr5      r3   r+   )minmaxsymbolr6   r7   c                    g r/   r0   )r8   r6   r7   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 $ r/   )	clamp_min	clamp_max)r;   r6   r7   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)r@   rA   rB   rD   s       r*   rH   rH      sD     JJwE}'Z(89wzz$5f55r+   alphadimindexrK   c          	          [        5       (       d$  U R                  [        R                  :X  a  [        $ [        XX#SUS9$ )NF)inplacerK   )r   rD   rG   bfloat16rI   r   )r;   rL   rM   r,   rK   s        r*   	index_addrQ      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	enumeraterG   emptypermute)r@   rR   rB   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   devicerF   rI   atensumlistrangerL   convolution_backward)r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   	grad_biasgrad_inpgrad_weight_s                  r*   ro   ro      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      ?)rk   round)r;   rt   ten_pow_decimalss      r*   	round_decrx      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   ri   rL   inductordecompose_bmmTrL   keepdim)r   coordinate_descent_tuningrj   rF   r   shape	unsqueezerl   r@   r   rG   squeezerI   )ry   rz   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      )rj   rF   r   r@   r   rG   rl   r   r   r   TrI   )ry   r   r   r   rK   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   ri   r~   r}       r   decompose_mmTr   )r   r   rj   rF   r   r   r   rl   r@   rD   r   rG   numelr   catrn   r   rI   )ry   r   is      r*   mmr   0  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)rU   r   )r;   rL   r   s    r*   non_empty_tensorcat.<locals>.non_empty_tensor\  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   Nr0   ).0tfiltered_tensorss     r*   	<genexpr>cat.<locals>.<genexpr>~  s      )*:Qa  *:s   )%torch.fx.experimental.symbolic_shapesr   rG   Tensorboolrm   filterrU   clonerk   r   defaultallr   insertr   expandflattenrI   )r   rL   r   inpr   r   r   s    `   @@r*   r   r   U  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rD   rj   r   g        )
is_complexrG   whereisnanrealfloatatan2imagr   r   INT_TO_FLOATscalar_tensormathpirj   )r;   rs   rD   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]ri   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)
rG   	is_tensorr   rI   promote_typesrD   r   r   r   r   )r;   r   rK   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   ry   s    r*   conj_physicalr     s       8"88 Kr+   c                     U $ r/   r0   r   s    r*   liftr     s    Kr+   otherc                 b    [         R                  " [         R                  " U5      X:  -  X5      $ r/   rG   r   r   ry   r   s     r*   fminr     #    ;;u{{5)U\:DHHr+   c                 b    [         R                  " [         R                  " U5      X:  -  X5      $ r/   r   r   s     r*   fmaxr     r   r+   Fr   c                 t    U R                   [        R                  :X  a  [        R                  " XUS9$ [        $ Nr   )rD   rG   r   anyrI   ry   rL   r   s      r*   amaxr     +     zzUZZyy88r+   c                 t    U R                   [        R                  :X  a  [        R                  " XUS9$ [        $ r   )rD   rG   r   r   rI   r   s      r*   aminr     r   r+   startlengthc                 L    [         R                  " XX#5      R                  5       $ r/   )rG   narrowr   )ry   rL   r   r   s       r*   narrow_copyr     s     <<517799r+   c                 H    [         R                  X5      R                  5       $ r/   )rk   r   r   )ry   r@   s     r*   view_copy_defaultr     s    
 99T &&((r+   rD   c                 @    U R                  U5      R                  5       $ r/   )tor   )ry   rD   s     r*   view_copy_dtyper     s    
 775>!!r+   memory_formatc                 ^    U[         R                  L d  Uc  [        R                  " U 5      $ U$ r/   )rG   preserve_formatutilssuggest_memory_format)r,   r   s     r*   get_like_layoutr     s.    
 ---1F**622r+   )rD   rj   r   rj   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   )rG   randr@   rD   rj   r   r   ry   rD   rj   r   rB   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   )rG   randnr@   rD   rj   r   r   r   s        r*   
randn_liker  *  s\     ;;$))+!tzz$ 	
 	bt;b<=r+   )rD   layoutrj   
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)rD   r  rj   r  r   )rG   rH   r@   rD   r  rj   r   r   )ry   rA   rD   r  rj   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   rk   randintlowr@   rD   rj   r   r   )ry   r
  rD   rj   r   rB   s         r*   randint_liker  Q  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  )ry   r  r
  rD   rj   r   rB   s          r*   randint_like_lowr  e  sj     <<$))+ !tzz$  	bt;b<=r+   c                 F    [         R                  R                  " SX40 UD6$ rT   )rk   r  r  )r
  r@   rB   s      r*   r  r  z  s      <<At4V44r+   biasc                     [         R                  R                  R                  U5      n[         R                  R                  R	                  XX!R                  5       S   5      $ rT   )rG   r    
_quantized$wrapped_fbgemm_pack_gemm_matrix_fp16!wrapped_fbgemm_linear_fp16_weightr@   )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      $ r/   )rG   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   rG   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   ri      little   r      r*  )sys	byteorderr   rG   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)rG   r   r   r4  )r%  r6  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?  r@  _expand_grid)rj   rG   is_contiguouscontiguous_formatdecomp_grid_sampler_2d)r<  r=  r>  r?  r@  rB  outputs          r*   grid_sampler_2drG    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$ NrJ   )rk   _foreach_addr   _foreach_mulry   rH  rI  rJ  s       r*   _foreach_addcmul_scalarrP    :     !!d$$\A "  r+   c                 z    [         R                  R                  U [         R                  R                  X5      US9$ rL  )rk   rM  r   _foreach_divrO  s       r*   _foreach_addcdiv_scalarrT    rQ  r+   start_tensorsend_tensorsc           	          [         R                  R                  U [         R                  R	                  [         R
                  R                  X5      U5      5      $ r/   )rk   rM  r   rN  Scalar_foreach_sub)rU  rV  r_   s      r*   _foreach_lerp_scalarrZ    sJ     !!  "";>	
 r+   scalarsc           	          [         R                  R                  U [         R                  R	                  [         R
                  R                  X5      U5      5      $ r/   )rk   rM  r   rN  
ScalarListrY  )rU  rV  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   )rk   native_batch_norm	new_zeros)r^   r_   r  r_  r`  ra  rb  rc  r<  bcs              r*   miopen_batch_normrj    sh     $$"	GA! ay	 r+   c                      0 [         E[        E$ r/   )r$   r   r0   r+   r*   fast_random_decompsrl  +  s    5n5 455r+   c                  L    [         R                  (       a  [        $ [        5       $ )z"decomps can change based on config)r   fallback_randomr$   rl  r0   r+   r*   select_decomp_tablero  2  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r/   )r   )r   r;   s     r*   r   !masked_scatter.<locals>.<genexpr>F  s     ,WBVQYY[[BVs   )codegen.commonrs  rt  rj   MASKED_SCATTER_WITH_INDEXrk   broadcast_tensorsreshapecumsum_unsafe_masked_indexrG   r   r   r   rI   )
ry   rp  rq  rs  rt  
source_idx	self_flat	mask_flatsource_flatr   s
             r*   masked_scatterr  9  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$ r/   )rG   aminmaxr   r7   r   rv   r   intr?   float64int64)	r^   r  r  r  rD   min_valmax_valscale
zero_points	            r*   choose_qparams_tensorr  L  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      $ r/   )r   rG   	index_putrz  r   )ry   rM   rq  r  	flatteneds        r*   putr  \  sJ     I7FNN5;;7I TZZ((r+   c                 L    [         R                  XX#S9nU R                  U5      $ )N)r  )rk   r  copy_)ry   rM   rq  r  r   s        r*   put_r  j  s$     ((4(
>C::c?r+   rF  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   )rG   rl   r   fmarD   r   
contiguous)r]   rF  rL   r  new_grad_outputsum_new_grad
grad_inputs          r*   _softmax_backward_datar  u  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   rD   is_floating_pointr   rG   	ones_likerQ   
index_fill
zeros_likemasked_fillr   rk   scatter_reduce_tworj   rF   rI   r   r   rn   ndimr   r  repeat_interleaverz  rX   scatter_reduce)ry   rL   rM   r  r  r  true_divisiononesr   countsrepeatsindex_shaperY   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   ri   r}   )r   rG   	_inductorlowering'should_fallback_max_pool2d_with_indicesiinfoint8r7   rI   prims#_low_memory_max_pool2d_with_offsets)_low_memory_max_pool2d_offsets_to_indicesr@   )
r;   r  ra   rb   rc   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   )rD   )r   	new_emptyrG   r  rk   r  rI   )	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)rj   r  r   )rk   searchsortedrG   r,   rj   )r  ry   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   ri   )rk   uniformrG   r   
leaky_relur   )ry   r  r  r  ra  r  not_positiverrF  	noise_outnegative_slopes              r*   rrelu_with_noise_functionalr    su     qyLLeLA\!8T:KK3	  -1,t4ellnDDr+   )NNre  )r   r   )NFr/   )r   r   F)r   )F)Nr   r   F)g      ?gUUUUUU?FN)	functoolsloggingr   r2  typingr   r   r   r   r   r   r	   rG   torch._decomp_decompr'   torch._prims_common_prims_commonr   $torch.ao.quantization.fx._decomposedr
   r   r   torch._decomp.decompositionsr   rE  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   	getLogger__name__r%   r    rk   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_backwardrf  native_group_normnative_layer_normnll_loss2d_backwardpermute_copyrrelu_with_noise_backward_softmaxsin_sqrt__to_copytril_indicestriu_indicesupsample_bilinear2dvecr  r$  inductor_decompositionsr$   _unsafe_indexr|  #_unsafe_masked_index_put_accumulate+_scaled_dot_product_flash_attention_for_cpur   r  r>   r=   rQ   gluselect_scatterslice_scattersplitr   r   rl   unbindbaddbmmdecomps_to_exclude_opsOperatorBaseOpOverloadPacketr(   _assert_asyncr-   strr2   _functional_assert_asyncr5   r:   SymInttypesNumberr?   rH   r  r\   ro   r   rv   rt   rx   r   r   r   r   r   r   r   r   detach_r   r   r   r   r   	view_copyr   rD   r   r   r   r  rj   r  r	  r   r   r  r  	low_dtyper  r  embedding_bag_byte_unpackr;  rG  _foreach_addcmulrX  rP  _foreach_addcdivrT  _foreach_lerprZ  r]  r^  rj  py_impl_CDispatchKeyAutograd	lru_cacherl  ro  r  choose_qparamsr,   r  r  r  r  r  r  r  r  r  	Generatorr0   r+   r*   <module>r=     s/      
  D D D   # + 
 
 F ( ( 7 . 
 X $  !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 	55O)P 	++Q)+ X K,.J2IJ
 	,,44<<NNNNNNHHJJLLHHKKLL! & n&8 9>	eEJJ++UZZ-H-HHI	J>c3h> ++//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+   