Ë
    )êñi²/  ã                   ó¦   — 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y)
é    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                   óx  — 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y)r   z'DEPRECATED: use torch.profiler instead.F)Úuse_cudaÚrecord_shapesÚ
with_flopsÚprofile_memoryÚ
with_stackÚwith_modulesc                óØ  — || _         | j                   sy || _        d | _        d| _        || _        || _        | xj                  | j
                  z  c_        || _        || _        || _        | j                  r<t        j                  j                  «       st        j                  dd¬«       d| _        | j                  rt        j                  | _        y t        j"                  | _        y )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           ú`/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/torch/autograd/profiler_legacy.pyÚ__init__zprofile.__init__$   sº   € ð %ˆŒØ�|Š|ØØ ˆŒØ#ˆÔØˆŒØ*ˆÔØ$ˆŒØ×Ò˜dŸo™oÑ-ÕØ,ˆÔØ$ˆŒØ(ˆÔà�=Š=¤§¡×!8Ñ!8Ô!:Ü�M‰MØAØõð "ˆDŒMà�=Š=Ü!.×!3Ñ!3ˆDÕä!.×!2Ñ!2ˆDÕó    c           
      óè   — t        | j                  | j                  | j                  | j                  | j
                  | j                  t        j                  j                  j                  «       «      S ©N)r   r$   r   r   r   r   r   r   Ú_CÚ	_profilerÚ_ExperimentalConfig©r&   s    r'   Úconfigzprofile.configH   sW   € ÜØ×ÑØ×ÑØ×ÑØ�O‰OØ�O‰OØ×Ñä�H‰H×Ñ×2Ñ2Ó4ó	
ð 		
r)   c                 ó|   — | j                   sy | j                  rt        d«      ‚d| _        | j                  «        | S )Nz)Profiler context manager is not reentrantT)r   r   ÚRuntimeErrorÚ_start_tracer/   s    r'   Ú	__enter__zprofile.__enter__T   s7   € Ø�|Š|ØØ�<Š<ÜÐJÓKÐKØˆŒØ×ÑÔØˆr)   c                 ó6   — t        | j                  «       «       y r+   )r   r0   r/   s    r'   r3   zprofile._start_trace]   s   € Ü §¡£Õ.r)   c                 ó<  — | j                   sy | j                  rt        j                  j	                  «        t        «       }t        |«      }t        || j                  rdnd | j                  | j                  ¬«      | _
        | j                  j                  «        y)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__`   sw   € Ø�|Š|ØØ�=Š=Ü�J‰J×"Ñ"Ô$ä*Ó,ˆÜ.¨wÓ7ˆä(ØØ!%§¢‘v°DØ×.Ñ.Ø—‘ô	 
ˆÔð 	×Ñ×(Ñ(Ô*Ør)   c                 óF   — | j                   €yt        | j                   «      S )Nz$<unfinished profiler_legacy.profile>)r   Úreprr/   s    r'   Ú__repr__zprofile.__repr__s   s"   € Ø×ÑÐ'Ø9Ü�D×(Ñ(Ó)Ð)r)   c                 óF   — | j                   €yt        | j                   «      S )Nz,<unfinished profile.profiler_legacy.profile>)r   Ústrr/   s    r'   Ú__str__zprofile.__str__x   s"   € Ø×ÑÐ'ØAÜ�4×'Ñ'Ó(Ð(r)   c                 ó2   — | j                   €t        d«      ‚y )NzProfiler didn't finish running)r   r2   r/   s    r'   Ú_check_finishzprofile._check_finish}   s   € Ø×ÑÐ'ÜÐ?Ó@Ð@ð (r)   Nc           	      ó”   — | j                  «        | j                  €t        d«      ‚| j                  j                  |||||||¬«      S )NúExpected profiling results)Úsort_byÚ	row_limitÚmax_src_column_widthÚmax_name_column_widthÚmax_shapes_column_widthÚheaderÚtop_level_events_only)rH   r   ÚAssertionErrorÚtable)r&   rK   rL   rM   rN   rO   rP   rQ   s           r'   rS   zprofile.table�   s[   € ð 	×ÑÔØ×ÑÐ'Ü Ð!=Ó>Ð>Ø×#Ñ#×)Ñ)ØØØ!5Ø"7Ø$;ØØ"7ð *ó 
ð 	
r)   c                 ó†   — | j                  «        | j                  €t        d«      ‚| j                  j                  |«      S ©NrJ   )rH   r   rR   Úexport_chrome_trace)r&   Úpaths     r'   rV   zprofile.export_chrome_traceš   s=   € Ø×ÑÔØ×ÑÐ'Ü Ð!=Ó>Ð>Ø×#Ñ#×7Ñ7¸Ó=Ð=r)   rW   Úmetricc                 ó¶   — | j                  «        | j                  €t        d«      ‚| j                  st        d«      ‚| j                  j	                  ||«      S )NrJ   z(export_stacks() requires with_stack=True)rH   r   rR   r   Úexport_stacks)r&   rW   rX   s      r'   rZ   zprofile.export_stacks¢   sR   € Ø×ÑÔØ×ÑÐ'Ü Ð!=Ó>Ð>Ø�ŠÜ Ð!KÓLÐLØ×#Ñ#×1Ñ1°$¸Ó?Ð?r)   c                 óˆ   — | j                  «        | j                  €t        d«      ‚| j                  j                  ||«      S rU   )rH   r   rR   Úkey_averages)r&   Úgroup_by_input_shapeÚgroup_by_stack_ns      r'   r\   zprofile.key_averagesª   sA   € Ø×ÑÔØ×ÑÐ'Ü Ð!=Ó>Ð>Ø×#Ñ#×0Ñ0Ð1EÐGWÓXÐXr)   c                 ó„   — | j                  «        | j                  €t        d«      ‚| j                  j                  «       S rU   )rH   r   rR   Útotal_averager/   s    r'   r`   zprofile.total_average²   s;   € Ø×ÑÔØ×ÑÐ'Ü Ð!=Ó>Ð>Ø×#Ñ#×1Ñ1Ó3Ð3r)   c                 ó|   — | j                  «        | j                  €t        d«      ‚| j                  j                  S )z;Return CPU time as the sum of self times across all events.rJ   )rH   r   rR   Úself_cpu_time_totalr/   s    r'   rb   zprofile.self_cpu_time_totalº   s:   € ð 	×ÑÔØ×ÑÐ'Ü Ð!=Ó>Ð>Ø×#Ñ#×7Ñ7Ð7r)   )T)Néd   éK   é7   éP   NF)rb   )Fr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r(   r0   r4   r3   r@   rC   rF   rH   rS   r   rV   rE   rZ   r\   r`   Úpropertyrb   © r)   r'   r   r      sù   „ ñ 2ð ð"3ð ØØØØØô"3òH

