tvm icon indicating copy to clipboard operation
tvm copied to clipboard

[AutoTVM] Introducing multi_filter into ConfigSpace autotvm

Open Icemist opened this issue 2 years ago • 5 comments

multi_filter can restrict combination of parameters in difference to the knob filter, that restricts only single parameter.

Here is a small example to show the workflow and the difference:

Pre-requisites

candidates = [[16, 64], [32, 32], [64, 16]]
filter = lambda v: v.size[0] != 16
multi_filter = lambda e: (e["tile_x"].size[0] + e["tile_y"].size[0]) <= 64

Case 1 - without filtering

cfg.define_split("tile_x", x, num_outputs=2, policy="candidate", candidate=candidates)
cfg.define_split("tile_y", y, num_outputs=2, policy="candidate", candidate=candidates)

[('tile_x', [16, 64]), ('tile_y', [16, 64])],None,0 [('tile_x', [32, 32]), ('tile_y', [16, 64])],None,1 [('tile_x', [64, 16]), ('tile_y', [16, 64])],None,2 [('tile_x', [16, 64]), ('tile_y', [32, 32])],None,3 [('tile_x', [32, 32]), ('tile_y', [32, 32])],None,4 [('tile_x', [64, 16]), ('tile_y', [32, 32])],None,5 [('tile_x', [16, 64]), ('tile_y', [64, 16])],None,6 [('tile_x', [32, 32]), ('tile_y', [64, 16])],None,7 [('tile_x', [64, 16]), ('tile_y', [64, 16])],None,8

Case 2 - with filter

cfg.define_split("tile_x", x, num_outputs=2, policy="candidate", candidate=candidates, filter=filter)
cfg.define_split("tile_y", y, num_outputs=2, policy="candidate", candidate=candidates, filter=filter)

[('tile_x', [32, 32]), ('tile_y', [32, 32])],None,0 [('tile_x', [64, 16]), ('tile_y', [32, 32])],None,1 [('tile_x', [32, 32]), ('tile_y', [64, 16])],None,2 [('tile_x', [64, 16]), ('tile_y', [64, 16])],None,3

Case 3 - with filter and multi_filter

cfg.define_split("tile_x", x, num_outputs=2, policy="candidate", candidate=candidates, filter=filter)
cfg.define_split("tile_y", y, num_outputs=2, policy="candidate", candidate=candidates, filter=filter)
cfg.multi_filter(filter=multi_filter)

[('tile_x', [32, 32]), ('tile_y', [32, 32])],None,0

Co-authored-by: Andrey Malyshev [email protected] Co-authored-by: Egor Churaev [email protected]

Icemist avatar Aug 22 '22 20:08 Icemist

CC @merrymercy @eqy

Icemist avatar Aug 30 '22 11:08 Icemist

cc @csullivan

TejashShah avatar Aug 30 '22 15:08 TejashShah

cc @vinx13 @junrushao @masahi

TejashShah avatar Sep 01 '22 21:09 TejashShah

@masahi @merrymercy could you please take a look?

elvin-n avatar Sep 16 '22 18:09 elvin-n

CC @tqchen @merrymercy this PR makes some in depth changes to autoTVM, PTAL

tmoreau89 avatar Sep 16 '22 18:09 tmoreau89

can we merge this PR into main?

elvin-n avatar Sep 22 '22 10:09 elvin-n