o
    8wÖi7
  ã                   @   sP   d dl mZ d dl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)ÚTensor)Úoverride)Ú
Collective)ÚCollectibleGroupc                   @   s>  e Zd ZdZeedefdd„ƒƒZeedefdd„ƒƒZede	de
d	e
de	fd
d„ƒZede	de
d	e
de	fdd„ƒZede	de
d	e
de	fdd„ƒZedee	 de	d	e
dee	 fdd„ƒZede	de
d	e
dee	 fdd„ƒZede	dee	 de
d	e
de	f
dd„ƒZede	dee	 de
d	e
de	f
dd„ƒZedee	 dee	 de
d	e
dee	 f
dd„ƒZede
d	e
dd fd!d"„ƒZede	de
d	e
de	fd#d$„ƒZede
d	e
dd fd%d&„ƒZeedefd'd(„ƒƒZeedefd)d*„ƒƒZeede
dd fd+d,„ƒƒZeede
defd-d.„ƒƒZeed/edd fd0d1„ƒƒZeed2edefd3d4„ƒƒZ d S )5ÚSingleDeviceCollectivez¹Support for collective operations on a single device (no-op).

    .. warning:: This is an :ref:`experimental <versioning:Experimental API>` feature which is still in development.

    Úreturnc                 C   ó   dS ©Nr   © ©Úselfr   r   úo/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/lightning_fabric/plugins/collectives/single_device.pyÚrank   ó   zSingleDeviceCollective.rankc                 C   r	   )Né   r   r   r   r   r   Ú
world_size   r   z!SingleDeviceCollective.world_sizeÚtensorÚ_Ú__c                 O   ó   |S ©Nr   ©r   r   r   r   r   r   r   Ú	broadcast   ó   z SingleDeviceCollective.broadcastc                 O   r   r   r   r   r   r   r   Ú
all_reduce   r   z!SingleDeviceCollective.all_reducec                 O   r   r   r   r   r   r   r   Úreduce#   r   zSingleDeviceCollective.reduceÚtensor_listc                 K   s   |gS r   r   )r   r   r   r   r   r   r   Ú
all_gather'   ó   z!SingleDeviceCollective.all_gatherc                 O   s   |gS r   r   r   r   r   r   Úgather+   r   zSingleDeviceCollective.gatherÚscatter_listc                 O   ó   |d S r
   r   )r   r   r!   r   r   r   r   r   Úscatter/   s   zSingleDeviceCollective.scatterÚoutputÚ
input_listc                 O   r"   r
   r   )r   r$   r%   r   r   r   r   r   Úreduce_scatter9   s   z%SingleDeviceCollective.reduce_scatterÚoutput_tensor_listÚinput_tensor_listc                 O   s   |S r   r   )r   r'   r(   r   r   r   r   r   Ú
all_to_all=   s   z!SingleDeviceCollective.all_to_allNc                 O   ó   d S r   r   ©r   r   r   r   r   r   ÚsendC   r   zSingleDeviceCollective.sendc                 O   r   r   r   r   r   r   r   ÚrecvG   r   zSingleDeviceCollective.recvc                 O   r*   r   r   r+   r   r   r   ÚbarrierK   r   zSingleDeviceCollective.barrierc                 C   r	   ©NTr   ©Úclsr   r   r   Úis_availableO   r   z#SingleDeviceCollective.is_availablec                 C   r	   r/   r   r0   r   r   r   Úis_initializedT   r   z%SingleDeviceCollective.is_initializedc                 K   r*   r   r   ©r1   r   r   r   r   Ú
init_groupY   r   z!SingleDeviceCollective.init_groupc                 K   s   t ƒ S r   )Úobjectr4   r   r   r   Ú	new_group^   s   z SingleDeviceCollective.new_groupÚgroupc                 C   r*   r   r   )r1   r8   r   r   r   Údestroy_groupc   r   z$SingleDeviceCollective.destroy_groupÚopc                 C   r   r   r   )r1   r:   r   r   r   Ú_convert_to_native_oph   r   z,SingleDeviceCollective._convert_to_native_op)!Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   Úintr   r   r   r   r   r   r   Úlistr   r    r#   r&   r)   r,   r-   r.   ÚclassmethodÚboolr2   r3   r5   r   r7   r9   Ústrr;   r   r   r   r   r   
   sˆ    $ þýüûú	$ÿÿÿÿþr   N)Útypingr   Útorchr   Útyping_extensionsr   Ú/lightning_fabric.plugins.collectives.collectiver   Ú lightning_fabric.utilities.typesr   r   r   r   r   r   Ú<module>   s    