o
    i                     @   sX  U d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
 d dlmZmZ d dlZd dlmZ d dlmZ d dlZd dlmZmZmZ d dlmZmZmZmZm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z& d d	l'm(Z( d d
l)m*Z* d dlm+Z+m,Z,m-Z- d dl.m/Z/m0Z0 ddl1m2Z2m3Z3 ddlm4Z4m5Z5m6Z6 e	dZ7edZ8e
ej9j:ej9j;f Z<ee=d< e>e?Z@ejAjBZBejAjCZCejAjDZDejAjEZEejAjFZFeg eBjGeBjHeBjIeBjJeBjKeBjLeBjMeBjNeBjOeBjPeBjQeBjReBjSeBjTeBjUeBjVeBjWeBjXeBjYeBjZeBj[eBj\eBj]eBj^eBj_eBj`eBjaeBjbeBjceBjdeBjeeBjfeBjgeBjhe(eBjieBjjeBjkeBjljmeBjnjoeDjpeEjqZri e erZseBjteBjueBjveBjwjxeBjyeBjzeBj{eBjeBj|eBj}eBj~eBjeBjjeBjeBjeBjeBjgZee
ej9jej9j;f  e=d< eese de
e<ee< f deee8e7f gee8e7f f fddZeeBjgdejdejdemdemdedejfddZeeBjjxgdddd ejd!eejj d"eejj ddfd#d$ZeeBjge 		dd%ejd!eejj d"eejj dejfd&d'ZeeBjgd(ee
emejf  d)ejjd*edejfd+d,ZeeBj|gdd-d%ejd.emd/ejd0ejd1ejjdejfd2d3Z|eeBjjxgd(ee
emejf  d4eem d*edejfd5d6ZeeBjgdejd7ejd8ejd9eem d:e
emeem f d;e
emeem f d<e
emeem f d=ed>eem d?emd@ee deejejejf fdAdBZeeBjjgdd%ejdCemdejfdDdEZeeBjge	ddFejdGejdHeej dejfdIdJZeeBjge			ddFejdKejdLejdHeej dMejjd1ejjdejfdNdOZeeBjge	ddFejdPejdHeej dejfdQdRZeeBjjxg	 ddSeej d.emdejfdTdUZeeBjgd%ejdejfdVdWZeeBjgdd-d%ejdXejd1eejj dejfdYdZZeeBjgdFejdejfd[d\ZeeBjeBjgdFejdejfd]d^ZeeBjeCjgdFejd_ejdejfd`daZeeBjeCjgdFejd_ejdejfdbdcZeeBj		dddFejd.eem deedejfdfdgZeeBj		dddFejd.eem deedejfdhdiZeeBjgdFejd.emdjemdkemdejf
dldmZeeBjjxgdFejd(ee
emejf  dejfdndoZeeBjjgdFejdpejdejfdqdrZdFejdeejejf fdsdtZeeBjdddddddejdudFejd)e
emef dpeej dveej dweej dxedyedzejdejfd{d|Zddejd}d~edejf dFejdpeej dweej dzejd*edejfddZeeBjdFejd*edejfddZeeBjdFejd*edejfddZeeBjjxdFejdemd*edejfddZeeBjjdFejdemdemd*edejf
ddZeeBjjxdemd(ee
emejf  d*edejfddZeeDjpjx	dd7ejd8ejdeej dejfddZpeeEjqjxd7ejdejdejd8ejdejdejdejdejdejdemdejfddZqeejAjDjdejdejfddZeeBjge	 	 	dddejdejdemdemdedejfddZeeBjj	ddFeej deej deej dedeej f
ddZeeBjj	ddFeej deej deej dedeej f
ddZeeBjjdeej deej d8ejjdeej fddZeeBjjădeej deej deejj deej fddZeBjjxejjjʡeeBjƃd7ejd8ejdejej dejej dejej dedededeejejejf fddZe jdeeedef f fddZdeeedef f fddZeeBjσdFejdejdejdejfddZeeFjjуd7ejdemdemdedpejdeejejf fddńZeeBjӃ	dddFejd/ejdejdedejf
ddȄZeeBjԃ	dddFejd/ejdejdedejf
ddʄZeeBjyjxedejdejd.emdejdejf
dd΄ZyeeBjՃddМdFejd.emd/ejdejdededejfddՄZd%ejdeem d:ee
emeem f  d;e
emeem f d<e
emeem f ded.emdeejejf fddلZeeBj؃		 		ddd%ejdeem d:ee
emeem f  d;e
emeem f d<e
emeem f dedeejejf fddۄZeeBjك		 		ddd%ejdeem d:ee
emeem f  d;e
emeem f d<e
emeem f dedeejejf fdd݄ZeeBjڃd%ejdeem deejejf fddZeeBjjddddddddejdFejjdededee deej dejfddZeeBj݃			d	ddFejdejdedededeej deejejf fddZeeBjj	ddejdeem dejfddZdS )    N)AnyCallableOptionalTypeVarUnion)	ParamSpec	TypeAlias)core_aten_decompositionsget_decompositionsremove_decompositions)_grid_sampler_2d
_index_addembedding_dense_backwardpw_cast_for_opmath"pw_cast_for_opmath_non_tensor_args)extra_random_decomps)counters)	is_fbcode)	out_dtype)pad_listlike)elementwise_dtypesELEMENTWISE_TYPE_PROMOTION_KINDtype_to_dtype)guard_or_falsestatically_known_true   )configinductor_prims)is_gpu,needs_fallback_due_to_atomic_add_limitationsuse_scatter_fallback_T_P_GenericOperatordecomps_to_excludeopsreturnc                 C   s:   t | tr| n| gD ]}|tv rtd|  q
t| tS )Nzduplicate decomp: %s)
isinstancelistdecompositionslogwarningdecompregister_decomposition)r%   op r/   S/home/ubuntu/vllm_env/lib/python3.10/site-packages/torch/_inductor/decomposition.pyr-      s
   r-   grad_outputindicesnum_weightspadding_idxscale_grad_by_freqc                 C   s   | j rtS t| ||||S N)is_xpuNotImplementeddecomp_embedding_dense_backward)r1   r2   r3   r4   r5   r/   r/   r0   _embedding_dense_backward   s
   

