ó
    Eñi²/  ã                   ó    • S SK r S SKrS SKJr  S SKrS SKrS SKJrJrJ	r	J
r
Jr  S SKJrJrJrJrJrJr  S/r\" SSS9 " S S5      5       rS	 rg)
é    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                   óŒ  • \ rS rSrSr SSSSSSSS.S jjrS rS rS rS	 r	S
 r
S rS r       SS jr\R                  R                  \l        S r\R                  R                  \l        SS\S\4S jjrSS jr\R$                  R                  \l        S r\R&                  R                  \l        \S 5       rSrg)r   é   z'DEPRECATED: use torch.profiler instead.F)Úuse_cudaÚrecord_shapesÚ
with_flopsÚprofile_memoryÚ
with_stackÚwith_modulesc                óî  • Xl         U R                   (       d  g X l        S U l        SU l        X0l        X@l        U =R                  U R
                  -  sl        XPl        X`l        Xpl        U R                  (       a?  [        R                  R                  5       (       d  [        R                  " SSS9  SU l        U R                  (       a  [        R                  U l        g [        R"                  U l        g )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           Ú[/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/autograd/profiler_legacy.pyÚ__init__Úprofile.__init__$   s¯   € ð %ŒØ�|�|ØØ ŒØ#ˆÔØˆŒØ*ÔØ$ŒØ×Ò˜dŸo™oÑ-ÕØ,ÔØ$ŒØ(Ôà�=�=¤§¡×!8Ñ!8×!:Ñ!:Ü�MŠMØAØòð "ˆDŒMà�=�=Ü!.×!3Ñ!3ˆDÕä!.×!2Ñ!2ˆDÕó    c           
      óè   • [        U R                  U R                  U R                  U R                  U R
                  U R                  [        R                  R                  R                  5       5      $ ©N)r   r%   r   r   r   r   r   r   Ú_CÚ	_profilerÚ_ExperimentalConfig©r'   s    r(   ÚconfigÚprofile.configH   sW   € ÜØ×ÑØ×ÑØ×ÑØ�O‰OØ�O‰OØ×Ñä�H‰H×Ñ×2Ñ2Ó4ó	
ð 		
r+   c                 ó�   • U R                   (       d  g U R                  (       a  [        S5      eSU l        U R                  5         U $ )Nz)Profiler context manager is not reentrantT)r   r   ÚRuntimeErrorÚ_start_tracer1   s    r(   Ú	__enter__Úprofile.__enter__T   s7   € Ø�|�|ØØ�<�<ÜÐJÓKÐKØˆŒØ×ÑÔØˆr+   c                 ó6   • [        U R                  5       5        g r-   )r   r2   r1   s    r(   r6   Úprofile._start_trace]   s   € Ü §¡£Õ.r+   c                 óT  • U R                   (       d  g U R                  (       a  [        R                  R	                  5         [        5       n[        U5      n[        UU R                  (       a  SOS U R                  U R                  S9U l
        U R                  R                  5         g)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__Úprofile.__exit__`   sw   € Ø�|�|ØØ�=�=Ü�J‰J×"Ñ"Ô$ä*Ó,ˆÜ.¨wÓ7ˆä(ØØ!%§§‘v°DØ×.Ñ.Ø—‘ñ	 
ˆÔð 	×Ñ×(Ñ(Ô*Ør+   c                 óH   • U R                   c  g[        U R                   5      $ )Nz$<unfinished profiler_legacy.profile>)r   Úreprr1   s    r(   Ú__repr__Úprofile.__repr__s   s"   € Ø×ÑÑ'Ø9Ü�D×(Ñ(Ó)Ð)r+   c                 óH   • U R                   c  g[        U R                   5      $ )Nz,<unfinished profile.profiler_legacy.profile>)r   Ústrr1   s    r(   Ú__str__Úprofile.__str__x   s"   € Ø×ÑÑ'ØAÜ�4×'Ñ'Ó(Ð(r+   c                 ó4   • U R                   c  [        S5      eg )NzProfiler didn't finish running)r   r5   r1   s    r(   Ú_check_finishÚprofile._check_finish}   s   € Ø×ÑÑ'ÜÐ?Ó@Ð@ð (r+   Nc           
      ó�   • U R                  5         U R                  c  [        S5      eU R                  R                  UUUUUUUS9$ )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)rP   r   ÚAssertionErrorÚtable)r'   rT   rU   rV   rW   rX   rY   rZ   s           r(   r\   Úprofile.table�   s[   € ð 	×ÑÔØ×ÑÑ'Ü Ð!=Ó>Ð>Ø×#Ñ#×)Ñ)ØØØ!5Ø"7Ø$;ØØ"7ð *ð 
ð 	
r+   c                 óˆ   • U R                  5         U R                  c  [        S5      eU R                  R                  U5      $ ©NrS   )rP   r   r[   Úexport_chrome_trace)r'   Úpaths     r(   r`   Úprofile.export_chrome_traceš   s=   € Ø×ÑÔØ×ÑÑ'Ü Ð!=Ó>Ð>Ø×#Ñ#×7Ñ7¸Ó=Ð=r+   ra   Úmetricc                 óÀ   • U R                  5         U R                  c  [        S5      eU R                  (       d  [        S5      eU R                  R	                  X5      $ )NrS   z(export_stacks() requires with_stack=True)rP   r   r[   r   Úexport_stacks)r'   ra   rc   s      r(   re   Úprofile.export_stacks¢   sP   € Ø×ÑÔØ×ÑÑ'Ü Ð!=Ó>Ð>Ø��Ü Ð!KÓLÐLØ×#Ñ#×1Ñ1°$Ó?Ð?r+   c                 óˆ   • U R                  5         U R                  c  [        S5      eU R                  R                  X5      $ r_   )rP   r   r[   Úkey_averages)r'   Úgroup_by_input_shapeÚgroup_by_stack_ns      r(   rh   Úprofile.key_averagesª   s>   € Ø×ÑÔØ×ÑÑ'Ü Ð!=Ó>Ð>Ø×#Ñ#×0Ñ0Ð1EÓXÐXr+   c                 ó†   • U R                  5         U R                  c  [        S5      eU R                  R                  5       $ r_   )rP   r   r[   Útotal_averager1   s    r(   rm   Úprofile.total_average²   s;   € Ø×ÑÔØ×ÑÑ'Ü Ð!=Ó>Ð>Ø×#Ñ#×1Ñ1Ó3Ð3r+   c                 ó~   • U R                  5         U R                  c  [        S5      eU R                  R                  $ )z;Return CPU time as the sum of self times across all events.rS   )rP   r   r[   Úself_cpu_time_totalr1   s    r(   rp   Úprofile.self_cpu_time_totalº   s:   € ð 	×ÑÔØ×ÑÑ'Ü Ð!=Ó>Ð>Ø×#Ñ#×7Ñ7Ð7r+   )
r   r   r   r   r%   r   r   r   r   r   )T)Néd   éK   é7   éP   NF)rp   )Fr   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r)   r2   r7   r6   rE   rI   rM   rP   r\   r   r`   rL   re   rh   rm   Úpropertyrp   Ú__static_attributes__© 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                 ó€	  • S nS n/ n[         R                  R                  U 5       H"  nUR                  5       nUb  M  US:X  d  M   UnM$     Ub  UR	                  5       (       a  [        S5      eU  GH2  n0 n0 n0 n	[        5       n
S nU GH  nU" U5      n[        UR                  5       5      (       d  XÊ;   a  U
R                  U5        MB  UR                  5       S:X  aœ  Ub‹  UR                  5       UR                  5       :H  =(       aI    UR                  5       UR                  5       :H  =(       a!    UR                  5       UR                  5       :H  nU(       a  U
R                  U5        Mä  XIU'   SX|'   SXŒ'   GO!UR                  5       S:X  Ga9  XÉ;  a  [        SU S35      eXœ   nX|   nXŒ   nUR                  5       =(       d!    UR                  5       UR                  5       :g  nUR	                  5       nUR                  5       n[        S(0 S	UR                  5       _S
UR                  5       _S[!        UR                  5       SS9_S[!        UR                  5       SS9_SUR                  5       _SUR#                  U5      _SUR#                  U5      _SUR%                  5       _SUR'                  5       _SUR)                  5        Vs/ s H  n[+        U5      (       d  M  UPM     sn_SUR-                  5       _SUR/                  5       (       a  SOS _SU_SU_SU_SU_SUR1                  5       _S[2        R4                  _SS_S U_6nU(       d[  UR/                  5       (       aF  UR7                  U5      nUS:”  a/  UR9                  UR                  5       UR;                  5       U5        UR=                  U5        Xœ	 X|	 XŒ	 OÓUR                  5       S!:X  a¿  [?        U5      n[?        U5      nUU:w  a  [        S"U S#U S$35      eU H  nUU==   URA                  5       -  ss'   M      U H  nUU==   URC                  5       -  ss'   M      US:X  aC  [        S[D        S SSS/ URA                  5       URC                  5       SS%9
nUR=                  U5        UnGM     GM5     URG                  S& S'9  U$ s  snf ))Nc                 óB   • U R                  5       U R                  5       4$ )zPReturn a tuple for correlating start and end records in `_parse_legacy_records`.)ÚhandleÚnode_id)Úrecords    r(   Ú_get_record_keyÚ._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.Úidr�   ÚnameT)r‰   Úwith_wildcardÚ
trace_nameFÚthreadÚstart_usÚend_usÚ
fwd_threadÚinput_shapesÚstackÚscoper<   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)
rˆ   r‰   r‹   rŒ   r�   rŽ   r‘   r“   r”   r™   c                 ó\   • U R                   R                  U R                   R                  * /$ r-   )Ú
time_rangeÚstartÚend)Úevts    r(   Ú<lambda>Ú'_parse_legacy_records.<locals>.<lambda>F  s    €  C§N¡N×$8Ñ$8¸3¿>¹>×;MÑ;MÐ:MÑ#Nr+   )Úkeyr}   )$Ú	itertoolsÚchainÚfrom_iterabler‰   r–   r[   Úsetr	   ÚaddÚkindr�   r•   Ú	thread_idrš   r   r€   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_recordsrƒ   Ústart_recordÚ	functionsr‚   r‰   Ú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_cudar€   s                             r(   r>   r>   Ã   sâ  € ò3ð €LØ€Iô —/‘/×/Ñ/°Ö?ˆØ�{‰{‹}ˆØÓ DÐ,=Õ$=Ø!ŠLñ @ð
 Ñ˜|×5Ñ5×7Ñ7ÜÐBÓCÐCä,ÐàÐØÐàˆä›5ÐØˆÜ(ˆFÙ(¨Ó0ˆJÜ˜FŸK™K›M×*Ñ*¨jÓ.LØ ×$Ñ$ ZÔ0Ùà�{‰{‹} Ó&ð Ñ*à#×(Ñ(Ó*¨f¯k©k«mÑ;÷ FØ'×,Ñ,Ó.°&·+±+³-Ñ?÷Fà'×/Ñ/Ó1°V·^±^Ó5EÑEð ö
 !Ø(×,Ñ,¨ZÔ8Ù à+1˜ZÑ(Ø01Ð!Ñ-Ø12Ð"Ó.Ø—‘“ %Ô'ØÓ1Ü(Ø3°J°<ð @[ð [óð ð
 %Ñ0�à#4Ñ#@Ð Ø$6Ñ$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¯;©;¬=óÚ+8 %Ô<OÐPU×<VŸ©=òðð  Ÿ+™+œ-ðð */¯©×)9Ñ)9™v¸tøðñ &6ðñ  ):ð!ñ" &ð#ñ$ .ð%ð& !&× 1Ñ 1Ô 3ð'ô( !+§¢ð)ñ* #ð+ñ, &ð-�ö2   E§N¡N×$4Ñ$4Ø$×4Ñ4°VÓ<�HØ !“|Ø×(Ñ(¨¯©«°u·|±|³~ÀxÔPØ× Ñ  Ô$Ø Ð,Ø%Ð1Ø&Ñ2Ø—‘“ .Ó0Ü'*Ð+<Ó'=Ð$Ü(+Ð,>Ó(?Ð%Ø'Ð+@Ó@Ü(ð#Ø#7Ð"8¸	ÐBWÐAXÐX]ð_óð ó 0�FØ% fÓ-°×1HÑ1HÓ1JÑJÕ-ñ 0ã0�FØ& vÓ.°&×2JÑ2JÓ2LÑLÕ.ñ 1à'¨1Ó,ä&ØÜ.Ø#'Ø Ø!"Ø Ø Ø)/×)@Ñ)@Ó)BØ,2×,DÑ,DÓ,FØ"&ñ�Bð ×$Ñ$ RÔ(Ø ‹KôC )ñ -ð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   r>   r}   r+   r(   Ú<module>rÍ      sa   ðã Û Ý (ã Û ÷õ ÷÷ ð ˆ+€ñ ð+àñ÷
_8ð _8óð
_8óDDr+   