§
    Ÿ²ÅjR.  ã                   óº   — d dl Z d dlZd dlmZ d dlZd dlZd dlmZmZm	Z	m
Z
mZ d dlmZmZmZmZmZmZ dgZ edd¬¦  «         G d„ d¦  «        ¦   «         Zd	„ ZdS )
é    N)Ú
deprecated)Ú_disable_profiler_legacyÚ_enable_profiler_legacyÚ
DeviceTypeÚProfilerConfigÚProfilerState)Ú_filter_nameÚ_filter_stack_entryÚ_rewrite_nameÚ	EventListÚFunctionEventÚMEMORY_EVENT_NAMEÚprofilez„`torch.autograd.profiler_legacy.profile` is deprecated and will be removed in a future release. Please use `torch.profiler` instead.)Úcategoryc                   ó0  — e Zd ZdZ	 ddddddddœd„Zd„ Zd„ Zd„ Zd	„ Zd
„ Z	d„ Z
d„ Z	 	 	 	 	 	 	 dd„Zej        j        e_        d„ Zej        j        e_        ddedefd„Zdd„Zej        j        e_        d„ Zej        j        e_        ed„ ¦   «         ZdS ) r   z'DEPRECATED: use torch.profiler instead.TF)Úuse_cudaÚrecord_shapesÚ
with_flopsÚprofile_memoryÚ
with_stackÚwith_modulesc                óš  — || _         | j         sd S || _        d | _        d| _        || _        || _        | xj        | j        z  c_        || _        || _        || _        | j        r;t          j
                             ¦   «         st          j        dd¬¦  «         d| _        | j        rt          j        | _        d S t          j        | _        d S )NFz/CUDA is not available, disabling CUDA profilingé   )Ú
stacklevel)Úenabledr   Úfunction_eventsÚenteredr   r   r   r   r   ÚtorchÚcudaÚis_availableÚwarningsÚwarnr   ÚCUDAÚprofiler_kindÚCPU)Úselfr   r   r   r   r   r   r   s           úOC:\Projects\Historical\venv\Lib\site-packages\torch/autograd/profiler_legacy.pyÚ__init__zprofile.__init__$   sß   € ð %ˆŒØŒ|ð 	ØˆFØ ˆŒØ#ˆÔØˆŒØ*ˆÔØ$ˆŒØÐÔ˜dœoÑ-ÐÔØ,ˆÔØ$ˆŒØ(ˆÔàŒ=ð 	"¥¤×!8Ò!8Ñ!:Ô!:ð 	"ÝŒMØAØðñ ô ð ð "ˆDŒMàŒ=ð 	3Ý!.Ô!3ˆDÔÐÐå!.Ô!2ˆDÔÐÐó    c           
      óª   — t          | j        | j        | j        | j        | j        | j        t          j        j	         
                    ¦   «         ¦  «        S ©N)r   r$   r   r   r   r   r   r   Ú_CÚ	_profilerÚ_ExperimentalConfig©r&   s    r'   Úconfigzprofile.configH   sJ   € ÝØÔØÔØÔØŒOØŒOØÔåŒHÔ×2Ò2Ñ4Ô4ñ	
ô 	
ð 		
r)   c                 óz   — | j         sd S | j        rt          d¦  «        ‚d| _        |                      ¦   «          | S )Nz)Profiler context manager is not reentrantT)r   r   ÚRuntimeErrorÚ_start_tracer/   s    r'   Ú	__enter__zprofile.__enter__T   sI   € ØŒ|ð 	ØˆFØŒ<ð 	LÝÐJÑKÔKÐKØˆŒØ×ÒÑÔÐØˆr)   c                 óH   — t          |                      ¦   «         ¦  «         d S r+   )r   r0   r/   s    r'   r3   zprofile._start_trace]   s   € Ý §¢¡¤Ñ.Ô.Ð.Ð.Ð.r)   c                 ó$  — | j         sd S | j        rt          j                             ¦   «          t          ¦   «         }t          |¦  «        }t          || j        rdnd | j        | j	        ¬¦  «        | _
        | j
                             ¦   «          dS )Nr   )Ú
