o
    Õ0 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   )Z
_n_devicesÚrankr   ZTCPStoreProxyZ_store_proxyZTCPStore)ÚselfZ	n_devicesr   ÚhostÚport© r	   úc/home/app/PaddleOCR-VL-test/.venv_paddleocr/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   Z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   Z_DEFAULT_HOSTZ_DEFAULT_PORTr   ÚabcÚabstractmethodr   r   r   r   r   r   r   r   r!   r"   r#   r%   r&   r	   r	   r	   r
   r      s:    
ÿÿ
r   )r*   Zcupyx.distributedr   ÚABCr   r	   r	   r	   r
   Ú<module>   s    