
    JThc                     p    S r SSKrSSKrSSKrSSKrSSKJs  Jr   " S S5      r	S r
\S:X  a  \
" 5         gg)zAExample of Timer and Compare APIs:

$ python -m examples.compare
    Nc                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)	FauxTorch   zEmulate different versions of pytorch.

In normal circumstances this would be done with multiple processes
writing serialized measurements, but this simplifies that model to
make the example clearer.
c                     Xl         X l        g N)_real_torch_extra_ns_per_element)self
real_torchextra_ns_per_elements      ^/var/www/auris/envauris/lib/python3.13/site-packages/torch/utils/benchmark/examples/compare.py__init__FauxTorch.__init__   s    %%9"    c                     [        UR                  5       5      nUS:  a%  [        R                  " X R                  -  S-  5        U$ )Ni  g&.>)intnumeltimesleepr	   )r
   resultr   s      r   extra_overheadFauxTorch.extra_overhead   s:     FLLN#4<JJu999D@Ar   c                 X    U R                  U R                  R                  " U0 UD65      $ r   )r   r   addr
   argskwargss      r   r   FauxTorch.add#   )    ""4#3#3#7#7#H#HIIr   c                 X    U R                  U R                  R                  " U0 UD65      $ r   )r   r   mulr   s      r   r!   FauxTorch.mul&   r   r   c                 X    U R                  U R                  R                  " U0 UD65      $ r   )r   r   catr   s      r   r$   FauxTorch.cat)   r   r   c                 X    U R                  U R                  R                  " U0 UD65      $ r   )r   r   matmulr   s      r   r'   FauxTorch.matmul,   s)    ""4#3#3#:#:D#KF#KLLr   )r	   r   N)__name__
__module____qualname____firstlineno____doc__r   r   r   r!   r$   r'   __static_attributes__ r   r   r   r      s)    :JJJMr   r   c                     SS/n / nSnS VVVVVVV	s/ s H  u  p4U   H  u  pVnS  H  nS  H}  n	[         R                  " UUS:X  a  [        O[        [        U5      [        R                  " US45      [        R                  " S5      [        R
                  " S	5      S
.UUSU 3UU	S9PM     M     M     M     n
nnnnnnn	[        X-  5       Ht  u  pUR                  [        R                  " UR                  SS95      5        [        SUS-    S[        U
5      U-   3SS9  [        R                  R                  5         Mv     [        5         [         R                   " U Vs/ s H  n[        R"                  " U5      PM     sn5      n[        S5        UR                  5         [        S5        UR%                  5         UR'                  5         UR                  5         g s  sn	nnnnnnf s  snf )N)r   r   ztorch.add(x, y))r   zadd (extra +0)ztorch.add(x, y + zero)   ))masterN)	my_branch   )severe_regression   )r4   
   d   i  i'  iP  )r4      r2   r9   r/   )torchxyzerozsize: )stmtglobalslabel	sub_labeldescriptionenvnum_threadsg?)min_run_timer4   z /  )endz== Unformatted ================================================================================
///////////////////////////////////////////////////////////////////////////////////////////////
z== Formatted ================================================================================
/////////////////////////////////////////////////////////////////////////////////////////////
)benchmark_utilsTimerr:   r   oneszeros	enumerateappendpickledumpsblocked_autorangeprintlensysstdoutflushCompareloadstrim_significant_figurescolorize)tasksserialized_resultsrepeatsbranchoverhead_nsr@   rA   r>   sizerD   timersitimer
comparisons                 r   mainre   0   s   );E
 G  $b  $bF&+"Ed4D!K# 	"(H"4)E;:WZZq	*ZZ'B	  #	
" "#	
  5!	
 ',	
 $b  * f./!!&,,###6#
 	 	1q5'S[7234"=

 0 
G ((!3*!3AQ!3* J 

?@	
=>'')O :*s   B'G#% G.__main__)r-   rO   rT   r   r:   torch.utils.benchmarkutils	benchmarkrI   r   re   r)   r/   r   r   <module>rj      sE   
  
   / /M M@/d zF r   