class_docstr: Gather tensors from all process, supporting backward propagation.
class_docstr_tok: ["Gather","tensors","from","all","process",",","supporting","backward","propagation","."]
code: def forward(ctx, input):
      ctx.save_for_backward(input)
      output = [
          torch.zeros_like(input) for _ in range(dist.get_world_size())
      ]
      dist.all_gather(output, input)
      return tuple(output)
  
imports: import functools
  import logging
  import pickle
  import torch
  import torch.distributed
  from pytorchvideo.layers.distributed import cat_all_gather, get_local_process_group, get_local_rank, get_local_size, get_world_size, init_distributed_training
label_desc: Use image node_id 1 for calling the GatherLayer obj's underlying member method code with example usage: obj.forward(ctx, input) and returns: tuple