code: def test_batch_linear_post_grad_fusion(self):
      pt1_module = TestBMMFusionModule().cuda()
      inputs = []
      for _ in range(10):
          inputs.append(torch.randn(10, 10).cuda())
      eager_output = pt1_module(inputs)
      pt2_module = torch.compile(pt1_module)
      pt2_output = pt2_module(inputs)
      self.assertTrue(torch.allclose(eager_output, pt2_output))
      self.assertEqual(
          counters["inductor"]["batch_fusion"],
          2,
      )
  
imports: import functools
  import unittest
  import torch
  import torch._inductor
  from torch._dynamo.test_case import run_tests, TestCase
  from torch._dynamo.utils import counters
  from torch.testing._internal.inductor_utils import HAS_CUDA
label_desc: Use image node_id 1 for calling the TestPostGradBatchLinearFusion obj's underlying member method code with example usage: obj.test_batch_linear_post_grad_fusion() without return types