code: def promote_torch_matmul(a: torch.Tensor, b: torch.Tensor):
      if isinstance(a, torch.Tensor) and isinstance(b, torch.Tensor):
          target_dtype = torch.promote_types(a.dtype, b.dtype)
          a = a.type(target_dtype)
          b = b.type(target_dtype)
      return torch.matmul(_maybe_detach(a), _maybe_detach(b))
  
file_path: FATE/python/fate/arch/tensor/distributed/_op_matmul.py
imports: import logging
  import torch
  from fate.arch.tensor import _custom_ops
  from ._tensor import DTensor, implements
label_desc: Use image node_id 2 for calling a global function with example usage: promote_torch_matmul(a, b) and returns: torch