o
    Ti                     @   s`   d dl Z d dlZd dlmZ dd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd ZdS )    Nget_caller_funcc                  C   4   t jd} | d u rt jd} | d u rd} t| S )N
LOCAL_RANKOMPI_COMM_WORLD_LOCAL_RANKr   osenvirongetintrank r   H/home/ubuntu/.local/lib/python3.10/site-packages/deepspeed/comm/utils.pyget_local_rank_from_launcher      r   c                  C   r   )NRANKOMPI_COMM_WORLD_RANKr   r   r   r   r   r   get_world_rank_from_launcher   r   r   c                  C   sV   t jd} t jd}| d u rt jd} | d u rd} |dkr'td|   t| S )N
WORLD_SIZEr   OMPI_COMM_WORLD_SIZE   r   zset world size to )r   r	   r
   printr   )sizer   r   r   r   get_world_size_from_launcher)   s   r   c                 C   s   t | }dd |j D S )Nc                 S   s&   i | ]\}}|j tjjur||j qS r   )defaultinspect	Parameterempty).0kvr   r   r   
<dictcomp>=   s   & z$get_default_args.<locals>.<dictcomp>)r   	signature
parametersitems)funcr#   r   r   r   get_default_args;   s   
r'   c                 C   s`   t | j}d }d|v rd}nd|v rd}nd|v rd}nd|v r#d}|d u r)dS t||S )Ntensortensors
input_listinput_tensor_list)r   r#   r$   listindex)r&   
sig_paramsargr   r   r   get_tensor_positionA   s   r1   c                 C   sf   t | }|| d }d|v r|d }|S d|v r|d }|S d|v r)|d }|S d|v r1|d }|S )Nr(   r)   r*   r+   )r'   update)r&   kwargs	func_argsr0   r   r   r   get_tensor_kwargV   s   
r5   c                 O   s   d}d }t |dkrt| }|dkr|t|  }|d u r't |dkr't| |}|d u r-dS t|tu r<tdd |D S | |  S )Nr,   r   c                 s   s     | ]}|  |  V  qd S )N)element_sizenelement)r   xr   r   r   	<genexpr>|   s    z)get_msg_size_from_args.<locals>.<genexpr>)lenr1   r5   typer-   sumr6   r7   )r&   argsr3   tensor_arg_position
tensor_argr   r   r   get_msg_size_from_argsf   s   
r@   c                 C   s"   |r| d d t   d S | d S )Nlog_namez | [Caller Func: ]r   )r4   debugr   r   r   get_debug_log_name   s   rD   )r   r   deepspeed.utilsr   r   r   r   r'   r1   r5   r@   rD   r   r   r   r   <module>   s   