20 #ifndef TVM_S_TIR_META_SCHEDULE_SCHEDULE_RULE_H_
21 #define TVM_S_TIR_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>
35 namespace meta_schedule {
48 refl::ObjectDef<ScheduleRuleNode>();
127 bool inline_const_tensor,
128 bool disallow_if_then_else,
129 bool require_injective,
130 bool require_ordered,
131 ffi::Optional<ffi::Array<ffi::String>> disallow_op);
162 ffi::String structure,
163 ffi::Optional<ffi::Array<ffi::String>> tile_binds,
164 ffi::Optional<Integer> max_innermost_factor,
165 ffi::Optional<ffi::Array<Integer>> vector_load_lens,
166 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
167 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write,
168 ffi::Optional<ffi::Function> filter_fn = std::nullopt);
188 ffi::String intrin_name, ffi::String structure,
189 ffi::Optional<ffi::Array<ffi::String>> tile_binds,
190 ffi::Optional<Integer> max_innermost_factor,
191 ffi::Optional<ffi::Array<Integer>> vector_load_lens,
192 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
193 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write);
216 ffi::Array<ffi::Map<ffi::String, ffi::String>> intrin_groups, ffi::String structure,
217 ffi::Optional<ffi::Array<ffi::String>> tile_binds,
218 ffi::Optional<Integer> max_innermost_factor,
219 ffi::Optional<ffi::Array<Integer>> vector_load_lens,
220 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
221 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write,
bool use_software_pipeline);
235 ffi::String structure,
Integer vector_length_in_bits,
236 ffi::Optional<Integer> max_innermost_factor,
237 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
238 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write);
249 ffi::Optional<Integer> max_innermost_factor);
276 int max_vectorize_extent,
277 ffi::Array<Integer> unroll_max_steps,
278 bool unroll_explicit);
288 int max_threads_per_block = -1);
306 TVM_DLL
static ffi::Array<ScheduleRule, void>
DefaultX86(
const ffi::String& type);
314 TVM_DLL
static ffi::Array<ScheduleRule, void>
DefaultARM(
const ffi::String& type);
344 refl::ObjectDef<PyScheduleRuleNode>();
Container of constant int that adds more constructors.
Definition: expr.h:599
Managed reference to SBlockRVNode.
Definition: schedule.h:65
Managed reference to ScheduleNode.
Definition: schedule.h:897
Managed reference to TuneContextNode.
Definition: tune_context.h:99
Definition: repr_printer.h:91
Performance counters for profiling via the PAPI library.
Definition: analyzer.h:37
A managed object in the TVM runtime.