comaniac commented on a change in pull request #6903:
URL: https://github.com/apache/incubator-tvm/pull/6903#discussion_r523809528
##########
File path: python/tvm/relay/op/strategy/cuda.py
##########
@@ -222,12 +218,11 @@ def conv2d_strategy_cuda(attrs, inputs, out_type, target):
# register auto-scheduler implementations
if judge_winograd_auto_scheduler:
- strategy.add_auto_scheduler(
- wrap_compute_conv2d(topi.nn.conv2d_winograd_nhwc),
name="conv2d_nhwc.winograd"
- )
- else:
- strategy.add_auto_scheduler(
- wrap_compute_conv2d(topi.nn.conv2d_nhwc),
name="conv2d_nhwc"
+ strategy.add_implementation(
+ wrap_compute_conv2d(topi.nn.conv2d_winograd_nhwc),
+ wrap_topi_schedule(tvm.te.create_schedule),
+ name="conv2d_nhwc.winograd",
+ plevel=10,
Review comment:
I was thinking about this too. The current semantic is when extracting
AutoTVM tasks, only the direct one will be extracted because Winograd one isn't
registered as an AutoTVM task, so does the case of applying AutoTVM tuning
logs. So we can probably just make this plevel higher (say, 12).
The only issue is when no tuning logs are given, the Winograd one will be
selected if judge_Winograd is True. In this case we need to make sure Winograd
fallback is better than the direct.
What do you think?
----------------------------------------------------------------
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]