
    ϑi                         S SK Jr  S SKrS SKrS SKJr  S SKJr  S SKJ	r	  S SK
Jr  SSKJr   " S	 S
5      r " S S\5      rS r\ " S S5      5       r\ " S S5      5       r " S S\5      r " S S5      rg)    )annotationsN)	dataclass)Enum)profiler)tracer_event_type_to_string   )ENV_ENABLE_SOT_STEP_PROFILERc                  &    \ rS rSrS rS rS rSrg)EventVisitor   c                    [        UR                  5      nSU 3n[        X5      (       d  U R                  U5        g [	        X5      " U5        g )Nvisit_)r   typehasattrgeneric_visitgetattr)self
event_nodeevent_type_namevisit_method_names       d/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/jit/sot/profiler/kernel_stats.pyvisitEventVisitor.visit   sG    5jooF$_$56t//z*(4    c                L    UR                    H  nU R                  U5        M     g N)children_noder   )r   r   childs      r   r   EventVisitor.generic_visit%   s    --EJJu .r   c                T    UR                  5        H  nU R                  U5        M     g r   )valuesr   )r   eventsr   s      r   __call__EventVisitor.__call__)   s     --/JJJz" *r    N)__name__
__module____qualname____firstlineno__r   r   r#   __static_attributes__r%   r   r   r   r      s    5#r   r   c                      \ rS rSrSrSrSrg)KernelRunMode.      r   r%   N)r&   r'   r(   r)   DygraphStaticr*   r%   r   r   r,   r,   .   s    GFr   r,   c                    US:w  a  X-  $ S$ )Nr   r%   )abs     r   safe_divider4   3   s    F15!!r   c                  >    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S
rg)
KernelInfo8   strnamer,   run_modefloatdurationzlist[CudaKernelInfo]cuda_kernelsr%   Nr&   r'   r(   r)   __annotations__r*   r%   r   r   r6   r6   8   s    
IO&&r   r6   c                  *    \ rS rSr% S\S'   S\S'   Srg)CudaKernelInfo@   r8   r9   r;   r<   r%   Nr>   r%   r   r   rA   rA   @   s    
IOr   rA   c                  t    \ rS rSr1 Skr\R                  " S5      rS rS r	S r
S rS rS	 rS
 rSS jrSrg)KernelStatsVisitorG   >   fullshadow_feedfull_int_arrayz!(?P<kernel_name>.+) kernel launchc                    / U l         g r   kernelsr   s    r   __init__KernelStatsVisitor.__init__K   s	    r   c                    U R                   R                  U5      =n(       a  UR                  S5      $ [        SU 35      e)Nkernel_namezUnexpected event name: )KERNEL_NAME_REGEXmatchgroup
