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 {
97 using FAsString = ffi::TypedFunction<ffi::String()>;
124 bool inline_const_tensor,
125 bool disallow_if_then_else,
126 bool require_injective,
127 bool require_ordered,
128 ffi::Optional<ffi::Array<ffi::String>> disallow_op);
159 ffi::String structure,
160 ffi::Optional<ffi::Array<ffi::String>> tile_binds,
161 ffi::Optional<Integer> max_innermost_factor,
162 ffi::Optional<ffi::Array<Integer>> vector_load_lens,
163 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
164 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write,
165 ffi::Optional<ffi::Function> filter_fn = std::nullopt);
185 ffi::String intrin_name, ffi::String structure,
186 ffi::Optional<ffi::Array<ffi::String>> tile_binds,
187 ffi::Optional<Integer> max_innermost_factor,
188 ffi::Optional<ffi::Array<Integer>> vector_load_lens,
189 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
190 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write);
213 ffi::Array<ffi::Map<ffi::String, ffi::String>> intrin_groups, ffi::String structure,
214 ffi::Optional<ffi::Array<ffi::String>> tile_binds,
215 ffi::Optional<Integer> max_innermost_factor,
216 ffi::Optional<ffi::Array<Integer>> vector_load_lens,
217 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
218 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write,
bool use_software_pipeline);
232 ffi::String structure,
Integer vector_length_in_bits,
233 ffi::Optional<Integer> max_innermost_factor,
234 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_read,
235 ffi::Optional<ffi::Map<ffi::String, ffi::Any>> reuse_write);
246 ffi::Optional<Integer> max_innermost_factor);
273 int max_vectorize_extent,
274 ffi::Array<Integer> unroll_max_steps,
275 bool unroll_explicit);
285 int max_threads_per_block = -1);
303 TVM_DLL
static ffi::Array<ScheduleRule, void>
DefaultX86(
const ffi::String& type);
311 TVM_DLL
static ffi::Array<ScheduleRule, void>
DefaultARM(
const ffi::String& type);
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:63
Managed reference to ScheduleNode.
Definition: schedule.h:885
Performance counters for profiling via the PAPI library.
Definition: analyzer.h:37
A managed object in the TVM runtime.