When tuning, we can see the log shows current/best FLOPS, it can be seen that the current flops is changing while the best flops is constant, why is that? And often the current flops is less than best flops. I think the best flops is the less, the better. Why the best flops is larger than current flops?
Thanks.
flops = the amount of calculation / the time consumed.
Larger flops mean less time spending on the current operation.
1 Like
Hi, since we have the time consumed
then calculating flops
, why do we need flops
? We can directly compare the running time of different configurations.
we could do time compression but the operation (amount of calculation) in a layer will matter for the execution of the operator, so it’s better to compare with FLOPS
But here flops is calculated by
It does not mean amount of calculation here.
For example:
conv2d has 23 units (amount of calculation) / time
another conv2d has 16 units (pruned data) / time
here both are conv2d elements if you take time here it will be different but its a same operator. but operations differ internals so its better to compare with FLOPS
But in tuner, flops = inp.task.flop / np.mean(res.costs)
, all compare are base on one tasks. It will not compare two different tasks.