use_devicer   r   F)r   r   r   r   Úsynchronizer   Ú_parse_legacy_recordsr   r   r   r   Ú_build_tree)r&   Úexc_typeÚexc_valÚexc_tbÚrecordsÚparsed_resultss         r'   Ú__exit__zprofile.__exit__`   s–   € ØŒ|ð 	ØˆFØŒ=ð 	%ÝŒJ×"Ò"Ñ$Ô$Ð$å*Ñ,Ô,ˆÝ.¨wÑ7Ô7ˆÝ(ØØ!%¤Ð8�v�v°DØÔ.Ø”ð	 
ñ  
ô  
ˆÔð 	Ô×(Ò(Ñ*Ô*Ð*Øˆur)   c                 ó<   — | j         €dS t          | j         ¦  «        S )Nz$<unfinished profiler_legacy.profile>)r   Úreprr/   s    r'   Ú__repr__zprofile.__repr__q   s"   € ØÔÐ'Ø9Ð9Ý�DÔ(Ñ)Ô)Ð)r)   c                 ó<   — | j         €dS t          | j         ¦  «        S )Nz,<unfinished profile.profiler_legacy.profile>)r   Ústrr/   s    r'   Ú__str__zprofile.__str__v   s"   € ØÔÐ'ØAÐAÝ�4Ô'Ñ(Ô(Ð(r)   c                 ó2   — | j         €t          d¦  «        ‚d S )NzProfiler didn't finish running)r   r2   r/   s    r'   Ú_check_finishzprofile._check_finish{   s"   € ØÔÐ'ÝÐ?Ñ@Ô@Ð@ð (Ð'r)   Néd   éK   é7   éP   c           	      ó~   — |                       ¦   «          | j        €J ‚| j                             |||||||¬¦  «        S )N)Úsort_byÚ	row_limitÚmax_src_column_widthÚmax_name_column_widthÚmax_shapes_column_widthÚheaderÚtop_level_events_only)rH   r   Útable)r&   rN   rO   rP   rQ   rR   rS   rT   s           r'   rU   zprofile.table   sZ   € ð 	×ÒÑÔÐØÔ#Ð/Ð/Ð/ØÔ#×)Ò)ØØØ!5Ø"7Ø$;ØØ"7ð *ñ 
ô 
ð 	
r)   c                 óp   — |                       ¦   «          | j        €J ‚| j                             |¦  «        S r+   )rH   r   Úexport_chrome_trace)r&   Úpaths     r'   rW   zprofile.export_chrome_trace—   s:   € Ø×ÒÑÔÐØÔ#Ð/Ð/Ð/ØÔ#×7Ò7¸Ñ=Ô=Ð=r)   Úself_cpu_time_totalrX   Úmetricc                 ó¤   — |                       ¦   «          | j        €
J d¦   «         ‚| j        s
J d¦   «         ‚| j                             ||¦  «        S )NúExpected profiling resultsz(export_stacks() requires with_stack=True)rH   r   r   Úexport_stacks)r&   rX   rZ   s      r'   r]   zprofile.export_stacksž   s[   € Ø×ÒÑÔÐØÔ#Ð/Ð/Ð1MÑ/Ô/Ð/ØŒÐJÐJÐ JÑJÔJˆØÔ#×1Ò1°$¸Ñ?Ô?Ð?r)   r   c                 ó‚   — |                       ¦   «          | j        €
J d¦   «         ‚| j                             ||¦  «        S ©Nr\   )rH   r   Úkey_averages)r&   Úgroup_by_input_shapeÚgroup_by_stack_ns      r'   r`   zprofile.key_averages¤   sG   € Ø×ÒÑÔÐØÔ#Ð/Ð/Ð1MÑ/Ô/Ð/ØÔ#×0Ò0Ð1EÐGWÑXÔXÐXr)   c                 ó~   — |                       ¦   «          | j        €
J d¦   «         ‚| j                             ¦   «         S r_   )rH   r   Útotal_averager/   s    r'   rd   zprofile.total_average«   sA   € Ø×ÒÑÔÐØÔ#Ð/Ð/Ð1MÑ/Ô/Ð/ØÔ#×1Ò1Ñ3Ô3Ð3r)   c                 óT   — |                       ¦   «          | j        €J ‚| j        j        S )z;Return CPU time as the sum of self times across all events.)rH   r   rY   r/   s    r'   rY   zprofile.self_cpu_time_total²   s1   € ð 	×ÒÑÔÐØÔ#Ð/Ð/Ð/ØÔ#Ô7Ð7r)   )T)NrI   rJ   rK   rL   NF)rY   )Fr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r(   r0   r4   r3   r@   rC   rF   rH   rU   r   rW   rE   r]   r`   rd   ÚpropertyrY   © r)   r'   r   r      s§  € € € € € ð 2Ð1ð ð"3ð ØØØØØð"3ð "3ð "3ð "3ð "3ðH

ð 

ð 

ðð ð ð/ð /ð /ðð ð ð"*ð *ð *ð
)ð )ð )ð
Að Að Að ØØØ Ø "ØØ#ð
ð 
ð 
ð 
ð, ”OÔ+€E„Mð>ð >ð >ð
 #,Ô"?Ô"GÐÔð@ð @ #ð @¨sð @ð @ð @ð @ðYð Yð Yð Yð
 %Ô1Ô9€LÔð4ð 4ð 4ð
 &Ô3Ô;€MÔàð8ð 8ñ „Xð8ð 8ð 8r)   c                 ó¨
  — d„ }d}d }g }g }t           j                             | ¦  «        D ] }|                     ¦   «         }|€|dk    r|}Œ!|�|                     ¦   «         rJ ‚| D �]Ó}i }	i }
