【tvm官网教程】AutoSchedule:无模板的自动调度
目的
autotvm是基于模板的调优,效果依赖于手动设计的搜索空间。
auto-scheduler不再基于模板,用户只需要编写计算声明,而无需任何调度命令或模板。auto-scheduler可以自动生成一个较大的搜索空间,并在该空间中找到良好的调度。
1. 自动调度GPU的卷积层
不需要定义搜索空间,但是还是要指定一些调度参数,知道在搜索过程中如何进行测量。
定义计算:
@auto_scheduler.register_workload
def conv2d_layer(N, H, W, CO, CI, KH, KW, stride, padding):
#### 计算声明
return [data, kernel, bias, out]
创建搜索任务:
target = tvm.target.Target("cuda")
N, H, W, CO, CI, KH, KW, strides, padding = 1, 7, 7, 512, 512, 3, 3, (1, 1), (1, 1)
task = auto_scheduler.