[RFC] A general task extraction mechanism for auto_scheduler

This is a good question. This is possible for the current implementation, because we use Relay op strategy to define auto_scheduler tasks as well. In other words, we use Relay FuseOps to define the task scope, and should be able to choose to use TOPI (AutoTVM) or auto_scheduler schedule for each task. However, as you pointed out, this option becomes unavailable after this RFC as we separate their task extraction and compilation paths.

An alternative solution might be keeping all approaches in the same place. Specifically, we still keep the current task extraction (i.e., having strategy.add_auto_scheduler in Relay op strategy). When use_topi_schedule=True, we can still extract auto_scheduler tasks as for now. The case of use_topi_schedule=False would become totally optional.

What do you think about this proposal, or do you have any suggestion on this? Also cc @merrymercy.