
    zj	                        d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZ ddlmZ  e
d	          Z ed
          Z G d d          Zedd            Z	 dddZdS )    )annotations)contextmanagerwraps)CallableTypeVar)	ParamSpec)core   )ENV_SOT_EVENT_LEVELPTc                  (    e Zd Zd Zd ZddZd ZdS )SotProfilerc                .    |                                   d S N)enableselfs    c/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/paddle/jit/profiler.py	__enter__zSotProfiler.__enter__    s        c                .    |                                   d S r   )disable)r   exc_typeexc_valexc_tbs       r   __exit__zSotProfiler.__exit__#   s    r   Nc                R    t          j                     t          j                     d S r   )r
   nvprof_startnvprof_enable_record_event)r   tags     r   r   zSotProfiler.enable&   s&    ')))))r   c                ,    t          j                     d S r   )r
   nvprof_stopr   s    r   r   zSotProfiler.disable*   s    r   r   )__name__
__module____qualname__r   r   r   r    r   r   r   r      sU            * * * *    r   r   c              #     K   d}	 t          j                    |k    rt          j        |            d}d V  |rt          j                     d S d S # |rt          j                     w w xY w)NFT)r   getr
   nvprof_nvtx_pushnvprof_nvtx_pop)
event_nameevent_levelneed_pops      r   
EventGuardr0   .   s      H#"$$33!*---H 	# """""	# 	#8 	# """"	#s   1A A(event_name_formatterCallable[P, str] | strreturn*Callable[[Callable[P, T]], Callable[P, T]]c                R     d fd}dd}t          j                    k    r|S |S )NfuncCallable[P, T]r3   c                D     t                     d fd            }|S )NargsP.argskwargsP.kwargsc                     t                    r | i |n}t          |          5   | i |cd d d            S # 1 swxY w Y   d S )N)r.   )callabler0   )r9   r;   r-   r.   r1   r6   s      r   call_with_eventz>event_register.<locals>.event_wrapper.<locals>.call_with_event?   s     011*$$d5f555) 
 JK@@@ - -tT,V,,- - - - - - - - - - - - - - - - - -s   AAA)r9   r:   r;   r<   r   )r6   r?   r.   r1   s   ` r   event_wrapperz%event_register.<locals>.event_wrapper>   sD    	t	- 	- 	- 	- 	- 	- 	- 
	- r   c                    | S r   r(   )r6   s    r   
do_nothingz"event_register.<locals>.do_nothingK   s    r   )r6   r7   r3   r7   )r   r*   )r1   r.   r@   rB   s   ``  r   event_registerrC   ;   s]                K//r   N)r   )r1   r2   r3   r4   )
__future__r   
contextlibr   	functoolsr   typingr   r   typing_extensionsr	   paddle.frameworkr
   dy2static.utilsr   r   r   r   r0   rC   r(   r   r   <module>rK      s   # " " " " " % % % % % %       $ $ $ $ $ $ $ $ ' ' ' ' ' ' ! ! ! ! ! ! 0 0 0 0 0 0IcNNGCLL        	# 	# 	# 	# ?@      r   