i }t          ¦   «         }d }|D �]¶} ||¦  «        }t          |                     ¦   «         ¦  «        s||v r|                     |¦  «         ŒI|                     ¦   «         dk    r©|�–|                     ¦   «         |                     ¦   «         k    oS|                     ¦   «         |                     ¦   «         k    o)| 	                    ¦   «         | 	                    ¦   «         k    }|r|                     |¦  «         Œù|||<   d|	|<   d|
|<   �nª|                     ¦   «         dk    �r„||v sJ d|› d�¦   «         ‚||         }|	|         }|
|         }| 
                    ¦   «         p)|                     ¦   «         |                     ¦   «         k    }|                     ¦   «         }|                     ¦   «         }t          d%i d|                     ¦   «         “d	| 	                    ¦   «         “d
t          |                     ¦   «         d¬¦  «        “dt          |                     ¦   «         d¬¦  «        “d|                     ¦   «         “d|                     |¦  «        “d|                     |¦  «        “d|                     ¦   «         “d|                     ¦   «         “dd„ |                     ¦   «         D ¦   «         “d|                     ¦   «         “d|                     ¦   «         rdnd “d|“d|“d|“d|“d|                     ¦   «         “dt.          j        “dd“d |“Ž}|sj|                     ¦   «         rV|                     |¦  «        }|dk    r;|                     |                     ¦   «         |                     ¦   «         |¦  «         |                     |¦  «         ||= |	|= |
|= �n|                     ¦   «         d!k    rõt;          |	¦  «        }t;          |
¦  «        }||k    sJ ‚|	                     ¦   «         D ]$}|	|xx         |                     ¦   «         z  cc<   Œ%|
                     ¦   «         D ]$}|
|xx         |                      ¦   «         z  cc<   Œ%|dk    rWt          dtB          d dddg |                     ¦   «         |                      ¦   «         d¬"¦
  «
        }|                     |¦  «         |}�Œ¸�ŒÕ| "                    d#„ ¬$¦  «         |S )&Nc                 óR   — |                       ¦   «         |                      ¦   «         fS )zPReturn a tuple for correlating start and end records in `_parse_legacy_records`.)ÚhandleÚnode_id)Úrecords    r'   Ú_get_record_keyz._parse_legacy_records.<locals>._get_record_key»   s   € à—’‘” §¢Ñ!1Ô!1Ð2Ð2r)   r   Ú__start_profileÚpushÚpopzExpected record with key zo to exist in range_starts.
                    This means that the pop event did not have a corresponding push.Úidro   ÚnameT)rv   Úwith_wildcardÚ
trace_nameFÚthreadÚstart_usÚend_usÚ
fwd_threadÚinput_shapesÚstackc                 ó0   — g | ]}t          |¦  «        ¯|‘ŒS rk   )r
   )Ú.0Úentrys     r'   ú
