a
    þdG  ã                   @   sH   d dl mZmZ d dlmZ d dlmZ d dlmZ G dd„ deƒZ	dS )é    )ÚAnyÚList)ÚTensor)Ú
Collective)ÚCollectibleGroupc                   @   s¢  e Zd Zeedœdd„ƒZeedœdd„ƒZeeeedœdd„Z	eeeedœd	d
„Z
eeeedœdd„Zee eeee dœdd„Zeeeee dœdd„Zeee eeedœdd„Zeee eeedœdd„Zee ee eeee dœdd„Zeeddœdd„Zeeeedœdd „Zeeddœd!d"„Zeedœd#d$„ƒZeedœd%d&„ƒZeedd'œd(d)„ƒZeeed'œd*d+„ƒZeedd,œd-d.„ƒZeeed/œd0d1„ƒZdS )2ÚSingleDeviceCollective)Úreturnc                 C   s   dS ©Nr   © ©Úselfr
   r
   ú{/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/lightning_fabric/plugins/collectives/single_device.pyÚrank
   s    zSingleDeviceCollective.rankc                 C   s   dS )Né   r
   r   r
   r
   r   Ú
world_size   s    z!SingleDeviceCollective.world_size)ÚtensorÚ_Ú__r   c                 O   s   |S ©Nr
   ©r   r   r   r   r
   r
   r   Ú	broadcast   s    z SingleDeviceCollective.broadcastc                 O   s   |S r   r
   r   r
   r
   r   Ú
all_reduce   s    z!SingleDeviceCollective.all_reducec                 O   s   |S r   r
   r   r
   r
   r   Úreduce   s    zSingleDeviceCollective.reduce)Útensor_listr   r   r   c                 K   s   |gS r   r
   )r   r   r   r   r
   r
   r   Ú
all_gather   s    z!SingleDeviceCollective.all_gatherc                 O   s   |gS r   r
   r   r
   r
   r   Úgather   s    zSingleDeviceCollective.gather)r   Úscatter_listr   r   r   c                 O   s   |d S r	   r
   )r   r   r   r   r   r
   r
   r   Úscatter!   s    zSingleDeviceCollective.scatter)ÚoutputÚ
input_listr   r   r   c                 O   s   |d S r	   r
   )r   r   r   r   r   r
   r
   r   Úreduce_scatter*   s    z%SingleDeviceCollective.reduce_scatter)Úoutput_tensor_listÚinput_tensor_listr   r   r   c                 O   s   |S r   r
   )r   r!   r"   r   r   r
   r
   r   Ú
all_to_all-   s    z!SingleDeviceCollective.all_to_allN)r   r   r   c                 O   s   d S r   r
   ©r   r   r   r
   r
   r   Úsend2   s    zSingleDeviceCollective.sendc                 O   s   |S r   r
   r   r
   r
   r   Úrecv5   s    zSingleDeviceCollective.recvc                 O   s   d S r   r
   r$   r
   r
   r   Úbarrier8   s    zSingleDeviceCollective.barrierc                 C   s   dS ©NTr
   ©Úclsr
   r
   r   Úis_available;   s    z#SingleDeviceCollective.is_availablec                 C   s   dS r(   r
   r)   r
   r
   r   Úis_initialized?   s    z%SingleDeviceCollective.is_initialized)r   r   c                 K   s   d S r   r
   ©r*   r   r
   r
   r   Ú
init_groupC   s    z!SingleDeviceCollective.init_groupc                 K   s   t ƒ S r   )Úobjectr-   r
   r
   r   Ú	new_groupG   s    z SingleDeviceCollective.new_group)Úgroupr   c                 C   s   d S r   r
   )r*   r1   r
   r
   r   Údestroy_groupK   s    z$SingleDeviceCollective.destroy_group)Úopr   c                 C   s   |S r   r
   )r*   r3   r
   r
   r   Ú_convert_to_native_opO   s    z,SingleDeviceCollective._convert_to_native_op)Ú__name__Ú
__module__Ú__qualname__ÚpropertyÚintr   r   r   r   r   r   r   r   r   r   r   r    r#   r%   r&   r'   ÚclassmethodÚboolr+   r,   r.   r   r0   r2   Ústrr4   r
   r
   r
   r   r   	   sD   ú	þr   N)
Útypingr   r   Ztorchr   Z/lightning_fabric.plugins.collectives.collectiver   Z lightning_fabric.utilities.typesr   r   r
   r
   r
   r   Ú<module>   s   