FrozenGene commented on pull request #5914:
URL: https://github.com/apache/incubator-tvm/pull/5914#issuecomment-654758540
> Ah, you are right, right now it is hard to pass function as an argument to
the remote because it is wrapped under the std::function, we could lift the
restriction later once we fold the PackedFunc as an object.
>
> Right now we might need to pass fprepare by string as its name which skips
the first argument by default.
>
> ```c++
> f = mod.time_evaluator("myfunc", repeat=10,
fprepare="cache_flush_cpu_non_first_arg")
> ```
>
> It is still a bit more flexible than A0, as it enables multiple cache
flush options but less flexible than A1. The migration to A1 possible though
later.
Another point I want to do one round of quick discussion. When we tune
single op / single layer network performance, we don't want to do cache flush
so that we could get maximum performance. Previous pr use environment value
could control it easily (setting it in tune_network but doesn't set it when to
tune single layer network). If we fold it into time_evaluator, how to
distinguish these two conditions? One method I could come up is we could add
one extra tuning option (like `enable_cache_flush`, default value could be
False) for measure. Do you have better suggestions?
----------------------------------------------------------------
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]