<listcomp>z)_parse_legacy_records.<locals>.<listcomp>  s7   € ð ð ð Ø"'Õ<OÐPUÑ<VÔ<VðØðð ð r)   Úscoper7   r   Úcpu_memory_usageÚdevice_memory_usageÚis_asyncÚ	is_remoteÚsequence_nrÚdevice_typeÚ	is_legacyÚflopsÚmemory_alloc)
ru   rv   rx   ry   rz   r{   r~   r„   r…   rŠ   c                 ó4   — | j         j        | j         j         gS r+   )Ú
time_rangeÚstartÚend)Úevts    r'   ú<lambda>z'_parse_legacy_records.<locals>.<lambda>9  s   €  C¤NÔ$8¸3¼>Ô;MÐ:MÐ#N€ r)   )Úkeyrk   )#Ú	itertoolsÚchainÚfrom_iterablerv   r‡   Úsetr	   ÚaddÚkindro   r†   Ú	thread_idr‹   r   rn   r   Úcpu_elapsed_usÚfwd_thread_idÚshapesr~   rƒ   Úhas_cudarˆ   r   r%   Úcuda_elapsed_usÚappend_kernelÚdeviceÚappendÚlenÚkeysr„   Úcuda_memory_usager   Úsort)Úthread_recordsrq   Únext_idÚstart_recordÚ	functionsÚrecord_stackrp   rv   Úthread_record_listÚcpu_memory_allocsÚcuda_memory_allocsÚrange_startsÚfiltered_handlesÚprev_recordÚ
record_keyÚ	duplicater�   r„   r¥   r†   Úis_remote_eventÚstart_flopsÚfeÚdurationÚnum_open_handles_cpuÚnum_open_handles_cudarn   s                              r'   r9   r9   º   sW  € ð3ð 3ð 3ð €GØ€LØ€IØ€Lõ ”/×/Ò/°Ñ?Ô?ð "ð "ˆØ�{Š{‰}Œ}ˆØÐ DÐ,=Ò$=Ð$=Ø!ˆLøàÐ#¨L×,BÒ,BÑ,DÔ,DÐ#Ð#ÐDà,ð e!ñ e!ÐàÐØÐàˆå™5œ5ÐØˆØ(ð \	!ñ \	!ˆFØ(˜¨Ñ0Ô0ˆJÝ˜FŸKšK™MœMÑ*Ô*ð ¨jÐ<LÐ.LÐ.LØ ×$Ò$ ZÑ0Ô0Ð0Øà�{Š{‰}Œ} Ò&Ð&ð Ð*à#×(Ò(Ñ*Ô*¨f¯kªk©m¬mÒ;ð FØ'×,Ò,Ñ.Ô.°&·+²+±-´-Ò?ðFà'×/Ò/Ñ1Ô1°V·^²^Ñ5EÔ5EÒEð ð
 !ð !Ø(×,Ò,¨ZÑ8Ô8Ð8Ø à+1�˜ZÑ(Ø01Ð! *Ñ-Ø12Ð" :Ñ.Ñ.Ø—’‘” %Ò'Ñ'à ,Ð.Ð.Ð.ðX°ð Xð Xð Xñ /Ô.Ð.ð % ZÔ0�à#4°ZÔ#@Ð Ø$6°zÔ$BÐ!Ø Ÿ>š>Ñ+Ô+ÐX°·²Ñ0AÔ0AÀV×EUÒEUÑEWÔEWÒ0W�Ø"(×"2Ò"2Ñ"4Ô"4�Ø#Ÿkšk™mœm�å"ð ð ð Ø—}’}‘”�ðà"ŸNšNÑ,Ô,Ð,ðõ '¨E¯JªJ©L¬LÈÐMÑMÔMÐMðõ  -°%·*²*±,´,ÈeÐTÑTÔTÐTð	ð
 !Ÿ?š?Ñ,Ô,Ð,ðð *×8Ò8¸Ñ?Ô?Ð?ðð (×6Ò6°vÑ>Ô>Ð>ðð  %×2Ò2Ñ4Ô4Ð4ðð "'§¢¡¤ ððð Ø+0¯;ª;©=¬=ðñ ô ð ðð  Ÿ+š+™-œ-˜-ðð */¯ªÑ)9Ô)9ÐC˜v˜v¸tøðð &6Ð%5ðð  ):Ð(9ð!ð" &˜Xð#ð$ .˜oð%ð& !&× 1Ò 1Ñ 3Ô 3Ð 3ð'õ( !+¤ ð)ð* #˜dð+ð, &˜+ð-�ð2  ð Q E§N¢NÑ$4Ô$4ð QØ$×4Ò4°VÑ<Ô<�HØ !’|�|Ø×(Ò(¨¯ª©¬°u·|²|±~´~ÀxÑPÔPÐPØ× Ò  Ñ$Ô$Ð$Ø  Ð,Ø% jÐ1Ø& zÐ2Ñ2Ø—’‘” .Ò0Ð0Ý'*Ð+<Ñ'=Ô'=Ð$Ý(+Ð,>Ñ(?Ô(?Ð%Ø+Ð/DÒDÐDÐDÐDØ/×4Ò4Ñ6Ô6ð Kð K�FØ% fÐ-Ð-Ô-°×1HÒ1HÑ1JÔ1JÑJÐ-Ð-Ñ-Ð-Ø0×5Ò5Ñ7Ô7ð Mð M�FØ& vÐ.Ð.Ô.°&×2JÒ2JÑ2LÔ2LÑLÐ.Ð.Ñ.Ð.Ø'¨1Ò,Ð,å&ØÝ.Ø#'Ø Ø!"Ø Ø Ø)/×)@Ò)@Ñ)BÔ)BØ,2×,DÒ,DÑ,FÔ,FØ"&ðñ ô �Bð ×$Ò$ RÑ(Ô(Ð(Ø ˆK‰Kñy\	!ðH ‡N‚NÐNÐN€NÑOÔOÐOØÐr)   )r”   r!   Útyping_extensionsr   r   Ú
torch.cudaÚtorch.autogradr   r   r   r   r   Útorch.autograd.profiler_utilr	   r
   r   r   r   r   Ú__all__r   r9   rk   r)   r'   ú<module>r¿      sW  ðà Ð Ð Ð Ø €€€Ø (Ð (Ð (Ð (Ð (Ð (à €€€Ø Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ˆ+€ð €ð+àðñ ô ð
V8ð V8ð V8ð V8ð V8ñ V8ô V8ñô ð
V8ðr@ð @ð @ð @ð @r)   