o
    XÛ·iŸ  ã                   @  s6   d dl mZ d dlZd dlmZ G dd„ dejƒZdS )é    )ÚannotationsN)Ú_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   úM/home/ubuntu/vllm_env/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   Úscatter3   r   z_Backend.scatterc                 C  r   r   r   r'   r   r   r   Úgather7   r   z_Backend.gatherc                 C  r   r   r   )r   r   r   r   r   r   r   Ú
all_to_all;   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-   C   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   )Ú
__future__r   r3   Úcupyx.distributedr   ÚABCr   r   r   r   r   Ú<module>   s    