o
    ÜÜÓhŽ  ã                   @   s  U d dl Z d dlmZmZmZ d dlmZ e  e¡Z	edƒZ
G dd„ dee
 ƒZedƒZded	< ed
ƒZded< edƒZded< edƒZded< edƒZded< edƒZded< edƒZded< edƒZded< edƒZded< edƒZded< deegdf ddfd d!„Zdeegdf ddfd"d#„Zdeeegdf ddfd$d%„Zdeeegdf ddfd&d'„Zdeegdf ddfd(d)„Zdeegdf ddfd*d+„Zdeegdf ddfd,d-„Zdeg df ddfd.d/„Zdeegdf ddfd0d1„Z deegdf ddfd2d3„Z!dS )4é    N)ÚCallableÚGenericÚList)Ú	ParamSpecÚPc                   @   sN   e Zd Zdefdd„Zdeedf ddfdd„Zd	ejd
ej	ddfdd„Z
dS )ÚCallbackRegistryÚnamec                 C   s   || _ g | _d S ©N)r   Úcallback_list)Úselfr   © r   úM/var/www/html/ai/venv/lib/python3.10/site-packages/torch/utils/_cuda_trace.pyÚ__init__   s   
zCallbackRegistry.__init__ÚcbNÚreturnc                 C   s   | j  |¡ d S r	   )r
   Úappend)r   r   r   r   r   Úadd_callback   s   zCallbackRegistry.add_callbackÚargsÚkwargsc                 O   sT   | j D ]$}z	||i |¤Ž W q ty' } zt d| j¡ W Y d }~qd }~ww d S )Nz7Exception in callback for %s registered with CUDA trace)r
   Ú	ExceptionÚloggerÚ	exceptionr   )r   r   r   r   Úer   r   r   Úfire_callbacks   s   
ÿ€ÿýzCallbackRegistry.fire_callbacks)Ú__name__Ú
__module__Ú__qualname__Ústrr   r   r   r   r   r   r   r   r   r   r   r   
   s    r   zCUDA event creationzCallbackRegistry[int]ÚCUDAEventCreationCallbackszCUDA event deletionÚCUDAEventDeletionCallbackszCUDA event recordzCallbackRegistry[int, int]ÚCUDAEventRecordCallbackszCUDA event waitÚCUDAEventWaitCallbackszCUDA memory allocationÚCUDAMemoryAllocationCallbackszCUDA memory deallocationÚCUDAMemoryDeallocationCallbackszCUDA stream creationÚCUDAStreamCreationCallbackszCUDA device synchronizationzCallbackRegistry[[]]Ú"CUDADeviceSynchronizationCallbackszCUDA stream synchronizationÚ"CUDAStreamSynchronizationCallbackszCUDA event synchronizationÚ!CUDAEventSynchronizationCallbacksr   r   c                 C   ó   t  | ¡ d S r	   )r   r   ©r   r   r   r   Ú)register_callback_for_cuda_event_creation<   ó   r*   c                 C   r(   r	   )r   r   r)   r   r   r   Ú)register_callback_for_cuda_event_deletion@   r+   r,   c                 C   r(   r	   )r    r   r)   r   r   r   Ú'register_callback_for_cuda_event_recordD   r+   r-   c                 C   r(   r	   )r!   r   r)   r   r   r   Ú%register_callback_for_cuda_event_waitH   r+   r.   c                 C   r(   r	   )r"   r   r)   r   r   r   Ú,register_callback_for_cuda_memory_allocationL   r+   r/   c                 C   r(   r	   )r#   r   r)   r   r   r   Ú.register_callback_for_cuda_memory_deallocationP   r+   r0   c                 C   r(   r	   )r$   r   r)   r   r   r   Ú*register_callback_for_cuda_stream_creationT   r+   r1   c                 C   r(   r	   )r%   r   r)   r   r   r   Ú1register_callback_for_cuda_device_synchronizationX   r+   r2   c                 C   r(   r	   )r&   r   r)   r   r   r   Ú1register_callback_for_cuda_stream_synchronization\   s   r3   c                 C   r(   r	   )r'   r   r)   r   r   r   Ú0register_callback_for_cuda_event_synchronizationb   r+   r4   )"ÚloggingÚtypingr   r   r   Útyping_extensionsr   Ú	getLoggerr   r   r   r   r   Ú__annotations__r   r    r!   r"   r#   r$   r%   r&   r'   Úintr*   r,   r-   r.   r/   r0   r1   r2   r3   r4   r   r   r   r   Ú<module>   sd   
 
ÿÿÿÿÿÿÿÿÿÿÿ
þ 