Thanks all for the valuable feedback. Here is the summary of the finalized RFC:

### Interface
- When extracting auto_scheduler tasks, users simply call `extract_tasks`.
- `extract_tasks` now has an optional flag `include_simple_task` (default 
`False`). When set, each Relay function, including the one with only injective 
ops, becomes an auto_scheduler task.
* When building a model, users need to use `with 
tvm.transform.PassContext(config={"relay.backend.use_auto_scheduler": True})` 
to apply auto_scheduler tuning logs.

### Changes in Compile Engine
- Compile engine checks `relay.backend.use_auto_scheduler` to determine whether 
to use auto_scheduler schedules. If true, then compile engine calls 
`auto_schedule_topi`.
- In the task extraction mode,  `auto_schedule_topi` extracts a task and 
returns an initial schedule. Since we are not going to actually compile the 
model in this mode, whether the initial schedule is valid doesn't matter.
- In the build mode, `auto_schedule_topi` queries the auto_scheduler tuning log 
for the given workload. If success, then it returns the tuned schedule; 
otherwise it returns `None`. In this case, compile engine falls back to use 
TOPI schedule (with AutoTVM tuning logs if provided) for this workload to make 
sure it can be compiled and executed. As a result, mixing the use of 
auto_scheduler and AutoTVM schedules is also supported.

The implementation is ready for review in the PR:

https://github.com/apache/incubator-tvm/pull/6903





---
[Visit 
Topic](https://discuss.tvm.apache.org/t/rfc-a-general-task-extraction-mechanism-for-auto-scheduler/8444/16)
 to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click 
here](https://discuss.tvm.apache.org/email/unsubscribe/e5b55f23fe8a5cf69415e0839345bb7b8b5123b929eccc019b028836681fb0fe).

Reply via email to