    def __call__(self, a: Tensor, b: Tensor, bias: Tensor) -> Tensor:
        """Call operator

        Parameters
        ----------
        a : Tensor
            Tensors of shape (M, B, K)
        b : Tensor
            Tensor of shape (B, N, K)
        bias : Tensor
            Tensor of shape (B, N)

        Returns
        -------
        Tensor
            Tensor of shape (M, B, N)
        """
        self._attrs["inputs"] = [a, b, bias]
        self._attrs["input_accessors"] = [
            TensorAccessor(tensor) for tensor in self._attrs["inputs"]
        ]
        self._set_depth()
        self._sanity_check(a, b)
        output_shape = self._infer_shapes(a, b, bias)
        self._extract_epilogue_alignment(output_shape)
        output = Tensor(output_shape, src_ops={self}, dtype=a.dtype())
        self._attrs["outputs"] = [output]
        self._attrs["output_accessors"] = [
            TensorAccessor(tensor) for tensor in self._attrs["outputs"]
        ]
        return output
Call operator

Parameters
----------
a : Tensor
Tensors of shape (M, B, K)
b : Tensor
Tensor of shape (B, N, K)
bias : Tensor
Tensor of shape (B, N)

Returns
-------
Tensor
Tensor of shape (M, B, N)
python/aitemplate/compiler/ops/gemm_universal/perm102_bmm_rcr_bias.py