# Copyright (c) OpenMMLab. All rights reserved.
import torch.distributed as dist


def dist_reduce_mean(tensor):
    """Obtain the mean of tensor on different GPUs."""
    if not (dist.is_available() and dist.is_initialized()):
        return tensor
    tensor = tensor.clone()
    dist.all_reduce(
        tensor.div_(float(dist.get_world_size())), op=dist.ReduceOp.SUM)
    return tensor
