I added a new ‘mytarget’ to target list and add dense strategy registration in python/tvm/op/strategy/mytarget.py as below (__init__
.py has been updated appropriately to include this newly added target file):
@dense_strategy.register("mytarget")
def dense_strategy_mytarget(attrs, inputs, out_type, target):
strategy = _op.OpStrategy()
strategy.add_implementation(wrap_compute_dense(topi.nn.dense),
wrap_topi_schedule(topi.mytarget.schedule_dense),
name="dense.mytarget",
plevel=20)
return strategy
However, when tvm tries to select_implementations() in python/tvm/relay/backend/compile_engine.py. It always goes to the generic version of dense_strategy defined in python/tvm/op/strategy/generic.py:
@override_native_generic_func("dense_strategy")
def dense_strategy(attrs, inputs, out_type, target):
"""dense generic strategy"""
logger.warning("dense is not optimized for this platform.")
strategy = _op.OpStrategy()
strategy.add_implementation(wrap_compute_dense(topi.nn.dense),
wrap_topi_schedule(topi.generic.schedule_dense),
name="dense.generic")
return strategy
Can anyone give me some hint why my registration doesnt work? Thanks.