o
    
j                     @   s(   d dl Z d dlmZ dd Zdd ZdS )    Nc                 C   s&   |   }tj|tjjd || }|S )N)op)clonedist
all_reduce	reduce_opSUM)tensornum_gpusrt r   G/home/kuhnn/.local/lib/python3.10/site-packages/TTS/utils/distribute.pyreduce_tensor   s   r   c                 C   s@   t j s	J dt j| t j   tj|||| |d d S )NzDistributed mode requires CUDA.)init_method
world_sizerank
group_name)torchcudais_available
set_devicedevice_countr   init_process_group)r   r	   r   dist_backenddist_urlr   r   r   init_distributed   s   r   )r   torch.distributeddistributedr   r   r   r   r   r   r   <module>   s   