code: def _test_matmul_shard_axis(self, shard_x, shard_w, device):
      X = Tensor.kaiming_uniform(N, N).realize()
      W = Tensor.kaiming_uniform(N, N).realize()
      Xs = X.shard(device, shard_x)
      Ws = W.shard(device, shard_w)
      O = Xs @ Ws
      np.testing.assert_allclose(
          X.numpy() @ W.numpy(), O.to(Device.DEFAULT).numpy(), atol=1e-5
      )
  
imports: import functools
  import unittest
  from tinygrad import Tensor, Device, nn, GlobalCounters
  from tinygrad.device import _BufferCopy
  from tinygrad.helpers import CI
  from tinygrad.jit import TinyJit
  from tinygrad.nn.state import get_parameters
  import numpy
label_desc: Use image node_id 17 for calling the TestMultiTensor obj's underlying member method code with example usage: obj._test_matmul_shard_axis(shard_x, shard_w, device) without return types