code: def test_shape_x_x_dist_local_matmul(ctx):
      e_5_30_13 = [
          torch.rand(5, 9, 13),
          torch.rand(5, 10, 13),
          torch.rand(5, 11, 13),
      ]
      e_5_13_30 = [
          torch.rand(5, 13, 9),
          torch.rand(5, 13, 10),
          torch.rand(5, 13, 11),
      ]
      el_5_13_30 = torch.concat(e_5_13_30, dim=2)
      el_5_30_13 = torch.concat(e_5_30_13, dim=1)
  
      assert torch.matmul(
          make_dist(ctx, e_5_30_13, axis=1), el_5_13_30
      ) == make_dist(
          ctx,
          [torch.matmul(s1, el_5_13_30) for s1 in e_5_30_13],
          axis=1,
      )
      assert torch.allclose(
          torch.matmul(make_dist(ctx, e_5_13_30, axis=2), el_5_30_13),
          torch.matmul(el_5_13_30, el_5_30_13),
      )
      assert torch.rmatmul_f(
          make_dist(ctx, e_5_13_30, axis=2), el_5_30_13
      ) == make_dist(
          ctx,
          [torch.rmatmul_f(s1, el_5_30_13) for s1 in e_5_13_30],
          axis=2,
      )
      assert torch.allclose(
          torch.rmatmul_f(
              make_dist(ctx, e_5_30_13, axis=1), el_5_13_30
          ),
          torch.rmatmul_f(el_5_30_13, el_5_13_30),
      )
  
file_path: FATE/python/fate/test/test_matmul.py
imports: import torch
  from fate.arch.computing.backends.standalone import CSession
  from fate.arch.context import Context
  from fate.arch.federation.backends.standalone import StandaloneFederation
  from fate.arch.tensor import DTensor
  from pytest import fixture
label_desc: Use image node_id 11 for calling a global function with example usage: test_shape_x_x_dist_local_matmul(ctx) without return types