
    x-j                         d dl Z d dlZd dlZd dlmZ dad Zd Zd Zd Z	d Z
 G d d	          Z G d
 d          Z G d d          ZdS )    N)corec                      t           d uS N)_GLOBAL_TIMERS     k/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddle/distributed/fleet/utils/timer_helper.pyis_timer_initializedr
      s    %%r   c                 $    | J | d            dS ))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                 $    | J | d            dS )r   Nz is not initialized.r   r   s     r	   _ensure_var_is_initializedr   !   s    ??t999?????r   c                  :    t          t          d           t          S )Ntimers)r   r   r   r   r	   
get_timersr   &   s    ~x888r   c                  L    t          t          d           t                      adS )zInitialize timers.r   N)r   r   Timersr   r   r	   
set_timersr   +   s!     #>8<<<XXNNNr   c                   2    e Zd ZdZd Zd Zd Zd Zd	dZdS )
_TimerzTimer.c                 `    || _         d| _        d| _        t          j                    | _        d S )N        F)r   elapsed_started_time
start_timeselfr   s     r	   __init__z_Timer.__init__5   s(    	)++r   c                     | j         r
J d            t          j        j                                         t          j                    | _        d| _         dS )zStart the timer.ztimer has already startedTN)r   paddledevicecudasynchronizer   r    r"   s    r	   startz_Timer.start;   sH    ==="=== &&((()++r   c                     | j         s
J d            t          j        j                                         | xj        t          j                    | j        z
  z  c_        d| _         dS )zStop the timers.ztimer is not started.FN)r   r%   r&   r'   r(   r   r   r    r)   s    r	   stopz_Timer.stopB   sW    }55555}&&(((t66r   c                 "    d| _         d| _        dS )zReset timer.r   FN)r   r   r)   s    r	   resetz_Timer.resetI   s    r   Tc                     | j         }| j         r|                                  | j        }|r|                                  |r|                                  |S )zCalculate the elapsed time.)r   r,   r   r.   r*   )r"   r.   r   r   s       r	   elapsedz_Timer.elapsedN   sV    == 	IIKKK= 	JJLLL 	JJLLLr   N)T)	__name__
__module____qualname____doc__r#   r*   r,   r.   r0   r   r   r	   r   r   2   si        L& & &      
     r   r   c                       e Zd ZdZd Zd ZdS )_GPUEventTimerzGPUEventTimer.c                     || _         t          t          j        dd                    }t	          j        t	          j        |                    | _        d S )NFLAGS_selected_gpus0)r   intosgetenvr   GPUEventTimer	CUDAPlacetimer)r"   r   dev_ids      r	   r#   z_GPUEventTimer.__init__b   sC    	RY4c::;;'v(>(>??


r   c                 ,    t          | j        |          S r   )getattrr?   r!   s     r	   __getattr__z_GPUEventTimer.__getattr__g   s    tz4(((r   N)r1   r2   r3   r4   r#   rC   r   r   r	   r6   r6   _   s;        @ @ @
) ) ) ) )r   r6   c                   (    e Zd ZdZd Zd	dZd
dZdS )r   zGroup of timers.c                     i | _         d S r   )r   r)   s    r	   r#   zTimers.__init__n   s    r   Fc                     |rt           nt          }| j                            |          }| ||          }|| j        |<   n0t	          |          |k    sJ d| dt	          |                       |S )NzInvalid timer type: z vs )r6   r   r   gettype)r"   r   	use_eventclazzr?   s        r	   __call__zTimers.__call__q   s    "+7%%=E$KKE %DK;;%'''?u??$u++?? ('' r         ?Tc                     |dk    sJ d}|D ]5}| j         |                             |          dz  |z  }|d| d|dz  }6t          |d	           d
S )zLog a group of timers.r   z	time (ms))r.   g     @@z | z: z.2fT)flushN)r   r0   print)r"   names
normalizerr.   stringr   elapsed_times          r	   logz
Timers.log}   s    C 	7 	7DD!)))66?*L  6D66L6666FFfD!!!!!!r   N)F)rL   T)r1   r2   r3   r4   r#   rK   rT   r   r   r	   r   r   k   sQ          
 
 
 
	" 	" 	" 	" 	" 	"r   r   )r;   r   r%   paddle.baser   r   r
   r   r   r   r   r   r6   r   r   r   r	   <module>rV      s
   
			        & & &@ @ @
: : :
  
  * * * * * * * *Z	) 	) 	) 	) 	) 	) 	) 	)" " " " " " " " " "r   