@SimonW I ran these lines as you suggested:
x = torch.randn(3).cuda()
ys = torch.cuda.comm.broadcast(x, [0, 1])  # assuming you have >= 2 GPUs
print(x.storage().data_ptr())
print(ys[0].storage().data_ptr())

And had similar output, indicating that a copy isn’t happening during the broadcast. Is this a problem?