U
    d                     @   s  d dl Z d dlZd dlmZ d dlZedddZe rJej sJe	de r
d dl
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z  ej!dkrd d	l
m"Z"m#Z# d
dl$T d
dl$m%Z%m&Z&m'Z'm(Z(m)Z) d
dl*m+Z+ d
dl,m-Z- e   dS )    N)Enum)returnc                   C   s   t tjdS )a  
    Returns ``True`` if the distributed package is available. Otherwise,
    ``torch.distributed`` does not expose any other APIs. Currently,
    ``torch.distributed`` is available on Linux, MacOS and Windows. Set
    ``USE_DISTRIBUTED=1`` to enable it when building PyTorch from source.
    Currently, the default value is ``USE_DISTRIBUTED=1`` for Linux and Windows,
    ``USE_DISTRIBUTED=0`` for MacOS.
    
_c10d_init)hasattrtorch_C r   r   >/tmp/pip-unpacked-wheel-ua33x9lu/torch/distributed/__init__.pyis_available   s    	r
   z&Failed to initialize torch.distributed)Store	FileStoreTCPStoreProcessGroupPrefixStoreReducerLoggerBuiltinCommHookType
GradBucketWork_DEFAULT_FIRST_BUCKET_BYTES_register_comm_hook_register_builtin_comm_hook_broadcast_coalesced"_compute_bucket_assignment_by_size_verify_params_across_processes_test_python_store
DebugLevelget_debug_levelset_debug_levelset_debug_level_from_envwin32)	HashStore_round_robin_process_groups   )*)_backend_all_gather_base_reduce_scatter_base_create_process_group_wrapper_rank_not_in_group)_create_store_from_options)_remote_device).ossysenumr   r   boolr
   r   r   RuntimeErrorZtorch._C._distributed_c10dr   r   r   r   r   r   r   r   r   r   Z_Workr   r   r   r   r   r   r   r   r   r   r   platformr!   r"   Zdistributed_c10dr%   r&   r'   r(   r)   Z
rendezvousr*   Zremote_devicer+   r   r   r   r	   <module>   s   \
