Ë
    ÿÍ:j¼  ã                   ój   — d dl Z d dlmZ d dlmZ d dlmZ  e j                  e«      Z	 G d„ de«      Z
y)é    N)Úoverride)Ú_XLA_AVAILABLE)ÚProfilerc                   ó~   ‡ — e Zd Zh d£Zh d£Zddeddfˆ fd„Zededdfd„«       Z	ededdfd	„«       Z
dedefd
„Zˆ xZS )ÚXLAProfiler>   Ú	test_stepÚpredict_stepÚvalidation_step>   Úbackwardr   r	   Útraining_stepr
   ÚportÚreturnNc                 óœ   •— t         st        t        t         «      «      ‚t        ‰| �  dd¬«       || _        i | _        i | _        d| _        y)a+  XLA Profiler will help you debug and optimize training workload performance for your models using Cloud TPU
        performance tools.

        Args:
            port: the port to start the profiler server on. An exception is
                raised if the provided port is invalid or busy.

        N)ÚdirpathÚfilenameF)	r   ÚModuleNotFoundErrorÚstrÚsuperÚ__init__r   Ú_recording_mapÚ_step_recoding_mapÚ_start_trace)Úselfr   Ú	__class__s     €út/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/pytorch_lightning/profilers/xla.pyr   zXLAProfiler.__init__"   sI   ø€ õ Ü%¤c¬.Ó&9Ó:Ð:Ü‰Ñ °ÐÔ5ØˆŒ	Ø$&ˆÔØ(*ˆÔØ"'ˆÕó    Úaction_namec                 ó¨  — dd l mc m} |j                  d«      d   | j                  v r©| j
                  s'|j                  | j                  «      | _        d| _        |j                  d«      d   | j                  v r%| j                  |«      }|j                  ||¬«      }n|j                  |«      }|j                  «        || j                  |<   y y )Nr   ú.éÿÿÿÿT)Ústep_num)Útorch_xla.debug.profilerÚdebugÚprofilerÚsplitÚRECORD_FUNCTIONSr   Ústart_serverr   ÚserverÚSTEP_FUNCTIONSÚ_get_step_numÚ	StepTraceÚTraceÚ	__enter__r   )r   r   ÚxpÚstepÚ	recordings        r   ÚstartzXLAProfiler.start3   s¼   € ç-Ð-ð ×Ñ˜SÓ! "Ñ%¨×)>Ñ)>Ñ>Ø×$Ò$Ø Ÿo™o¨d¯i©iÓ8�”Ø$(�Ô!à× Ñ  Ó% bÑ)¨T×-@Ñ-@Ñ@Ø×)Ñ)¨+Ó6�ØŸL™L¨¸t˜LÓD‘	àŸH™H [Ó1�	Ø×ÑÔ!Ø/8ˆD×Ñ Ò,ð ?r   c                 ó|   — || j                   v r.| j                   |   j                  d d d «       | j                   |= y y )N)r   Ú__exit__©r   r   s     r   ÚstopzXLAProfiler.stopF   s@   € à˜$×-Ñ-Ñ-Ø×Ñ Ñ,×5Ñ5°d¸DÀ$ÔGØ×#Ñ# KÑ0ð .r   c                 óŠ   — || j                   vrd| j                   |<   n| j                   |xx   dz  cc<   | j                   |   S )Né   )r   r4   s     r   r*   zXLAProfiler._get_step_numL   sG   € Ø˜d×5Ñ5Ñ5Ø34ˆD×#Ñ# KÒ0à×#Ñ# KÓ0°AÑ5Ó0Ø×&Ñ& {Ñ3Ð3r   )i4#  )Ú__name__Ú
__module__Ú__qualname__r)   r&   Úintr   r   r   r1   r5   r*   Ú__classcell__)r   s   @r   r   r      sz   ø„ ÚE€NòÐñ(˜Sð (¨Dõ (ð" ð9 ð 9¨ò 9ó ð9ð$ ð1 ð 1¨ò 1ó ð1ð
4¨ð 4°÷ 4r   r   )ÚloggingÚtyping_extensionsr   Ú!lightning_fabric.accelerators.xlar   Ú$pytorch_lightning.profilers.profilerr   Ú	getLoggerr8   Úlogr   © r   r   ú<module>rD      s1   ðó å &å <Ý 9à€g×Ñ˜Ó!€ô94�(õ 94r   