19 #ifndef TVM_META_SCHEDULE_RUNNER_H_
20 #define TVM_META_SCHEDULE_RUNNER_H_
22 #include <tvm/ffi/container/array.h>
23 #include <tvm/ffi/function.h>
24 #include <tvm/ffi/optional.h>
25 #include <tvm/ffi/reflection/registry.h>
26 #include <tvm/ffi/string.h>
32 namespace meta_schedule {
46 refl::ObjectDef<RunnerInputNode>()
52 static constexpr
const char*
_type_key =
"meta_schedule.RunnerInput";
83 refl::ObjectDef<RunnerResultNode>()
88 static constexpr
const char*
_type_key =
"meta_schedule.RunnerResult";
104 TVM_DLL
explicit RunnerResult(Optional<Array<FloatImm>> run_secs, Optional<String> error_msg);
119 using FDone = ffi::TypedFunction<bool()>;
141 ICHECK(
f_done !=
nullptr) <<
"PyRunnerFuture's Done method not implemented!";
149 ICHECK(
f_result !=
nullptr) <<
"PyRunnerFuture's Result method not implemented!";
153 static constexpr
const char*
_type_key =
"meta_schedule.RunnerFuture";
185 using FRun = ffi::TypedFunction<Array<RunnerFuture>(Array<RunnerInput>)>;
195 virtual Array<RunnerFuture>
Run(Array<RunnerInput> runner_inputs) = 0;
197 static constexpr
const char*
_type_key =
"meta_schedule.Runner";
205 class Runner :
public runtime::ObjectRef {
228 Array<RunnerFuture>
Run(Array<RunnerInput> runner_inputs)
final {
229 ICHECK(
f_run !=
nullptr) <<
"PyRunner's Run method not implemented!";
230 return f_run(runner_inputs);
233 static constexpr
const char*
_type_key =
"meta_schedule.PyRunner";
Definition: repr_printer.h:91
constexpr const char * device_type
The device type.
Definition: stmt.h:1092
Performance counters for profiling via the PAPI library.
Definition: analyzer.h:37
A managed object in the TVM runtime.