U
    Ç9%eŽ  ã                   @   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< eegdf ddœdd „Zeegdf ddœd!d"„Zeeegdf ddœd#d$„Zeeegdf ddœd%d&„Zeegdf ddœd'd(„Zeegdf ddœd)d*„Zeegdf ddœd+d,„Zeg df ddœd-d.„Zeegdf ddœd/d0„Z eegdf ddœd1d2„Z!dS )3é    N)ÚCallableÚGenericÚList)Ú	ParamSpecÚPc                   @   sH   e Zd Zedœdd„Zeedf ddœdd„Zejej	ddœd	d
„Z
dS )ÚCallbackRegistry)Únamec                 C   s   || _ g | _d S ©N)r   Úcallback_list)Úselfr   © r   úV/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/torch/utils/_cuda_trace.pyÚ__init__   s    zCallbackRegistry.__init__N©ÚcbÚreturnc                 C   s   | j  |¡ d S r	   )r
   Úappend)r   r   r   r   r   Úadd_callback   s    zCallbackRegistry.add_callback)ÚargsÚkwargsr   c                 O   sP   | j D ]D}z|||Ž W q tk
rH } zt d| j¡ W 5 d }~X Y qX q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   c                 C   s   t  | ¡ d S r	   )r   r   ©r   r   r   r   Ú)register_callback_for_cuda_event_creation<   s    r*   c                 C   s   t  | ¡ d S r	   )r    r   r)   r   r   r   Ú)register_callback_for_cuda_event_deletion@   s    r+   c                 C   s   t  | ¡ d S r	   )r!   r   r)   r   r   r   Ú'register_callback_for_cuda_event_recordD   s    r,   c                 C   s   t  | ¡ d S r	   )r"   r   r)   r   r   r   Ú%register_callback_for_cuda_event_waitH   s    r-   c                 C   s   t  | ¡ d S r	   )r#   r   r)   r   r   r   Ú,register_callback_for_cuda_memory_allocationL   s    r.   c                 C   s   t  | ¡ d S r	   )r$   r   r)   r   r   r   Ú.register_callback_for_cuda_memory_deallocationP   s    r/   c                 C   s   t  | ¡ d S r	   )r%   r   r)   r   r   r   Ú*register_callback_for_cuda_stream_creationT   s    r0   c                 C   s   t  | ¡ d S r	   )r&   r   r)   r   r   r   Ú1register_callback_for_cuda_device_synchronizationX   s    r1   c                 C   s   t  | ¡ d S r	   )r'   r   r)   r   r   r   Ú1register_callback_for_cuda_stream_synchronization\   s    r2   c                 C   s   t  | ¡ d S r	   )r(   r   r)   r   r   r   Ú0register_callback_for_cuda_event_synchronizationb   s    r3   )"ÚloggingÚtypingr   r   r   Ztyping_extensionsr   Ú	getLoggerr   r   r   r   r   Ú__annotations__r    r!   r"   r#   r$   r%   r&   r'   r(   Úintr*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r   r   r   r   Ú<module>   s`    
ÿÿÿÿÿÿÿÿÿÿþ