
    Αi                         S SK r S SKrS SKrS SKJr  SqS rS rS rS r	S r
 " S S	5      r " S
 S5      r " S S5      rg)    N)corec                      [         S L$ N)_GLOBAL_TIMERS     k/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/distributed/fleet/utils/timer_helper.pyis_timer_initializedr
      s    %%r   c                     U b
   U S35       eg))Make sure the input variable is not None.Nz has been already initialized.r   varnames     r	   _ensure_var_is_not_initializedr      s    ;?4& >??;r   c                     U c
   U S35       eg)r   Nz is not initialized.r   r   s     r	   _ensure_var_is_initializedr   !   s    ?9tf$899?r   c                  .    [        [        S5        [        $ )Ntimers)r   r   r   r   r	   
get_timersr   &   s    ~x8r   c                  8    [        [        S5        [        5       qg)zInitialize timers.r   N)r   r   Timersr   r   r	   
set_timersr   +   s     #>8<XNr   c                   :    \ rS rSrSrS rS rS rS rS
S jr	Sr
g	)_Timer2   zTimer.c                 `    Xl         SU l        SU l        [        R                  " 5       U l        g )N        F)r   elapsed_started_time
start_timeselfr   s     r	   __init___Timer.__init__5   s"    	))+r   c                     U R                   (       a   S5       e[        R                  R                  R	                  5         [
        R
                  " 5       U l        SU l         g)zStart the timer.ztimer has already startedTN)r   paddledevicecudasynchronizer    r!   r#   s    r	   start_Timer.start;   s?    ==="== &&())+r   c                     U R                   (       d   S5       e[        R                  R                  R	                  5         U =R
                  [        R                  " 5       U R                  -
  -  sl        SU l         g)zStop the timers.ztimer is not started.FN)r   r'   r(   r)   r*   r   r    r!   r+   s    r	   stop_Timer.stopB   sN    }}555}&&(t66r   c                      SU l         SU l        g)zReset timer.r   FN)r   r   r+   s    r	   reset_Timer.resetI   s    r   c                     U R                   nU R                   (       a  U R                  5         U R                  nU(       a  U R                  5         U(       a  U R	                  5         U$ )zCalculate the elapsed time.)r   r/   r   r2   r,   )r#   r2   r   r   s       r	   elapsed_Timer.elapsedN   sA    ====IIK==JJLJJLr   )r   r   r!   r   N)T)__name__
__module____qualname____firstlineno____doc__r$   r,   r/   r2   r5   __static_attributes__r   r   r	   r   r   2   s    &
r   r   c                   $    \ rS rSrSrS rS rSrg)_GPUEventTimer_   zGPUEventTimer.c                     Xl         [        [        R                  " SS5      5      n[        R
                  " [        R                  " U5      5      U l        g )NFLAGS_selected_gpus0)r   intosgetenvr   GPUEventTimer	CUDAPlacetimer)r#   r   dev_ids      r	   r$   _GPUEventTimer.__init__b   s8    	RYY4c:;''v(>?
r   c                 .    [        U R                  U5      $ r   )getattrrH   r"   s     r	   __getattr___GPUEventTimer.__getattr__g   s    tzz4((r   )r   rH   N)r7   r8   r9   r:   r;   r$   rM   r<   r   r   r	   r>   r>   _   s    @
)r   r>   c                   2    \ rS rSrSrS rSS jrS	S jrSrg)
r   k   zGroup of timers.c                     0 U l         g r   r   r+   s    r	   r$   Timers.__init__n   s	    r   c                     U(       a  [         O[        nU R                  R                  U5      nUc  U" U5      nX@R                  U'   U$ [	        U5      U:X  d   SU S[	        U5       35       eU$ )NzInvalid timer type: z vs )r>   r   r   gettype)r#   r   	use_eventclazzrH   s        r	   __call__Timers.__call__q   st    "+%=$KE %KK
  ;%' &ugT$u+?' r   c                     US:  d   eSnU H1  nU R                   U   R                  US9S-  U-  nUSU SUS 3-  nM3     [        USS	9  g
)zLog a group of timers.r   z	time (ms))r2   g     @@z | z: z.2fT)flushN)r   r5   print)r#   names
normalizerr2   stringr   elapsed_times          r	   log
Timers.log}   sp    CDD!)))6?*L  D6L#566F	 
 	fD!r   rR   N)F)g      ?T)	r7   r8   r9   r:   r;   r$   rY   rb   r<   r   r   r	   r   r   k   s    
	"r   r   )rD   r    r'   paddle.baser   r   r
   r   r   r   r   r   r>   r   r   r   r	   <module>re      sQ    
   &@
:

* *Z	) 	)" "r   