
    sgZ
                     B    d Z ddlZddlmc mZ d Zedk(  r e        yy)zCExample of the Timer and Fuzzer APIs:

$ python -m examples.fuzzer
    Nc                     t        j                  t        d      D  cg c]  } t        j                  d|  ddd        c} t        j                  ddd	d
      gdD cg c]  }t        j                  |ddddd       c}gd      }d}g }t        |j                  |            D ]>  \  } \  }}}|d   t        |d   d         }	}|d   t        |d   d         }}
dj                  t        d |j                  D                    }dj                  |j                         dd|dd|j                         rdn|	d d|
j                         rdn|d dg      }t        j                  d!||"      }|j                  |j                  d#$             d%|j                         i|d&   _        t#        d'| d(z    d)| d*       t$        j&                  j)                          A t#                t#        d+d,d,|j*                  z
  z  d-       d. }|j-                  |/       d0d1 d2d3 d4d5 }t#        |j/                  d6             |d d7 D ]&  }t#         ||      d8z  d9d:|j0                          ( t#        d;|j/                  d<      z          |d=d  D ]&  }t#         ||      d8z  d9d:|j0                          ( y c c} w c c}w )>N   k   i @  
loguniform)nameminvalmaxvaldistributiondg333333?g?)   r   )r   r   )xy)k0k1k2g      ?i   i   )r   sizedim_parameterprobability_contiguousmin_elementsmax_elementsr   )
parameterstensorsseed   )nr   orderr   z, c              3   $   K   | ]  }|d  
 yw)z>4N ).0is     X/var/www/html/venv/lib/python3.12/site-packages/torch/utils/benchmark/examples/fuzzer.py	<genexpr>zmain.<locals>.<genexpr>0   s     ;a1R&	;s    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 )Nr*   )medianmetadata)ms    r"   time_fnzmain.<locals>.time_fnG   s    xx!**W---    )keyz{:>6}z                   zSize    Shapez             zX order        Y order
zP--------------------------------------------------------------------------------zBest:   g    eAz>4.1fz ns / element     
zWorst:i)benchmark_utilsFuzzerrangeFuzzedParameterFuzzedTensor	enumeratetakestrjointupleshaper*   is_contiguousTimerappendblocked_autoranger1   printsysstdoutflushrejection_ratesortformatr(   )r!   r   
add_fuzzerr   measurementsr   tensor_properties_r   x_orderr   y_orderrB   r(   timerr3   templater2   s                     r"   mainrV      s     '' !8   //QC$!-	 ++!$-
. )	   ,,+"%+/!*!+	
 7J< 	AL.7
!8L.M **G&S\3'8'=g'F#G7S\3'8'=g'F#G7		%;177;;<ggwwynCc{#. 0|gcB#F 0|gcB#F
   %%#
 	E333EF%,aggi$8R!1q5'QC b)

)* 
G 
/b:;T;T6T0UVY/Z
[\.'"
-z9QRZQ[\H	(//'
"##2 Lc!%((:1==/JKL 
$*
*+#$ Lc!%((:1==/JKLE	s   #K
 "K
__main__)__doc__rH   torch.utils.benchmarkutils	benchmarkr8   rV   __name__r   r4   r"   <module>r]      s1   
  / /FLR zF r4   