r:   )minmaxsymbolr;   r<   c                C   s   d S r6   r/   )r=   r;   r<   r/   r/   r0   sym_constrain_range_for_size   s   r>   xc                 C   s(   |d ur	|  |} |d ur| |} | S r6   )	clamp_min	clamp_max)r?   r;   r<   r/   r/   r0   clamp   s
   

rB   size
fill_valuekwargsc                 K   s:   | d}|d u rtt||d< tj| |fi |S tS )Ndtype)getr   typetorchfullr8   )rC   rD   rE   rF   r/   r/   r0   rJ      s
   
rJ   alphadimindextensorrL   c                C   s*   t  s| jtjkrtS t| |||d|dS )NF)inplacerL   )r   rF   rI   bfloat16r8   r   )r?   rM   rN   rO   rL   r/   r/   r0   	index_add   s   rR   physical_layoutc                    sN   dgt   }t|D ]\}}|||< qtj fdd|D fi ||S )Nr   c                    s   g | ]} | qS r/   r/   .0lrC   r/   r0   
<listcomp>   s    z"empty_permuted.<locals>.<listcomp>)len	enumeraterI   emptypermute)rC   rS   rE   permprV   r/   rW   r0   empty_permuted   s   
&r_   inputweight
bias_sizesstridepaddingdilation
transposedoutput_paddinggroupsoutput_maskc                 C   st   |
d r
t | jjstS t| dgttd|   }t	| |||||||||	|
d |
d dg\}}}|||fS )N   r   r   F)
r   devicerH   r8   atensumr(   rangerM   convolution_backward)r1   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   	grad_biasgrad_inpgrad_weight_r/   r/   r0   ro      s"    

