I am trying to understand autotvm using example of tune_relay_x86. I did some testing, some changes and based on that I have handful of questions for which I couldn’t find clear answer anywhere in the doc/sources. I’d very much appreciate any help.
- Is number of threads (TVM_NUM_THREADS) anyhow affecting inference (evaluation) run? Or is this value profitable only for tuning?
- Could someone explain what “task” mean in TVM? In
tune_kernelstask is one time present in
prefixvariable and another in comment
# converting conv2d tasks to conv2d_NCHWc tasks. Documentation describes task:
Task is a tunable composition of template functions.Looking at all of this, including fact that for resnet-18 there are 12 tasks, I got a bit confused how I should understand it. For example when I ran resnet-50 (just changed 18 to 50 in the script), I got 20 tasks.
- One of the lines produced by the script may look like this:
[Task 12/12] Current/Best: 215.34/2271.11 GFLOPS | Progress: (400/400) | 2128.74 s Done.. What are those values in
python/tvm/autotvm/tuner/callback.pyit looks like the second number might be the total number of trials. From the code I can see that this value is passed in tune method and is equal to
len(task.config_space), where on each trial the first value got somehow incremented. Is it this line:
ctx.ct += len(inputs)? So in that case, what exactly are inputs?
3b. Follow-up on that, what is, or where I can found definition of
Thanks for help in advance.