class_docstr: Run correctness checks in multi-proc runner, mark with minimum # GPUs to run under
docstr: Testing if broadcast works correctly when using inductor
docstr_tok: ["Testing","if","broadcast","works","correctly","when","using","inductor"]
code: def test_broadcast_inductor(self):
      """
      Testing if broadcast works correctly when using inductor
      """
  
      def example(tensor, src, *, tag, ranks, group_size):
          res = torch.ops.c10d_functional.broadcast(
              tensor, src, tag, ranks, group_size
          )
          res = torch.ops.c10d_functional.wait_tensor(res)
          return res
  
      def compile(func, example_inputs):
          graph = make_fx(func)(*example_inputs)
          return inductor_compile_fx(graph, example_inputs)
  
      with _dynamo_dist_per_rank_init(self.rank, self.world_size):
          example = functools.partial(
              example,
              **self.get_world_trs(),
          )
          t = torch.randn(4, 4, device="cuda")
          inputs = (
              t if self.rank == 0 else torch.zeros(4, 4, device="cuda"),
              0,
          )
          eager_out = example(*inputs)
          self.assertTrue(same(t, eager_out))
  
          compiled_func = compile(example, inputs)
          compiled_out = compiled_func(*inputs)
          self.assertTrue(same(eager_out, compiled_out))
  
imports: import functools
  import unittest
  from unittest.mock import patch
  import torch
  from torch._C import FileCheck
  import torch.distributed._functional_collectives
  import torch._dynamo
  import torch._dynamo.test_case
  from torch._dynamo.utils import same
  from torch._dynamo.testing import CompileCounter
  from torch.distributed.distributed_c10d import GroupMember
  from torch.fx.experimental.proxy_tensor import make_fx
  from torch.testing._internal.common_distributed import DynamoDistributedSingleProcTestCase, DynamoDistributedMultiProcTestCase, _dynamo_dist_per_rank_init, requires_nccl, skip_if_lt_x_gpu
  from torch._inductor.compile_fx import compile_fx
  from torch.utils._triton import has_triton
  from torch._inductor.utils import run_and_get_triton_code
  import torch._dynamo.logging
label_desc: Use image node_id 3 for calling the TestCollectivesMultiProc obj's underlying member method code with example usage: obj.test_broadcast_inductor() and returns: res, inductor_compile_fx