Hi there,
I tried to resume MetaSchedule tuning but it doesn’t work.
Here’s the code I used. Anyone can help me?
TVM commit id: 3a337714947a03be54c26b083e6a274c411c3815
import os
import tvm
from tvm import meta_schedule as ms
from tvm.relay import testing
def tune(mod, params, target, work_dir, database):
tasks, task_weights = ms.relay_integration.extracted_tasks_to_tune_contexts(
extracted_tasks=ms.relay_integration.extract_tasks(
mod,
target,
params,
),
work_dir=work_dir,
)
return ms.relay_integration.tune_tasks(
tasks=tasks,
task_weights=task_weights,
work_dir=work_dir,
max_trials_global=10,
num_trials_per_iter=5,
database=database,
)
mod, params = testing.mlp.get_workload(1)
target = tvm.target.Target("llvm -num-cores 4")
work_dir = "./log-mlp/"
if not os.path.exists(work_dir):
print(f"Create directory {work_dir}")
os.mkdir(work_dir)
print(f"Create JSONDatabase in {work_dir}")
database = ms.database.JSONDatabase(work_dir=work_dir)
assert len(database.get_all_tuning_records()) == 0
print("Tune...")
tune(mod, params, target, work_dir, database)
assert len(database.get_all_tuning_records()) >= 10
print(f"Load JSONDatabase from {work_dir}")
database_loaded = ms.database.JSONDatabase(work_dir=work_dir)
assert len(database_loaded.get_all_tuning_records()) == len(database.get_all_tuning_records())
print("Tune...")
# This should start the tuning from the previous run but starts from scratch.
tuned_database = tune(mod, params, target, work_dir, database_loaded)
assert len(tuned_database.get_all_tuning_records()) >= 20