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 {
70 static constexpr
const char*
_type_key =
"meta_schedule.ScheduleRule";
124 bool inline_const_tensor,
125 bool disallow_if_then_else,
126 bool require_injective,
127 bool require_ordered,
128 Optional<Array<String>> disallow_op);
159 Optional<Array<String>> tile_binds,
160 Optional<Integer> max_innermost_factor,
161 Optional<Array<Integer>> vector_load_lens,
162 Optional<Map<String, ffi::Any>> reuse_read,
163 Optional<Map<String, ffi::Any>> reuse_write,
164 Optional<ffi::Function> filter_fn = std::nullopt);
184 String intrin_name, String structure, Optional<Array<String>> tile_binds,
185 Optional<Integer> max_innermost_factor, Optional<Array<Integer>> vector_load_lens,
186 Optional<Map<String, ffi::Any>> reuse_read, Optional<Map<String, ffi::Any>> reuse_write);
209 Array<Map<String, String>> intrin_groups, String structure,
210 Optional<Array<String>> tile_binds, Optional<Integer> max_innermost_factor,
211 Optional<Array<Integer>> vector_load_lens, Optional<Map<String, ffi::Any>> reuse_read,
212 Optional<Map<String, ffi::Any>> reuse_write,
bool use_software_pipeline);
226 String structure,
Integer vector_length_in_bits, Optional<Integer> max_innermost_factor,
227 Optional<Map<String, ffi::Any>> reuse_read, Optional<Map<String, ffi::Any>> reuse_write);
238 Optional<Integer> max_innermost_factor);
265 int max_vectorize_extent,
266 Array<Integer> unroll_max_steps,
267 bool unroll_explicit);
277 int max_threads_per_block = -1);
295 TVM_DLL
static Array<ScheduleRule, void>
DefaultX86(
const String& type);
303 TVM_DLL
static Array<ScheduleRule, void>
DefaultARM(
const String& type);
336 static constexpr const
char*
_type_key = "meta_schedule.PyScheduleRule";
Container of constant int that adds more constructors.
Definition: expr.h:612
Managed reference to TuneContextNode.
Definition: tune_context.h:98
Managed reference to BlockRVNode.
Definition: schedule.h:65
Managed reference to ScheduleNode.
Definition: schedule.h:880
Performance counters for profiling via the PAPI library.
Definition: analyzer.h:37
A managed object in the TVM runtime.