merrymercy opened a new pull request #6710:
URL: https://github.com/apache/incubator-tvm/pull/6710


   This pr implements the basic relay integration for auto-scheduler.
   
   ## How to integrate auto-scheduler in relay
   1. register auto-scheduler as an implementation in the op strategy. We have 
a universal schedule function for all topi compute functions.
   2. Use tracing to extract all tasks similar to autotvm.
   
   If auto-scheduler is enabled by `auto_scheduler.enable_relay_integration`, 
then auto-scheduler is always prefered to any other registered implementation.
   
   ## Limitation
   Ideally, we should be able to mix autotvm, auto-scheduler, and static 
libraries,  then we can select the best implementation according to a profling 
records.
   However, this is not trivial to implement, because auto-scheduler works on a 
subgraph level while the current OpStrategy is designed for single operator 
level.
   The limitation of OpStrategy also makes auto-scheduler unable to support 
multiple compute declarations. For example, auto-scheduler cannot select direct 
vs. winograd based on profiling records, while autotvm can easilly do this.
   
   ## Minor todo
   - [ ] Add an API to disable the cache in relay compilation, so we can 
extract the weigths (i.e., the number of appearance) of each task for the 
task-scheduler.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to