ro   decimalsc                 C   s   d| }t | | d|  S )Ng      $@g      ?)rl   round)r?   rt   ten_pow_decimalsr/   r/   r0   	round_dec	  s   rw   selfbatch2r   c                 C   s   t jr+| jjdvr+t| jd dkst|jd dkr+| d|d jdd}|S | jjdkr`t| ddkr`t|ddkr`t	d d  d7  < t
j| d|d dd	d
dS tS )Ncpumpsr   rj   rM   r{   inductordecompose_bmmTrM   keepdim)r   coordinate_descent_tuningrk   rH   r   shape	unsqueezerm   rC   r   rI   squeezer8   )rx   ry   r   outr/   r/   r0   bmm  s"   	r   mat1mat2betac                 C   s   | j jdkrtt|ddkr=t|ddkr=td d  d7  < tj|d|d dddd}|| ||   S t|ddkrtt	|dd	krtt	|dd	krttd d  d7  < |j
| jddd}|| ||   S tS )
Nr{   r   r   r}   r   decompose_addmmTr      )rk   rH   r   rC   r   rI   rm   r   r   r   Tr8   )rx   r   r   r   r   rL   r   r/   r/   r0   addmm)  s*   
r   input2c                 C   s:  t jr)| jjdvr)t| jd dkst|jd dkr)| d|d jddS | jjdkrt| ddkrlt| ddkrlt|ddkrl| j	|j	krlt
t| t| dkrltd	 d
  d7  < | | S t| ddkrt|ddkrtd	 d
  d7  < tj| d|d ddddS tS )Nrz   r   r   rj   r~   r{   r}       r   decompose_mmTr   )r   r   rk   rH   r   r   r   rm   rC   rF   r   rI   numelr   r   r8   )rx   r   r   r/   r/   r0   mmG  s6   r   tensorsc                    s  dt jdtf fdd}tt|| tdkr6t| dtjid }d }||j	kr0|
 S |j|dS dt  k rDt| k rMn ntj S tdkrtfd	d
D rd }t|j} dk rr t|j n  | t | j|   d 
 S tS )Nr?   r&   c                    sL   t | jdkrt| jd dkrdS  t | jk r$t| j  dkr$dS dS )Nr   r   FT)rY   r   r   )r?   r~   r/   r0   non_empty_tensoru  s
     zcat.<locals>.non_empty_tensorr   type_promotion_kindr   rF   c                 3   s    | ]	}| d  u V  qdS )r   Nr/   )rU   t)filtered_tensorsr/   r0   	<genexpr>  s    
zcat.<locals>.<genexpr>)rI   Tensorboolr(   filterrY   r   r   DEFAULTrF   clonetorl   catdefaultallr   insertr   expandflattenr8   )r   rM   r   promoted_dtype
filtered_tinpr   r/   )rM   r   r0   r   p  s6   

 
 r   c                 C   s~   |   rtt| jtdt| j| jS t| t	j
d\}}tjtj|| jd}t| dk |d}tt| td|S )Nnan)r   rF   rk   r   g        )
is_complexrI   whereisnanrealfloatatan2imagr   r   INT_TO_FLOATscalar_tensormathpirk   )r?   rs   rF   r   retr/   r/   r0   angle  s   
r   yc                C   s
  t | o|  }t |o| }|r|stS d}| jdkr&|jdkr&d}| jdkr0| d} |jdkr:|d}|}|d urD|| }t | j|j}dt jdt jfdd}| d } |d }|| 	| j
j}	||	|j
j}
t j|	|
 d	d
	|}|r|d S |S )NFr   Tr   rO   r&   c                 S   sD   | j ^ }}|d dkrtdg ||d dR }| |}|S )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)rO   initial_dimslast_dim	new_shapereshaped_tensorr/   r/   r0   reshape_tensor_complex  s   
z#add.<locals>.reshape_tensor_complex)	start_dim)rI   	is_tensorr   r8   ndimreshapepromote_typesrF   r   r   r   r   )r?   r   rL   x_is_complex_tensory_is_complex_tensoroutput_size_zerozcomplex_typer   
x_reshaped
z_reshapedresultr/   r/   r0   add  s0   



r   c                 C   s   |   rtS | S r6   )r   r8   rx   r/   r/   r0   conj_physical  s   r   c                 C   s   | S r6   r/   r   r/   r/   r0   lift  s   r   otherc                 C   s   t t ||| kB | |S r6   rI   r   r   rx   r   r/   r/   r0   fmin	     r   c                 C   s   t t ||| k B | |S r6   r   r   r/   r/   r0   fmax  r   r   Fr   c                 C       | j tjkrtj| ||dS tS Nr   )rF   rI   r   anyr8   rx   rM   r   r/   r/   r0   amax     r   c                 C   r   r   )rF   rI   r   r   r8   r   r/   r/   r0   amin  r   r   startlengthc                 C   s   t | ||| S r6   )rI   narrowr   )rx   rM   r   r   r/   r/   r0   narrow_copy)  s   r   c                 C   s   t | | S r6   )rl   r   r   )rx   rC   r/   r/   r0   view_copy_default3  s   r   rF   c                 C   s   |  | S r6   )r   r   )rx   rF   r/   r/   r0   view_copy_dtype;  s   r   c                    sL   t  } fdd|D }dgt| }t|D ]\}}|||< q||fS )Nc                    s   g | ]} j | qS r/   )r   rT   r   r/   r0   rX   G  s    z/_get_shape_permutation_like.<locals>.<listcomp>r   )utils3compute_elementwise_output_logical_to_physical_permrY   rZ   )rx   rS   r   permutationr^   rV   r/   r   r0   _get_shape_permutation_likeC  s   

r   )rF   layoutrk   
pin_memoryrequires_gradmemory_formatr   rk   r   r   r   c             	   C   s   |d u r| j n|}|d u r| jn|}|d u r| jn|}|tjkr3tj| j||||||d}|j|dS |tjks:J t	| \}	}
tj|	||||||d}|
t
tt|
krX|S ||
 S )N)rF   r   rk   r   r   r   )rF   r   rk   rI   preserve_formatrJ   r   r   stridedr   r(   rn   rY   r\   r   )rx   rD   rF   r   rk   r   r   r   r   r   r   r/   r/   r0   	full_likeP  s8   
		r   )rF   rk   r   rand_fn.c          	      K   s   |d u r|j n|}|d u r|jn|}|tjkr'| |jf||d|j|dS t|\}}| |f||d|}|ttt	|krD|S |
| S )Nr   r   )rF   rk   rI   r   r   r   r   r(   rn   rY   r\   r   )	r   rx   rF   rk   r   rE   r   r   r   r/   r/   r0   
_rand_like}  s2   	
r   c                 K      t tj| fi |S r6   )r   rI   randrx   rE   r/   r/   r0   	rand_like     r   c                 K   r   r6   )r   rI   randnr   r/   r/   r0   
randn_like  r   r   highc                 K   s    t ttjjd|| fi |S Nr   r   	functoolspartialrl   randintlow)rx   r   rE   r/   r/   r0   randint_like  s    r  r  c                 K   s    t ttjj||| fi |S r6   r   )rx   r  r   rE   r/   r/   r0   randint_like_low  s    r  c                 K   s   t jjd| |fi |S r   )rl   r  r  )r   rC   rE   r/   r/   r0   r    s   r  biasc                 C   s*   t jj|}t jj| ||| d S r   )rI   r%   
_quantized$wrapped_fbgemm_pack_gemm_matrix_fp16!wrapped_fbgemm_linear_fp16_weightrC   )r`   ra   r  packed_weightr/   r/   r0   #linear_dynamic_fp16_unpacked_weight  s   r
  input_scaleinput_zero_pointweight_scaleweight_zero_point	out_scaleout_zero_pointout_channelc
              	   C   s.   t jj||||}
