
    /j                        U d dl Z d dlZd dlZd dlZd dlmZ d dlZeej        z  Z	 e j
        e          ZdefdZ e            r$ej                                        s ed          ej        j        Zej        j        Zej        j        Zej        j        Zej        j        Z e            rd 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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z7 d Z8i Z9e:eej;        f         e<d<   dd
edefdZ=ej>        dk    rd dlm?Z? ddl@mAZAmBZB ddlCT ddlCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZL ddlMmNZN ddlOmPZPmQZQmOZO  e3             dS  G d d          ZReRejS        d         _0        dS )    N)	timedeltareturnc                  6    t          t          j        d          S )a  
    Return ``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     _/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/torch/distributed/__init__.pyis_availabler      s     58\***r   z&Failed to initialize torch.distributed)_broadcast_coalesced"_compute_bucket_assignment_by_size_ControlCollectives_DEFAULT_FIRST_BUCKET_BYTES_make_nccl_premul_sum_register_builtin_comm_hook_register_comm_hook_StoreCollectives_test_python_store_verify_params_across_processesBackendBuiltinCommHookType
DebugLevel	FileStoreget_debug_level
GradBucketLoggerPrefixStoreProcessGroupReducerset_debug_levelset_debug_level_from_envStoreTCPStoreWorkc                  J    ddl  G fddj                  }  |             S )z
        Supports using PDB from inside a multiprocessing child process.

        Usage:
        _make_distributed_pdb().set_trace()
        r   Nc                       e Zd Z fdZdS )._make_distributed_pdb.<locals>._DistributedPdbc                     t           j        }	 t          d          5 t           _         j        j        | g|R i | d d d            n# 1 swxY w Y   |t           _        d S # |t           _        w xY w)Nz
/dev/stdin)sysstdinopenPdbinteraction)selfargskwargs_stdinpdbs       r   r/   z:_make_distributed_pdb.<locals>._DistributedPdb.interactionR   s    'l++ Csy++DB4BBB6BBBC C C C C C C C C C C C C C C !'CIIICI&&&&s-   A$ !AA$ AA$ AA$ $A2N)__name__
__module____qualname__r/   )r4   s   r   _DistributedPdbr)   Q   s.        ' ' ' ' ' ' 'r   r8   )r4   r.   )r8   r4   s    @r   _make_distributed_pdbr9   F   sT     	


	' 	' 	' 	' 	' 	' 	'cg 	' 	' 	'    r   _breakpoint_cache  rankskipc                    |dk    rxt          t          t          j                                        }t                              |d          dz   }|t          |<   ||k    rt                              d|           dS |Lt          j	        j
        j        D ]5}t          j	        j
                            t          |          |           6t                      | k    r;t                      }|                    d|  d           |                                 t          j                                        }t          j                                        }t          j                            d           	 t-                       t          j                            |           ~dS # t          j                            |           ~w xY w)	aD  
        Set a breakpoint, but only on a single rank.  All other ranks will wait for you to be
        done with the breakpoint before continuing.

        Args:
            rank (int): Which rank to break on.  Default: ``0``
            skip (int): Skip the first ``skip`` calls to this breakpoint. Default: ``0``.
        r      zSkip the breakpoint, counter=%dN)secondszS
!!! ATTENTION !!!

Type 'up' to get to the frame that called dist.breakpoint(rank=z)
F)hashstr	traceback
format_excr:   getlogwarningr   distributeddistributed_c10d_pg_map_set_pg_timeoutr   get_rankr9   message	set_tracer	   _meta_in_tls_dispatch_include_DisableTorchDispatch!_set_meta_in_tls_dispatch_includebarrier)	r<   r=   	timeout_skeycountergroupr4   meta_in_tlsguards	            r   
breakpointrY   ^   s    !88s9/112233C'++C33a7G%,c"$=wGGG  *;C  !2BBi000%    ::'))CKK\RV\ \ \   MMOOO h<<>>..00225999	IIIH66{CCC H66{CCCIIIIs   6F& &"Gwin32)	HashStorer?   )
DeviceMeshinit_device_mesh)*)	_all_gather_base_coalescing_manager_CoalescingManager_create_process_group_wrapper_get_process_group_name_rank_not_in_group_reduce_scatter_base_time_estimatorget_node_local_rank)_remote_device)_create_store_from_optionsregister_rendezvous_handler
rendezvousc                       e Zd ZdS )_ProcessGroupStubN)r5   r6   r7   r
   r   r   rm   rm      s        r   rm   ztorch.distributed)r   r   r;   )Tloggingr+   rC   typingdatetimer   r   intSymIntRankType	getLoggerr5   rF   boolr   r	   r   RuntimeError
_DistError	DistError_DistBackendErrorDistBackendError_DistNetworkErrorDistNetworkError_DistStoreErrorDistStoreError_DistQueueEmptyErrorQueueEmptyErrortorch._C._distributed_c10dr   r   r   r   r   r   r   r   r   r   r   _Backendr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   _Workr9   r:   dictAny__annotations__rY   platformr[   device_meshr\   r]   rI   r_   r`   ra   rb   rc   rd   re   rf   rg   remote_devicerh   rk   ri   rj   rm   modulesr
   r   r   <module>r      s    



              g!!+d + + + + <>> A%(--// A
,?
@
@@ H	8- 8- )(/<>> FF                                                     8! ! !, 02tCO,111( ( ( ( ( ( (T |w88888899999999
 $###
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 .-----                  5FCK#$111r   