o
    iq                     @   s&  U d dl Z d dlZd dlmZ d dlmZmZ d dlmZ d dl	Z	d dl
mZ d dlmZ d dlmZ g Zee ed< dZefd	ed
ejfddZefd	ed
eejef fddZe ad
eeef fddZedZedZdeeef d
eeef fddZ deeef d
eeef fddZ!dS )    N)Callable)AnyTypeVar)	ParamSpec)_log_handlers)_WaitCounter__all__defaultdestinationreturnc                 C   sP   t | \}}td| }|tj td}|| d|_|| |S )Nzc10d-za%(asctime)s %(filename)s:%(lineno)s %(levelname)s p:%(processName)s t:%(threadName)s: %(message)sF)	_get_logging_handlerlogging	getLoggersetLevelDEBUG	FormattersetFormatter	propagate
addHandler)r
   logging_handlerlog_handler_namelogger	formatter r   _/sda-disk/www/egybert/egybert_env/lib/python3.10/site-packages/torch/distributed/c10d_logger.py_get_or_create_logger   s   

r   c                 C   s$   t |  }t|j d|  }||fS )N-)r   type__name__)r
   log_handlerr   r   r   r   r   (   s   r   c              	   O   s   t  rL|dp|d}|  t |d t | t   t | t   t | d}|d dkrJtjj	
 }ddd	 |D |d
< |S d|  i}|S )Ngroupprocess_grouppg)	func_namepg_namebackend
world_size
group_sizeglobal_rank
local_rankr%   nccl.c                 s   s    | ]}t |V  qd S )N)str).0vr   r   r   	<genexpr>C   s    z _get_msg_dict.<locals>.<genexpr>nccl_versionr#   )distis_initializedget_get_process_group_nameget_backendget_world_sizeget_ranktorchcudar*   versionjoin)r#   argskwargsr    msg_dictr0   r   r   r   _get_msg_dict5   s"   


	r?   _T_Pfuncc                    ,   t  dtjdtjdtf fdd}|S )Nr<   r=   r   c               
      sX   z | i |W S  t y+ } zt jg| R i |}| |d< t|  d }~ww )Nerror)	Exceptionr?   r   _c10d_loggerdebug)r<   r=   rD   r>   rB   r   r   wrapperP   s   

z"_exception_logger.<locals>.wrapper	functoolswrapsrA   r<   r=   r@   rB   rI   r   rH   r   _exception_loggerO   s    	rN   c                    rC   )Nr<   r=   r   c                     sH   t d j    | i |}W d    |S 1 sw   Y  |S )Nzpytorch.wait_counter.c10d.)r   r   guard)r<   r=   func_returnrH   r   r   rI   ^   s   
z_time_logger.<locals>.wrapperrJ   rM   r   rH   r   _time_logger]   s    rQ   )"rK   r   collections.abcr   typingr   r   typing_extensionsr   r8   torch.distributeddistributedr1   "torch.distributed.logging_handlersr   torch.monitorr   r   listr,   __annotations___DEFAULT_DESTINATIONLoggerr   tupleHandlerr   rF   dictr?   r@   rA   rN   rQ   r   r   r   r   <module>   s0   
	

"&