class_docstr: Specify the properties of an operator and
  construct the value combination of the arguments
  e.g., ldtype=["float32", "int32"], rdtype=["float16", "int16"],
  then the argument combination is
  [
      {"ldtype": "float32", "rdtype": "float16"},
      {"ldtype": "float32", "rdtype": "int16"},
      {"ldtype": "int32", "rdtype": "float16"},
      {"ldtype": "int32", "rdtype": "int16"},
  ]
  
  Parameters
  ----------
  func : function
       The function to define the operator (in tvm compute and schedule).
       It will get the argument combination extracted by this class.
  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.
code: def get_binds(self, args):
      if self.auto_broadcast:
          return {
              arg: tvm.tir.decl_buffer(
                  arg.shape, arg.dtype, buffer_type="auto_broadcast"
              )
              for arg in args
          }
      return None
  
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 6 for calling the OpDef obj's underlying member method code with example usage: obj.get_binds(args) and returns: None, unknown