òò/òò&*ò
)ò
Að ØØØ Ø "ØØ#ó
ð. —O‘O×+Ñ+€E„Mò>ð #,×"?Ñ"?×"GÑ"GÐÔñ@ #ð @¨só @óYð %×1Ñ1×9Ñ9€LÔò4ð &×3Ñ3×;Ñ;€MÔàñ8ó ñ8r)   c                 ó
	  — d„ }d }g }t         j                  j                  | «      D ]  }|j                  «       }|�Œ|dk(  sŒ|}Œ |�|j	                  «       rt        d«      ‚| D �]  }i }i }i }	t        «       }
d }|D �]æ  } ||«      }t        |j                  «       «      s||
v r|
j                  |«       Œ;|j                  «       dk(  rŽ|�{|j                  «       |j                  «       k(  xrD |j                  «       |j                  «       k(  xr! |j                  «       |j                  «       k(  }|r|
j                  |«       ŒË||	|<   d||<   d||<   �n	|j                  «       dk(  �r&||	vrt        d|› d�«      ‚|	|   }||   }||   }|j                  «       xs! |j                  «       |j                  «       k7  }|j	                  «       }|j                  «       }t        d(i d	|j                  «       “d
|j                  «       “dt!        |j                  «       d¬«      “dt!        |j                  «       d¬«      “d|j                  «       “d|j#                  |«      “d|j#                  |«      “d|j%                  «       “d|j'                  «       “d|j)                  «       D �cg c]  }t+        |«      sŒ|‘Œ c}“d|j-                  «       “d|j/                  «       rdnd “d|“d|“d|“d|“d|j1                  «       “dt2        j4                  “dd“d |“Ž}|sU|j/                  «       rE|j7                  |«      }|dkD  r/|j9                  |j                  «       |j;                  «       |«       |j=                  |«       |	|= ||= ||= nÏ|j                  «       d!k(  r¼t?        |«      }t?        |«      }||k7  rt        d"|› d#|› d$�«      ‚|D ]  }||xx   |jA                  «       z  cc<   Œ |D ]  }||xx   |jC                  «       z  cc<   Œ |dk(  rFt        dtD        d dddg |jA                  «       |jC                  «       d¬%«
      }|j=                  |«       |}�Œé �Œ |jG                  d&„ ¬'«       |S c c}w ))Nc                 óB   — | j                  «       | j                  «       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Ð2Ð2r)   Ú__start_profilez#Expected a valid local start_recordÚpushr   ÚpopzExpected record with key z[ to exist in range_starts. This means that the pop event did not have a corresponding push.Úidrp   ÚnameT)rw   Úwith_wildcardÚ
