code: def _all_to_all_single_meta(
      input, output_split_sizes, input_split_sizes, *args, **kwargs
  ):
      if output_split_sizes is None:
          return input.new_empty(input.size())
      else:
          for s in output_split_sizes:
              torch._check_is_size(s)
          out_size = list(input.size())
          out_size[0] = sum(output_split_sizes)
          return input.new_empty(out_size)
  
imports: import sys
  import warnings
  from typing import cast, List, Optional, Tuple, TYPE_CHECKING, Union
  import torch
  import torch.distributed
  import torch.distributed.distributed_c10d
  from torch._custom_ops import impl_abstract
  from torch.distributed.device_mesh import DeviceMesh
  from torch.fx.experimental.proxy_tensor import get_innermost_proxy_mode
  from .None import _functional_collectives_impl
  from ._functional_collectives_impl import _register_tensor_wrapper
  from torch.distributed.distributed_c10d import all_gather_into_tensor, all_reduce, reduce_scatter_tensor
label_desc: Use image node_id 25 for calling a global function with example usage: _all_to_all_single_meta(input, output_split_sizes, input_split_sizes) and returns: input, input