def METHOD_NAME(test_case):
    with RunGraphByVmEnv():
        class DataParallelMul(flow.nn.Module):
            def __init__(self, placement) -> None:
                super().__init__()
                self.w = flow.randn(
                    5, 8, placement=placement, sbp=flow.sbp.broadcast
                )
            def forward(self, x):
                return flow.matmul(x, self.w)
        placement = flow.placement("cuda", [0, 1])
        m = DataParallelMul(placement).eval()
        g = Graph(m)
        input = flow.randn(4, 5, placement=placement, sbp=flow.sbp.split(0))
        graph_output = g(input)
        eager_output = m(input)
        test_case.assertTrue(graph_output.sbp == eager_output.sbp)
        test_case.assertTrue(graph_output.shape == eager_output.shape)
        test_case.assertTrue(graph_output.placement == eager_output.placement)
        test_case.assertTrue(np.allclose(graph_output, eager_output))