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>();
99 using FAsString = ffi::TypedFunction<ffi::String()>;
126 bool inline_const_tensor,
127 bool disallow_if_then_else,
128 bool require_injective,
129 bool require_ordered,
130 ffi::Optional<ffi::Array<ffi::String>> disallow_op);
161 ffi::String structure,
162 ffi::Optional<ffi::Array<ffi::String>> tile_binds,
163 ffi::Optional<Integer> max_innermost_factor,
164 ffi::Optional<ffi::Array<Integer>> vector_load_lens,
165 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
166 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write,
167 ffi::Optional<ffi::Function> filter_fn = std::nullopt);
187 ffi::String intrin_name, ffi::String structure,
188 ffi::Optional<ffi::Array<ffi::String>> tile_binds,
189 ffi::Optional<Integer> max_innermost_factor,
190 ffi::Optional<ffi::Array<Integer>> vector_load_lens,
191 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
192 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write);
215 ffi::Array<ffi::Map<ffi::String, ffi::String>> intrin_groups, ffi::String structure,
216 ffi::Optional<ffi::Array<ffi::String>> tile_binds,
217 ffi::Optional<Integer> max_innermost_factor,
218 ffi::Optional<ffi::Array<Integer>> vector_load_lens,
219 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
220 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write,
bool use_software_pipeline);
234 ffi::String structure,
Integer vector_length_in_bits,
235 ffi::Optional<Integer> max_innermost_factor,
236 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
237 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write);
248 ffi::Optional<Integer> max_innermost_factor);
275 int max_vectorize_extent,
276 ffi::Array<Integer> unroll_max_steps,
277 bool unroll_explicit);
287 int max_threads_per_block = -1);
305 TVM_DLL
static ffi::Array<ScheduleRule, void>
DefaultX86(
const ffi::String& type);
313 TVM_DLL
static ffi::Array<ScheduleRule, void>
DefaultARM(
const ffi::String& type);
343 refl::ObjectDef<PyScheduleRuleNode>();
Container of constant int that adds more constructors.
Definition: expr.h:599
Managed reference to TuneContextNode.
Definition: tune_context.h:98
Managed reference to SBlockRVNode.
Definition: schedule.h:65
Managed reference to ScheduleNode.
Definition: schedule.h:897
Definition: repr_printer.h:91
Performance counters for profiling via the PAPI library.
Definition: analyzer.h:37
A managed object in the TVM runtime.