def autotune(func, test, scope): """ Autotunes func, using test(func) as a testing function that returns a time in seconds. """ sys.argv = [sys.argv[0], 'dirname'] info = {} cfg = HalideConfigAccessor() func_d = halide.all_funcs(func) hl = HalideHighLevelConfig(info, [(key, halide.func_varlist(value)) for (key, value) in func_d.items()]) hl.randomize(cfg, 1) test_permutation() sgatuner.main(tester_lambda=lambda *a: HalideCandidateTester(hl, *a, test_func=test, func_d=func_d, func=func, scope=scope), pop_lambda=lambda *a: HalidePopulation(hl, *a), hlconfig_lambda=lambda: hl, config_lambda=lambda: cfg)
def main(): args = sys.argv[1:] if len(args) < 1: print 'halide_autotune.py dirname [options to sgatuner.py]' sys.exit(1) info = {} cfg = HalideConfigAccessor() hl = HalideHighLevelConfig(info, [('blur_x', ['x', 'y']), ('blur_y', ['x', 'y'])]) hl.randomize(cfg, 1) test_permutation() sgatuner.main(tester_lambda=lambda *a: HalideCandidateTester(hl, *a), pop_lambda=lambda *a: HalidePopulation(hl, *a), hlconfig_lambda=lambda: hl, config_lambda=lambda: cfg)