Hi!
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_kernels
task is one time present inprefix
variable 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 inProgress
?
3a. Inpython/tvm/autotvm/tuner/callback.py
it 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 tolen(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 ofconfig_space
Thanks for help in advance.