def main(): describe() print(f"Workload: {ARGS.workload}") runner = ms.runner.RPCRunner( rpc_config=ARGS.rpc_config, evaluator_config=ms.runner.EvaluatorConfig( number=ARGS.number, repeat=ARGS.repeat, min_repeat_ms=ARGS.min_repeat_ms, enable_cpu_cache_flush=ARGS.cpu_flush, ), alloc_repeat=1, ) with ms.Profiler() as profiler: sch: Optional[tir.Schedule] = ms.tune_tir( mod=create_te_workload(ARGS.workload, 0), target=ARGS.target, config=ms.TuneConfig( strategy="evolutionary", num_trials_per_iter=64, max_trials_per_task=ARGS.num_trials, max_trials_global=ARGS.num_trials, ), runner=runner, # type: ignore task_name=ARGS.workload, work_dir=ARGS.work_dir, num_threads=cpu_count(), ) print("Tuning Time:") print(profiler.table()) if sch is None: print("No valid schedule found!") else: print(sch.mod.script()) print(sch.trace)
def main(): alloc_repeat = 1 runner = ms.runner.RPCRunner( rpc_config=ARGS.rpc_config, evaluator_config=ms.runner.EvaluatorConfig( number=3, repeat=1, min_repeat_ms=100, enable_cpu_cache_flush=False, ), alloc_repeat=alloc_repeat, max_workers=ARGS.rpc_workers, ) sch: Optional[tir.Schedule] = ms.tune_tir( mod=create_te_workload(ARGS.workload, 0), target=ARGS.target, config=ms.TuneConfig( strategy="evolutionary", num_trials_per_iter=64, max_trials_per_task=ARGS.num_trials, max_trials_global=ARGS.num_trials, ), runner=runner, # type: ignore task_name=ARGS.workload, work_dir=ARGS.work_dir, num_threads=cpu_count(), ) if sch is None: print("No valid schedule found!") else: print(sch.mod.script()) print(sch.trace)
def test_te_workload(workload, flops): te_workload = create_te_workload(workload, 0) mod = IRModule({"main": te_workload}) assert float(flops) == estimate_tir_flops(mod)