t jj| |||
|||	S r6   )rI   r%   r  _wrapped_linear_prepack#_wrapped_quantized_linear_prepacked)r`   r  r  ra   r  r  r  r  r  r  r	  r/   r/   r0   wrapped_quantized_linear  s   r  packedc                 C   s^   dt jdt jfdd}|| dddf }|| ddd f }| dd df t j| | S )Nu8r&   c                    st    fdddD \}}}}t jdkr&||d>  |d>  |d>  tjd S |d> |d>  |d>  | tjd S )	Nc                 3   s$    | ]} d |f  tjV  qdS .N)r   rI   int32)rU   nr  r/   r0   r     s   " zPq_embedding_bag_byte_unpack_decomp.<locals>.bitcast_u8_to_f32.<locals>.<genexpr>)r   r   rj      little   r      r  )sys	byteorderr   rI   float32)r  r?   r   r   wr/   r  r0   bitcast_u8_to_f32  s   
((z=q_embedding_bag_byte_unpack_decomp.<locals>.bitcast_u8_to_f32.i)rI   r   r   r!  )r  r#  scalesoffsetsr/   r/   r0   "q_embedding_bag_byte_unpack_decomp  s    r'  agridinterpolation_modepadding_modealign_cornersc                 C   s@   | j t dko|dko| jtjd }t| |||||d}|S )Nr{   r   r   )r)  r*  r+  r,  _expand_grid)rk   rI   is_contiguouscontiguous_formatdecomp_grid_sampler_2d)r(  r)  r*  r+  r,  r-  outputr/   r/   r0   grid_sampler_2d  s   r2  left_tensorsright_tensorsscalarc                 C      t jj| t j|||dS NrK   )rl   _foreach_addList_foreach_mulrx   r3  r4  r5  r/   r/   r0   _foreach_addcmul_scalar     r<  c                 C   r6  r7  )rl   r8  r9  _foreach_divr;  r/   r/   r0   _foreach_addcdiv_scalar  r=  r?  start_tensorsend_tensorsc              	   C   "   t j| t jt j|| |S r6   )rl   r8  r9  r:  Scalar_foreach_sub)r@  rA  ra   r/   r/   r0   _foreach_lerp_scalar(     rE  scalarsc              	   C   rB  r6   )rl   r8  r9  r:  
ScalarListrD  )r@  rA  rG  r/   r/   r0   _foreach_lerp_scalarlist6  rF  rI  running_meanrunning_vartrainingexponential_average_factorepsilonc              
   C   sB   t | |||||||\}}	}
