
    ajb
                     P    d Z ddlZddlmc mZ ddZedk    r e             dS dS )zCExample of the Timer and Fuzzer APIs:

$ python -m examples.fuzzer
    Nreturnc            	         t          j        d t          d          D             t          j        dddd          gd d	D             gd
          } d}g }t	          |                     |                    D ]\  }\  }}}|d         t          |d         d                   }}|d         t          |d         d                   }
}	d                    t          d |j	        D                                 }d                    |
                                dd|dd|                                rdn|dd|	                                rdn|
ddg          }t          j        d||          }|                    |                    d                     d|
                                i|d         _        t!          d|d z    d!| d"           t"          j                                         t!                       t!          d#d$d$| j        z
  z  d%           d& }|                    |'           d(d) d*d+ d,d- }t!          |                    d.                     |d d/         D ](}t!           ||          d0z  d1d2|j                    )t!          d3|                    d4          z              |d5d          D ](}t!           ||          d0z  d1d2|j                    )d S )6Nc                 D    g | ]}t          j        d | ddd          S )k   i @  
loguniform)nameminvalmaxvaldistribution)benchmark_utilsFuzzedParameter.0is     j/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/torch/utils/benchmark/examples/fuzzer.py
<listcomp>zmain.<locals>.<listcomp>   sN          / Q$!-	           dg333333?g?)   r   )r	   r   c           
      B    g | ]}t          j        |d dddd          S ))k0k1k2r   g      ?i   i   )r	   sizedim_parameterprobability_contiguousmin_elementsmax_elements)r   FuzzedTensor)r   r	   s     r   r   zmain.<locals>.<listcomp>   sN     	 	 	   ,+"%+/!*!+  	 	 	r   )xyr   )
parameterstensorsseed   )nr"   orderr#   z, c              3      K   | ]}|d V  	dS )z>4N r   s     r   	<genexpr>zmain.<locals>.<genexpr>0   s&      ;;a1		;;;;;;r    z>7z | z<16
contiguousz<12zx + y)stmtglobalsdescriptiong?)min_run_timenumel   z / )endz#Average attempts per valid config: g      ?z.1fc                 ,    | j         | j        d         z  S )Nr3   )medianmetadata)ms    r   time_fnzmain.<locals>.time_fnG   s    x!*W---r   )keyz{:>6}z                   zSize    Shapez             zX order        Y order
zP--------------------------------------------------------------------------------zBest:   g    eAz>4.1fz ns / element     
zWorst:i)r   Fuzzerranger   	enumeratetakestrjointupleshaper3   is_contiguousTimerappendblocked_autoranger:   printsysstdoutflushrejection_ratesortformatr1   )
add_fuzzerr(   measurementsr   r%   tensor_properties_r"   x_orderr#   y_orderrG   r1   timerr<   templater;   s                    r   mainr[      s    '  !88   +!$--  
	 	 )	 	 	
 7  J< 	AL.7
!8L8L.M.M  **G&S\3'8'=g'F#G#G7S\3'8'=g'F#G#G7		%;;17;;;;;<<ggwwyy....... 00=||gFFFF 00=||gFFFF
    %#
 
 
 	E333EEFFF%,aggii$8R! 1q5  Q  b))))
	GGG 

[b:;T6T0U
[
[
[\\\. . .'"""\\\\\RZ\\H	(//'
"
"####2# L Lc!JJJ1=JJKKKK	$**
*+++#$$ L Lc!JJJ1=JJKKKKL Lr   __main__)r   N)__doc__rM   torch.utils.benchmarkutils	benchmarkr   r[   __name__r+   r   r   <module>rb      sv    
 


 / / / / / / / / /FL FL FL FLR zDFFFFF r   