ValueError)r   
event_name	match_objs      r   get_kernel_name"KernelStatsVisitor.get_kernel_nameN   s@    ..44Z@@9@??=112:,?@@r   c                    [        U R                   Vs/ s H7  nUR                  U:X  d  M  UR                  [        R
                  ;  d  M5  UPM9     sn5      $ s  snf r   )lenrK   r:   r9   rD   SKIP_KERNEL_NAMESr   modekernels      r   calc_kernel_count$KernelStatsVisitor.calc_kernel_countS   s[     #ll*FOOt+  +=+O+OO	 *	
 		
s   AAAc                    [        U R                   Vs/ s HA  nUR                  U:X  d  M  UR                  [        R
                  ;  d  M5  UR                  PMC     sn5      $ s  snf r   )sumrK   r:   r9   rD   r[   r<   r\   s      r   calc_kernel_duration'KernelStatsVisitor.calc_kernel_duration_   sa     #ll*FOOt+   +=+O+OO	  *	
 		
s   A#A#A#c           
         UR                    VVs/ s HD  nUR                    H0  n[        UR                  UR                  UR
                  -
  5      PM2     MF     snn$ s  snnf r   )runtime_nodedevice_noderA   r9   end_nsstart_ns)r   
host_eventruntime_eventdevice_events       r   find_all_cuda_kernels(KernelStatsVisitor.find_all_cuda_kernelsk   si     ",!8!8	
 "9 - 9 9	 !!<#6#69N9N#N !:	 "9	
 	
 
s   AAc                   UR                   UR                  -
  nU R                  UR                  5      nU R	                  U5      nU R
                  R                  [        U[        R                  X$5      5        U R                  U5        g r   )rh   ri   rW   r9   rm   rK   appendr6   r,   r/   r   r   r   r<   rP   all_cuda_kernelss        r   visit_DygraphKernelLaunch,KernelStatsVisitor.visit_DygraphKernelLaunchu   st    $$z':'::**:??;55jA]22H	

 	:&r   c                   UR                   UR                  -
  nU R                  UR                  5      nU R	                  U5      nU R
                  R                  [        U[        R                  X$5      5        U R                  U5        g r   )rh   ri   rW   r9   rm   rK   rp   r6   r,   r0   r   rq   s        r   visit_StaticKernelLaunch+KernelStatsVisitor.visit_StaticKernelLaunch   st    $$z':'::**:??;55jA]118	

 	:&r   c                   U R                  [        R                  5      nU R                  [        R                  5      nU R	                  [        R                  5      nU R	                  [        R                  5      n[        X3U-   5      n[        UX-   5      nSnUSU S3-  nUSU S3-  nUSUS S3-  nUSUS-  S	 S
3-  nUSUS-  S	 S
3-  nUSUS S3-  nU$ )N zdygraph kernel count: 
zstatic kernel count: z percentage static kernel count: z.2%zdygraph kernel duration: i@B z.2fz ms
zstatic kernel duration: z#percentage static kernel duration: )rc   r,   r0   r/   r_   r4   )r   static_kernel_durationdygraph_kernel_durationstatic_kernel_countdygraph_kernel_countpercentage_static_kernel_count!percentage_static_kernel_durationstep_summarys           r   summaryKernelStatsVisitor.summary   s8   !%!:!:=;O;O!P"&";";!!#
 #44]5I5IJ#55m6K6KL)47K!K*
& -8""<-
) 01E0FbII/0C/DBGG:;YZ]:^^`aa34Kg4UVY3ZZ_``23IG3STW2XX]^^=>_`c=ddfggr   rJ   Nreturnr8   )r&   r'   r(   r)   r[   recompilerQ   rM   rW   r_   rc   rm   rs   rv   r   r*   r%   r   r   rD   rD   G   sA    A

#FGA





	'	'r   rD   c                  \    \ rS rSrSrSrSrSS jrSS jrSS jr	S r
S	 rS
 rS rS rSrg)SotStepProfilerGuard   z./sot-chrome-tracing/r   Nc                F    Xl         X l        SU l        S U l        S U l        g )NF)enable_kernel_statsenable_chrome_tracingstartedrecord_eventr   )r   r   r   s      r   rM   SotStepProfilerGuard.__init__   s$    #6 %:" r   c                v    [        5       nU" UR                  R                  5       5        UR                  5       $ r   )rD   profiler_resultget_datar   )r   profkernel_stats_visitors      r   _kernel_stats"SotStepProfilerGuard._kernel_stats   s1    13T11::<=#++--r   c                    SnU R                   (       a  X R                  U5      -  nU R                  (       a=  [        R                  " [
        R                  S[
        R                  S 35      " U5        U$ )Nry   step_03d)r   r   r   r   export_chrome_tracingr   EXPORT_CHROME_TRACING_PATHSTEP_CNT)r   r   r   s      r   collect_step_info_summary.SotStepProfilerGuard.collect_step_info_summary   sj    ##))$//G%% **$??,55c:;  r   c                P   U R                  U5      n[        R                  S:X  a-  S[        R                   S3nU SU 3n[        U5        X@l        g S[        R                   S3nU SU 3n[        R
                  c  [        R                  " S 5        U[        l        X`l        g )Nr   z0SOT step profiler info summary (ColdStart, step#z):rz   z-SOT step profiler info summary (Warmup, step#c                 4    [        [        R                  5      $ r   )printr   LAST_INFO_SUMMARYr%   r   r   <lambda>5SotStepProfilerGuard.on_trace_ready.<locals>.<lambda>   s    E"6"H"HIr   )r   r   r   r   r   r   atexitregister)r   r   r   coldstart_titlecoldstart_reportwarmup_titlewarmup_reports          r   on_trace_ready#SotStepProfilerGuard.on_trace_ready   s    006((A- PQeQnQnPooqrO"1!2"WI>"#+LJK_KhKhJiiklL+nBwi8M#55=I 6C 2(Lr   c                (   [         R                  " 5       (       ax  [        R                  " [        R                  R
                  [        R                  R                  /U R                  S9U l        U R                  R                  5         SU l	        g g )N)targetsr   T)
r	   getr   ProfilerProfilerTargetCPUGPUr   startr   rL   s    r   r   SotStepProfilerGuard.start   so    '++--$--++//++//  $22DM MM!DL .r   c                    U R                   (       a0  U R                  c   eU R                  R                  5         S U l        [        =R                  S-  sl        g )Nr.   )r   r   stopr   r   rL   s    r   r   SotStepProfilerGuard.stop   sA    <<==,,,MM  DM%%*%r   c                &    U R                  5         U $ r   )r   rL   s    r   	__enter__SotStepProfilerGuard.__enter__   s    

r   c                $    U R                  5         g r   )r   )r   exc_typeexc_valexc_tbs       r   __exit__SotStepProfilerGuard.__exit__   s    		r   )r   r   r   r   r   r   )TFr   )r&   r'   r(   r)   r   r   r   rM   r   r   r   r   r   r   r   r*   r%   r   r   r   r      s;    !8H.
)"
 +r   r   )
__future__r   r   r   dataclassesr   enumr   paddler   paddle.base.corer   
utils.envsr	   r   r,   r4   r6   rA   rD   r   r%   r   r   <module>r      s    #  	 !   8 5# #$D 
"
 ' ' '   [ [|G Gr   