trace_nameFÚthreadÚstart_usÚend_usÚ
fwd_threadÚinput_shapesÚstackÚscoper7   r   Úcpu_memory_usageÚdevice_memory_usageÚis_asyncÚ	is_remoteÚsequence_nrÚdevice_typeÚ	is_legacyÚflopsÚmemory_alloczBExpected CPU and CUDA memory allocation handles to match, but got z	 CPU and z CUDA)
rv   rw   ry   rz   r{   r|   r   r�   r‚   r‡   c                 ó\   — | j                   j                  | j                   j                   gS r+   )Ú
time_rangeÚstartÚend)Úevts    r'   ú<lambda>z'_parse_legacy_records.<locals>.<lambda>F  s"   €  C§N¡N×$8Ñ$8¸3¿>¹>×;MÑ;MÐ:MÐ#N€ r)   )Úkeyrl   )$Ú	itertoolsÚchainÚfrom_iterablerw   r„   rR   Úsetr	   ÚaddÚkindrp   rƒ   Ú	thread_idrˆ   r   ro   r   Úcpu_elapsed_usÚfwd_thread_idÚshapesr   r
   r€   Úhas_cudar…   r   r%   Úcuda_elapsed_usÚappend_kernelÚdeviceÚappendÚlenr�   Úcuda_memory_usager   Úsort)Úthread_recordsrr   Ústart_recordÚ	functionsrq   rw   Ú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ÚentryÚfeÚdurationÚnum_open_handles_cpuÚnum_open_handles_cudaro   s                             r'   r9   r9   Ã   s	  € ò3ð €LØ€Iô —/‘/×/Ñ/°Ó?ò "ˆØ�{‰{‹}ˆØÑ DÐ,=Ó$=Ø!‰Lð"ð
 Ð˜|×5Ñ5Ô7ÜÐBÓCÐCà,ó j!ÐàÐØÐàˆä›5ÐØˆØ(ó a	!ˆFÙ(¨Ó0ˆJÜ˜FŸK™K›MÔ*¨jÐ<LÑ.LØ ×$Ñ$ ZÔ0Øà�{‰{‹} Ò&ð Ð*à#×(Ñ(Ó*¨f¯k©k«mÑ;ò FØ'×,Ñ,Ó.°&·+±+³-Ñ?òFà'×/Ñ/Ó1°V·^±^Ó5EÑEð ñ
 !Ø(×,Ñ,¨ZÔ8Ø à+1�˜ZÑ(Ø01Ð! *Ñ-Ø12Ð" :Ó.Ø—‘“ %Ó'Ø \Ñ1Ü(Ø3°J°<ð @[ð [óð ð
 % ZÑ0�à#4°ZÑ#@Ð Ø$6°zÑ$BÐ!Ø Ÿ>™>Ó+ÒX°·±Ó0AÀV×EUÑEUÓEWÑ0W�Ø"(×"2Ñ"2Ó"4�Ø#Ÿk™k›m�ä"ò Ø—}‘}”ðà"ŸN™NÔ,ðô '¨E¯J©J«LÈÕMðô  -°%·*±*³,ÈeÕTð	ð
 !Ÿ?™?Ô,ðð *×8Ñ8¸Ô?ðð (×6Ñ6°vÔ>ðð  %×2Ñ2Ô4ðð "'§¡¤ðð ,1¯;©;«=öØ"'Ô<OÐPUÕ<Všóðð  Ÿ+™+œ-ðð */¯©Ô)9™v¸tøðñ &6ðñ  ):ð!ñ" &ð#ñ$ .ð%ð& !&× 1Ñ 1Ô 3ð'ô( !+§¢ð)ñ* #ð+ñ, &ð-�ñ2   E§N¡NÔ$4Ø$×4Ñ4°VÓ<�HØ !’|Ø×(Ñ(¨¯©«°u·|±|³~ÀxÔPØ× Ñ  Ô$Ø  Ð,Ø% jÐ1Ø& zÑ2Ø—‘“ .Ò0Ü'*Ð+<Ó'=Ð$Ü(+Ð,>Ó(?Ð%Ø'Ð+@Ò@Ü(ð#Ø#7Ð"8¸	ÐBWÐAXÐX]ð_óð ð 0ò K�FØ% fÓ-°×1HÑ1HÓ1JÑJÔ-ðKà0ò M�FØ& vÓ.°&×2JÑ2JÓ2LÑLÔ.ðMà'¨1Ò,ä&ØÜ.Ø#'Ø Ø!"Ø Ø Ø)/×)@Ñ)@Ó)BØ,2×,DÑ,DÓ,FØ"&ô�Bð ×$Ñ$ RÔ(Ø ŠKòCa	!ðj!ðd ‡N�NÑN€NÔOØÐùòws   Ê.R Ê?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   rl   r)   r'   ú<module>rº      sa   ðã Û Ý (ã Û ÷õ ÷÷ ð ˆ+€ñ ð+àô÷
_8ð _8óð
_8óDDr)   