tvm
|
The task scheduler with customized methods on the python-side. More...
#include <task_scheduler.h>
Public Types | |
using | FTune = runtime::TypedPackedFunc< void()> |
The function type of Tune method. More... | |
using | FInitializeTask = runtime::TypedPackedFunc< void(int)> |
The function type of InitializeTask method. More... | |
using | FTouchTask = runtime::TypedPackedFunc< void(int)> |
The function type of TouchTask method. More... | |
using | FJoinRunningTask = runtime::TypedPackedFunc< Array< RunnerResult >(int)> |
The function type of JoinRunningTask method. More... | |
using | FNextTaskId = runtime::TypedPackedFunc< int()> |
The function type of NextTaskId method. More... | |
![]() | |
typedef void(* | FDeleter) (Object *self) |
Object deleter. More... | |
using | RefCounterType = std::atomic< int32_t > |
Public Member Functions | |
void | VisitAttrs (tvm::AttrVisitor *v) |
void | Tune () final |
Auto-tuning. More... | |
void | InitializeTask (int task_id) final |
Initialize modules of the given task. More... | |
void | TouchTask (int task_id) final |
Touch the task and update its status. More... | |
Array< RunnerResult > | JoinRunningTask (int task_id) final |
Wait until the task is finished. More... | |
int | NextTaskId () final |
Fetch the next task id. More... | |
TVM_DECLARE_FINAL_OBJECT_INFO (PyTaskSchedulerNode, TaskSchedulerNode) | |
![]() | |
virtual | ~TaskSchedulerNode ()=default |
The default destructor. More... | |
void | VisitAttrs (tvm::AttrVisitor *v) |
TVM_DECLARE_BASE_OBJECT_INFO (TaskSchedulerNode, Object) | |
![]() | |
uint32_t | type_index () const |
std::string | GetTypeKey () const |
size_t | GetTypeKeyHash () const |
template<typename TargetType > | |
bool | IsInstance () const |
bool | unique () const |
Object () | |
Object (const Object &other) | |
Object (Object &&other) | |
Object & | operator= (const Object &other) |
Object & | operator= (Object &&other) |
Public Attributes | |
FTune | f_tune |
The packed function to the Tune function. More... | |
FInitializeTask | f_initialize_task |
The packed function to the InitializeTask function. More... | |
FTouchTask | f_touch_task |
The packed function to the TouchTask function. More... | |
FJoinRunningTask | f_join_running_task |
The packed function to the JoinRunningTask function. More... | |
FNextTaskId | f_next_task_id |
The packed function to the NextTaskId function. More... | |
![]() | |
Array< TuneContext > | tasks |
The tasks to be tuned. More... | |
Builder | builder {nullptr} |
The builder of the scheduler. More... | |
Runner | runner {nullptr} |
The runner of the scheduler. More... | |
Optional< Database > | database |
The database of the scheduler. More... | |
Optional< CostModel > | cost_model |
The cost model of the scheduler. More... | |
Array< MeasureCallback > | measure_callbacks |
The list of measure callbacks of the scheduler. More... | |
int | max_trials |
The maximum number of trials allowed. More... | |
int | num_trials_already |
The number of trials already conducted. More... | |
PackedFunc | logging_func |
The tuning task's logging function. t. More... | |
Static Public Attributes | |
static constexpr const char * | _type_key = "meta_schedule.PyTaskScheduler" |
![]() | |
static constexpr const char * | _type_key = "meta_schedule.TaskScheduler" |
![]() | |
static constexpr const char * | _type_key = "runtime.Object" |
static constexpr bool | _type_final = false |
static constexpr uint32_t | _type_child_slots = 0 |
static constexpr bool | _type_child_slots_can_overflow = true |
static constexpr bool | _type_has_method_visit_attrs = true |
static constexpr bool | _type_has_method_sequal_reduce = false |
static constexpr bool | _type_has_method_shash_reduce = false |
static constexpr uint32_t | _type_index = TypeIndex::kDynamic |
Additional Inherited Members | |
![]() | |
static std::string | TypeIndex2Key (uint32_t tindex) |
Get the type key of the corresponding index from runtime. More... | |
static size_t | TypeIndex2KeyHash (uint32_t tindex) |
Get the type key hash of the corresponding index from runtime. More... | |
static uint32_t | TypeKey2Index (const std::string &key) |
Get the type index of the corresponding key from runtime. More... | |
static uint32_t | _GetOrAllocRuntimeTypeIndex () |
static uint32_t | RuntimeTypeIndex () |
![]() | |
void | IncRef () |
developer function, increases reference counter. More... | |
void | DecRef () |
developer function, decrease reference counter. More... | |
![]() | |
static uint32_t | GetOrAllocRuntimeTypeIndex (const std::string &key, uint32_t static_tindex, uint32_t parent_tindex, uint32_t type_child_slots, bool type_child_slots_can_overflow) |
Get the type index using type key. More... | |
![]() | |
uint32_t | type_index_ {0} |
Type index(tag) that indicates the type of the object. More... | |
RefCounterType | ref_counter_ {0} |
The internal reference counter. More... | |
FDeleter | deleter_ = nullptr |
deleter of this object to enable customized allocation. If the deleter is nullptr, no deletion will be performed. The creator of the object must always set the deleter field properly. More... | |
The task scheduler with customized methods on the python-side.
using tvm::meta_schedule::PyTaskSchedulerNode::FInitializeTask = runtime::TypedPackedFunc<void(int)> |
The function type of InitializeTask
method.
using tvm::meta_schedule::PyTaskSchedulerNode::FJoinRunningTask = runtime::TypedPackedFunc<Array<RunnerResult>(int)> |
The function type of JoinRunningTask
method.
task_id | The task id to be joined. |
The function type of NextTaskId
method.
using tvm::meta_schedule::PyTaskSchedulerNode::FTouchTask = runtime::TypedPackedFunc<void(int)> |
The function type of TouchTask
method.
task_id | The task id to be checked. |
The function type of Tune
method.
|
finalvirtual |
Initialize modules of the given task.
task_id | The task id to be initialized. |
Reimplemented from tvm::meta_schedule::TaskSchedulerNode.
|
finalvirtual |
Wait until the task is finished.
task_id | The task id to be joined. |
Reimplemented from tvm::meta_schedule::TaskSchedulerNode.
|
finalvirtual |
|
finalvirtual |
Touch the task and update its status.
task_id | The task id to be checked. |
Reimplemented from tvm::meta_schedule::TaskSchedulerNode.
|
finalvirtual |
Auto-tuning.
Reimplemented from tvm::meta_schedule::TaskSchedulerNode.
tvm::meta_schedule::PyTaskSchedulerNode::TVM_DECLARE_FINAL_OBJECT_INFO | ( | PyTaskSchedulerNode | , |
TaskSchedulerNode | |||
) |
|
inline |
|
static |
FInitializeTask tvm::meta_schedule::PyTaskSchedulerNode::f_initialize_task |
The packed function to the InitializeTask
function.
FJoinRunningTask tvm::meta_schedule::PyTaskSchedulerNode::f_join_running_task |
The packed function to the JoinRunningTask
function.
FNextTaskId tvm::meta_schedule::PyTaskSchedulerNode::f_next_task_id |
The packed function to the NextTaskId
function.
FTouchTask tvm::meta_schedule::PyTaskSchedulerNode::f_touch_task |
The packed function to the TouchTask
function.
FTune tvm::meta_schedule::PyTaskSchedulerNode::f_tune |
The packed function to the Tune
function.