code: def test_gather_all_performance_known_same_shape(self):
      ts = torch.full(
          (128, 224, 224, 3),
          DistributedHelper.rank,
          dtype=torch.float32,
      )
      device = DistributedHelper.make_device()
      ts = ts.to(device)
  
      resulting_tensors = [
          torch.empty_like(ts).to(device)
          for _ in range(DistributedHelper.world_size)
      ]
  
      from tqdm import tqdm
  
      n_times = 30
      torch.distributed.all_gather(resulting_tensors, ts)
      start_time = time.time()
      for _ in tqdm(range(n_times)):
          torch.distributed.all_gather(resulting_tensors, ts)
      end_time = time.time()
      print(
          "Time taken by PyTorch all_gather",
          end_time - start_time,
          "avg",
          (end_time - start_time) / n_times,
      )
  
      start_time = time.time()
      out_list = [None for _ in range(DistributedHelper.world_size)]
      torch.distributed.all_gather_object(out_list, ts)
  
      for _ in tqdm(range(n_times)):
          torch.distributed.all_gather_object(out_list, ts)
      end_time = time.time()
      print(
          "Time taken by PyTorch all_gather_object",
          end_time - start_time,
          "avg",
          (end_time - start_time) / n_times,
      )
  
imports: import os
  import random
  import shutil
  import tempfile
  import time
  import unittest
  import numpy
  import torch
  import torch.distributed
  from torch.nn import Module
  from torch.nn.parallel import DistributedDataParallel
  from avalanche.benchmarks.scenarios.deprecated.generators import dataset_benchmark
  from avalanche.benchmarks.utils.classification_dataset import _make_taskaware_tensor_classification_dataset
  from avalanche.distributed import DistributedHelper
  from avalanche.distributed.distributed_helper import RollingSeedContext, BroadcastSeedContext
  from avalanche.models import SimpleMLP, as_multitask
  from avalanche.models.utils import avalanche_model_adaptation
  from avalanche.training.determinism.rng_manager import RNGManager
  from tests.distributed.distributed_test_utils import check_skip_distributed_slow_test, check_skip_distributed_test, suppress_dst_tests_output, common_dst_tests_setup
label_desc: Use image node_id 8 for calling the DistributedHelperTests obj's underlying member method code with example usage: obj.test_gather_all_performance_known_same_shape() without return types