///|
impl BackwardOp for MatmulBackward with fn backward(
  self,
  grad,
  out_shape,
  inputs,
) {
  let lhs_shape = inputs[0].shape
  let rhs_shape = inputs[1].shape
  let k = lhs_shape[lhs_shape.length() - 1]
  let lhs_grad = Array::make(shape_size(lhs_shape), 0.0)
  let rhs_grad = Array::make(shape_size(rhs_shape), 0.0)
  for i in 0..