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).