code: def spatial_parallel_bottleneck(
      C, dtype, explicit_nhwc, gt_bottleneck, spatial_parallel_args
  ):
      spatial_bottleneck = SpatialBottleneck(
          C,
          C,
          C,
          use_cudnn=True,
          explicit_nhwc=explicit_nhwc,
          spatial_parallel_args=spatial_parallel_args,
      )
      spatial_bottleneck.to(dtype=dtype, device="cuda")
      with torch.no_grad():
          sp = {}
          for n, p in spatial_bottleneck.named_parameters():
              sp[n] = p
          for n, p in gt_bottleneck.named_parameters():
              sp[n].copy_(p)
          sb = {}
          for n, b in spatial_bottleneck.named_buffers():
              sb[n] = b
          for n, b in gt_bottleneck.named_buffers():
              sb[n].copy_(b)
      return spatial_bottleneck
  
imports: import unittest
  import torch
  from torch.testing._internal import common_utils
  from apex.transformer.testing.distributed_test_base import NcclDistributedTestBase
label_desc: Use image node_id 14 for calling a global function with example usage: spatial_parallel_bottleneck(C, dtype, explicit_nhwc, gt_bottleneck, spatial_parallel_args) and returns: spatial_bottleneck