Если у вас есть тензорные массивы разной длины в нескольких рангах графических процессоров, метод all_gather по умолчанию не работает, поскольку требует, чтобы длины были одинаковыми.
Например, если у вас есть:
Код: Выделить всё
if gpu == 0:
q = torch.tensor([1.5, 2.3], device=torch.device(gpu))
else:
q = torch.tensor([5.3], device=torch.device(gpu))
Если мне нужно собрать эти два тензорных массива следующим образом:
Код: Выделить всё
all_q = [torch.tensor([1.5, 2.3], torch.tensor[5.3])
torch.all_gather по умолчанию не работает, поскольку длины, 2, 1 различны.
Подробнее здесь:
https://stackoverflow.com/questions/714 ... -arrays-of