code: def forward(ctx, x, pg, scatter_strides, gather_strides):
      ctx.pg = pg
      ctx.scatter_strides = scatter_strides
      ctx.gather_strides = gather_strides
      return _all_to_all_for_tablewise(
          x, pg, scatter_strides, gather_strides, forward=True
      )
  
imports: from typing import List, Optional, Union
  import torch
  import torch.distributed
  from colossalai.legacy.global_variables import tensor_parallel_env
  from colossalai.legacy.nn.layer.utils import divide
  from colossalai.legacy.tensor import ColoTensorSpec, ProcessGroup
  from colossalai.tensor import ColoTensor
label_desc: Use image node_id 1 for calling the _DualAllToAllForTablewise obj's underlying member method code with example usage: obj.forward(ctx, x, pg, scatter_strides, gather_strides) and returns: _all_to_all_for_tablewise