|r||	|
fS ||d|dfS )Nr   )rl   native_batch_norm	new_zeros)r`   ra   r  rJ  rK  rL  rM  rN  r(  bcr/   r/   r0   miopen_batch_normD  s    

rT  c                   C   s   i t tS r6   )r)   r   r/   r/   r/   r0   fast_random_decompsd  s   rU  c                   C   s   t jrtS t S )z"decomps can change based on config)r   fallback_randomr)   rU  r/   r/   r/   r0   select_decomp_tablek  s   rW  masksourcec           
      C   s   ddl m}m} || j|jrCt| |g\} }|ddd }dd | ||fD \}}}t	|||gd}	t
||	|| jS tS )Nr   )BackendFeaturehas_backend_featurer}   r   c                 s   s    | ]}|  V  qd S r6   )r   )rU   r?   r/   r/   r0   r     s    z!masked_scatter.<locals>.<genexpr>)codegen.commonrZ  r[  rk   MASKED_SCATTER_WITH_INDEXrl   broadcast_tensorsr   cumsum_unsafe_masked_indexrI   r   r   r   r8   )
rx   rX  rY  rZ  r[  
source_idx	self_flat	mask_flatsource_flatr   r/   r/   r0   masked_scatterr  s   re  	quant_min	quant_maxepsc           	      C   sv   t | \}}|| t||  }t |t |g}|t || t j }t |||}|t j	|t j
fS r6   )rI   aminmaxr   r<   r   ru   r   intrB   float64int64)	r`   rf  rg  rh  rF   min_valmax_valscale
zero_pointr/   r/   r0   choose_qparams_tensor  s   rq  
accumulatec                 C   s.   |   }t||g||j|}|| jS r6   )r   rI   	index_putr   r   )rx   rN   rY  rr  	flattenedr/   r/   r0   put  s
   ru  c                 C   s   t j| |||d}| |S )N)rr  )rl   ru  copy_)rx   rN   rY  rr  r   r/   r/   r0   put_  s   
rw  r1  input_dtypec                 C   sD   | | }t j||dd}t| ||}| j|kr||}| S )NTr   )rI   rm   r   fmarF   r   
contiguous)r1   r1  rM   rx  new_grad_outputsum_new_grad
grad_inputr/   r/   r0   _softmax_backward_data  s   

