20 #ifndef TVM_META_SCHEDULE_SCHEDULE_RULE_H_
21 #define TVM_META_SCHEDULE_SCHEDULE_RULE_H_
23 #include <tvm/ffi/container/array.h>
24 #include <tvm/ffi/container/map.h>
25 #include <tvm/ffi/function.h>
26 #include <tvm/ffi/optional.h>
27 #include <tvm/ffi/reflection/registry.h>
28 #include <tvm/ffi/string.h>
34 namespace meta_schedule {
47 refl::ObjectDef<ScheduleRuleNode>();
98 using FAsString = ffi::TypedFunction<ffi::String()>;
125 bool inline_const_tensor,
126 bool disallow_if_then_else,
127 bool require_injective,
128 bool require_ordered,
129 ffi::Optional<ffi::Array<ffi::String>> disallow_op);
160 ffi::String structure,
161 ffi::Optional<ffi::Array<ffi::String>> tile_binds,
162 ffi::Optional<Integer> max_innermost_factor,
163 ffi::Optional<ffi::Array<Integer>> vector_load_lens,
164 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
165 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write,
166 ffi::Optional<ffi::Function> filter_fn = std::nullopt);
186 ffi::String intrin_name, ffi::String structure,
187 ffi::Optional<ffi::Array<ffi::String>> tile_binds,
188 ffi::Optional<Integer> max_innermost_factor,
189 ffi::Optional<ffi::Array<Integer>> vector_load_lens,
190 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
191 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write);
214 ffi::Array<ffi::Map<ffi::String, ffi::String>> intrin_groups, ffi::String structure,
215 ffi::Optional<ffi::Array<ffi::String>> tile_binds,
216 ffi::Optional<Integer> max_innermost_factor,
217 ffi::Optional<ffi::Array<Integer>> vector_load_lens,
218 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
219 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write,
bool use_software_pipeline);
233 ffi::String structure,
Integer vector_length_in_bits,
234 ffi::Optional<Integer> max_innermost_factor,
235 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
236 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write);
247 ffi::Optional<Integer> max_innermost_factor);
274 int max_vectorize_extent,
275 ffi::Array<Integer> unroll_max_steps,
276 bool unroll_explicit);
286 int max_threads_per_block = -1);
304 TVM_DLL
static ffi::Array<ScheduleRule, void>
DefaultX86(
const ffi::String& type);
312 TVM_DLL
static ffi::Array<ScheduleRule, void>
DefaultARM(
const ffi::String& type);
342 refl::ObjectDef<PyScheduleRuleNode>();
Container of constant int that adds more constructors.
Definition: expr.h:600
Managed reference to TuneContextNode.
Definition: tune_context.h:98
Managed reference to BlockRVNode.
Definition: schedule.h:64
Managed reference to ScheduleNode.
Definition: schedule.h:887
Definition: repr_printer.h:91
Performance counters for profiling via the PAPI library.
Definition: analyzer.h:37
A managed object in the TVM runtime.