code: def test_bottleneck_without_peer_memory(self) -> None:
      explicit_nhwc: bool = True
      dtype: torch.dtype = torch.float16
      N, C, H, W = 1, 64, 200, 336
      Hs = ((H + 8 * self.world_size - 1) // (8 * self.world_size)) * 8
      H = Hs * self.world_size
  
      gt_bottleneck = ground_truth_bottleneck(C, dtype, explicit_nhwc)
      gt = ground_truth(N, C, H, W, dtype, 1, gt_bottleneck)
  
      spatial_bottleneck = spatial_parallel_bottleneck(
          C, dtype, explicit_nhwc, gt_bottleneck, None
      )
      bt = apply_to_different_bottleneck(gt, spatial_bottleneck)
      self.assertEqual(gt, bt, **self.fp16_tolerance)
  
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 2 for calling the TestBottleneck obj's underlying member method code with example usage: obj.test_bottleneck_without_peer_memory() without return types