r~  Tinclude_selfsrcreduction_typer  c                C   sr  |dkrOt | jsO| jjp| jj}t|}|r%| }t| |||}	n| ||d}t| |||}	|		|	dk d}	||||}|rK||	 S ||	 S t
tjj|| j|j|jjdr`tS | j|d d   | jd |   }
| g| j|d d  | jd | R }g t| j| | jdtd| j| R }|tj|
||}| j|||||dS )Nmeanr   r   Tr  )r   rF   is_floating_pointr   rI   	ones_likerR   
index_fill
zeros_likemasked_fillr    rl   scatter_reduce_twork   rH   r8   r   r   rn   r   r   rl  repeat_interleaver   r\   scatter_reduce)rx   rM   rN   r  r  r  true_divisiononesr   countsrepeatsindex_shaper]   scatter_indexr/   r/   r0   index_reduce  sJ   


(,,
r  kernel_size	ceil_modec                 C   s   |dkr	dg| }|dkrdg| }|s|}t ||}t ||}t ||}t ||}ttj|}tjjj||dsC|t	tj
jkrEtS t| |||||\}}	t|	|| j| d  |||}
||
fS )Nr   r   )n_dim)r   r   reduceoperatormulrI   	_inductorlowering%should_fallback_max_pool_with_indicesiinfoint8r<   r8   prims!_low_memory_max_pool_with_offsets'_low_memory_max_pool_offsets_to_indicesr   )r?   r  rc   rd   re   r  rM   window_sizevalsr&  r2   r/   r/   r0   _max_pool_with_indices  sD   	





r  c              	   C      t | |||||ddS )Nrj   r~   r  r?   r  rc   rd   re   r  r/   r/   r0   max_pool2d_with_indices-     	r  c              	   C   r  )Nr  r~   r  r  r/   r/   r0   max_pool3d_with_indices;  r  r  output_sizec           	      C   s   | j ^ }}}|\}}|dks|dkr(g |||}| || j|tjdfS || dkrB|| dkrB|| || g}t| |S tS )Nr   r   )r   	new_emptyrI   rl  rl   r  r8   )	r?   r  batchh_inw_inh_outw_outo_sizer  r/   r/   r0   adaptive_max_pool2dI  s   r  	out_int32rightsidesortersorted_sequencer  r  r  r  c                C   s(   t j| tj|g| jd||||dd S )Nrk   r  r   )rl   searchsortedrI   rO   rk   )r  rx   r  r  r  r  r/   r/   r0   searchsorted_scalar[  s   
r        ?UUUUUU?noiselowerupper	generatorc                 C   sf   |r#| dk}t j| |||d}t|| | | }t||d}	||	fS || d }
t | |
t fS )Nr   )r  r   rj   )rl   uniformrI   r   
leaky_relur   )rx   r  r  r  rL  r  not_positiverr1  	noise_outnegative_sloper/   r/   r0   rrelu_with_noise_functionalo  s   	r  repeatc                 C   s   t jjrtS |d u st|turtS | jjdkrtS | jtj	tj
fv s%J | jdks,J | d}tj|| jd}tj||| jtj	kddS )Nr|   r   r   r  T)r  r  )r   tritonautotune_at_compile_timer8   rH   rj  rk   rF   rI   r  rl  r   r_  aranger  )r  r  r_  posr/   r/   r0   repeat_interleave_Tensor  s   
r  )NNrO  r6   )Nr   r   )NF)r   r   F)r   )F)Nr   r   F)r  r  FN)r   loggingr   r  r  typingr   r   r   r   r   typing_extensionsr   r   rI   torch._decomp_decompr,   torch._prims_common_prims_commonr   $torch.ao.quantization.fx._decomposedr	   r
   r   torch._decomp.decompositionsr   r0  r   r   r9   r   r   $torch._decomp.decompositions_for_rngr   torch._dynamo.utilsr   torch._environmentr   !torch._higher_order_ops.out_dtyper   torch._inductor.utilsr   r   r   r   %torch.fx.experimental.symbolic_shapesr   r    r   r   r   r   r    r!   r"   _opsOperatorBaseOpOverloadPacketr#   __annotations__	getLogger__name__r*   r%   rl   r  	quantizedr  quantized_decomposed_adaptive_avg_pool2d_backwardindex_selectaddmvr  bitwise_and_bitwise_or_
clamp_min_distelu
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_backwardrP  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_copyrj  upsample_bilinear2dvecr
  r  inductor_decompositionsr)   _unsafe_indexr`  #_unsafe_masked_index_put_accumulate+_scaled_dot_product_flash_attention_for_cpur   r~  rA   r@   rR   gluselect_scatterslice_scattersplitr   r   rm   unbindbaddbmmr$   r(   
OpOverloadr-   r   r:   r>   SymInttypesNumberrB   rJ   r_   ro   tupleru   rt   rw   r   rF   r   r   r   r   r   r   r   detach_r   r   r   r   r   	view_copyr   r   	ShapeType
StrideTyper   r   r   r   r   rk   r   r   r   r   r  	low_dtyper  r  embedding_bag_byte_unpackr'  r2  _foreach_addcmulrC  r<  _foreach_addcdivr?  _foreach_lerprE  rH  rI  rT  py_impl_CDispatchKeyAutogradcachedictrU  rW  re  choose_qparamsrO   rq  ru  rw  r  strr  r  r  r  r  r  r  	Generatorr  r  r/   r/   r/   r0   <module>   s  

	
 !"#$%&'()*. 


	


	




	
 


'
=


:


	

	
0
 
 



	









	 


4
4

