19 #ifndef TVM_META_SCHEDULE_DATABASE_H_
20 #define TVM_META_SCHEDULE_DATABASE_H_
22 #include <tvm/ffi/container/array.h>
23 #include <tvm/ffi/function.h>
24 #include <tvm/ffi/reflection/registry.h>
25 #include <tvm/ffi/string.h>
37 namespace meta_schedule {
56 static constexpr
const char*
_type_key =
"meta_schedule.Workload";
108 const ModuleEquality& mod_eq_;
130 refl::ObjectDef<TuningRecordNode>()
138 static constexpr
const char*
_type_key =
"meta_schedule.TuningRecord";
173 Optional<Array<FloatImm>> run_secs, Optional<Target> target,
174 Optional<Array<ArgInfo>> args_info);
248 const String& workload_name);
257 const String& workload_name);
266 const String& workload_name);
278 static constexpr
const char*
_type_key =
"meta_schedule.Database";
283 std::unique_ptr<ModuleEquality> mod_eq_;
340 ffi::TypedFunction<Optional<TuningRecord>(
const IRModule&,
const Target&,
const String&)>;
349 ffi::TypedFunction<Optional<tir::Schedule>(
const IRModule&,
const Target&,
const String&)>;
358 ffi::TypedFunction<Optional<IRModule>(
const IRModule&,
const Target&,
const String&)>;
363 using FSize = ffi::TypedFunction<int64_t()>;
400 ICHECK(
f_has_workload !=
nullptr) <<
"PyDatabase's HasWorkload method not implemented!";
405 ICHECK(
f_commit_workload !=
nullptr) <<
"PyDatabase's CommitWorkload method not implemented!";
411 <<
"PyDatabase's CommitTuningRecord method not implemented!";
416 ICHECK(
f_get_top_k !=
nullptr) <<
"PyDatabase's GetTopK method not implemented!";
422 <<
"PyDatabase's GetAllTuningRecords method not implemented!";
427 const String& workload_name)
final {
436 const String& workload_name)
final {
445 const String& workload_name)
final {
454 ICHECK(
f_size !=
nullptr) <<
"PyDatabase's Size method not implemented!";
458 static constexpr
const char*
_type_key =
"meta_schedule.PyDatabase";
480 String mod_eq_name =
"structural");
489 bool allow_missing, String mod_eq_name =
"structural");
529 String mod_eq_name =
"structural");
Managed reference class to IRModuleNode.
Definition: module.h:257
Managed reference class to TargetNode.
Definition: target.h:191
Managed reference to ScheduleNode.
Definition: schedule.h:880
Managed reference to TraceNode.
Definition: trace.h:143
IRModule that holds the functions and type definitions.
Definition: repr_printer.h:91
tvm::PrimExpr mod(const tvm::PrimExpr &a, const tvm::PrimExpr &b)
Definition: broadcast.h:306
Performance counters for profiling via the PAPI library.
Definition: analyzer.h:37
A managed object in the TVM runtime.
Compilation target object.