o
    Ne2                     @   sP   d dl Z ddlmZ ddlmZ dadd Zdd Zd	d
 Zdd Z	dd Z
dS )    N   )
collective)	Parameterc                   C   s   t d uottdddkS )NZPADDLE_TRAINERS_NUM1   )__parallel_ctx__clz__intosgetenv r   r   TD:\Projects\ConvertPro\env\Lib\site-packages\paddle/fluid/dygraph/parallel_helper.py_is_data_parallel_mode   s
   

r   c                   C   s   t d uS )Nr   r   r   r   r   _is_parallel_ctx_initialized   s   r   c                 C   s   t d u sJ d| a d S )Nz-ParallelContext can only be initialized once.r   )Zccl_parallel_contextr   r   r   _set_parallel_ctx    s   
r   c                   C   s   t d usJ dt   d S )Nz&ParallelContext should be initialized.)r   initr   r   r   r   _init_parallel_ctx'   s   
r   c                 C   s6   | D ]}|j rqt|tr|jrtj|ddd qd S )Nr   T)Z	sync_mode)Zis_distributed
isinstancer   Z	trainabler   Z
_broadcast)
parametersparamr   r   r   _broadcast_parameters.   s   r   )r	   Zlayersr   Z	frameworkr   r   r   r   r   r   r   r   r   r   r   <module>   s   