code: def defop(name, target=None, auto_broadcast=False, **kwargs):
      """Decorator to define a tvm operator.
      Parameters
      ----------
      name : str
          function name
      target : str
          {"cpu", "gpu", "cuda"}
      auto_broadcast : bool
          auto_broadcast=True allows one to implement broadcast computation
          without considering whether dimension size equals to one.
          TVM maps buffer[i][j][k] -> buffer[i][0][k] if dimension i's shape equals 1.
      Returns
      -------
      fdef : function
          A wrapped operator definition function, which returns (schedule, [tensors])
      """
      assert name is not None and len(name) > 0
      target = "cpu" if target is None else target
  
      def _defop(func):
          opdef = OpDef(func, name, target, auto_broadcast, **kwargs)
          __OP_DEF__.append(opdef)
          return opdef
  
      return _defop
  
file_path: mxnet/contrib/tvmop/opdef.py
imports: import tvm
  import inspect
  from tvm import autotvm
  from itertools import product
label_desc: Use image node_id 1 for calling a global function with example usage: defop(name, target, auto_broadcast) and returns: _defop, opdef