o
    i{                     @   s*   d dl Z d dlmZ G dd de jZdS )    N)_storec                   @   s   e Zd ZejejfddZejd ddZ	ejd!dd	Z
ejd"d
dZej	d ddZejd#ddZejd#ddZejd#ddZejd#ddZejd"ddZejd"ddZejd#ddZejdd Zdd ZdS )$_Backendc                 C   s6   || _ || _t||| _|dkrt|| _d S d S Nr   )
_n_devicesrankr   TCPStoreProxy_store_proxyTCPStore)self	n_devicesr   hostport r   T/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/cupyx/distributed/_comm.py__init__   s   z_Backend.__init__sumNc                 C      d S Nr   )r
   in_array	out_arrayopstreamr   r   r   
all_reduce      z_Backend.all_reducer   c                 C   r   r   r   )r
   r   r   rootr   r   r   r   r   reduce   r   z_Backend.reducec                 C   r   r   r   )r
   in_out_arrayr   r   r   r   r   	broadcast   r   z_Backend.broadcastc                 C   r   r   r   )r
   r   r   countr   r   r   r   r   reduce_scatter   s   z_Backend.reduce_scatterc                 C   r   r   r   )r
   r   r   r   r   r   r   r   
all_gather!   r   z_Backend.all_gatherc                 C   r   r   r   )r
   arraypeerr   r   r   r   send%   r   z_Backend.sendc                 C   r   r   r   )r
   r   r"   r   r   r   r   recv)   r   z_Backend.recvc                 C   r   r   r   )r
   r   r   r"   r   r   r   r   	send_recv-   r   z_Backend.send_recvc                 C   r   r   r   r
   r   r   r   r   r   r   r   scatter1   r   z_Backend.scatterc                 C   r   r   r   r&   r   r   r   gather5   r   z_Backend.gatherc                 C   r   r   r   )r
   r   r   r   r   r   r   
all_to_all9   r   z_Backend.all_to_allc                 C   r   r   r   r
   r   r   r   barrier=   r   z_Backend.barrierc                 C   s   | j dkr| j  d S d S r   )r   r   stopr*   r   r   r   r,   A   s   
z_Backend.stop)r   N)r   r   N)r   Nr   )__name__
__module____qualname__r   _DEFAULT_HOST_DEFAULT_PORTr   abcabstractmethodr   r   r   r   r    r#   r$   r%   r'   r(   r)   r+   r,   r   r   r   r   r      s:    

r   )r2   cupyx.distributedr   ABCr   r   r   r   r   <module>   s    