The abstract interface of task schedulers.
More...
#include <task_scheduler.h>
|
virtual | ~TaskSchedulerNode ()=default |
| The default destructor. More...
|
|
void | VisitAttrs (tvm::AttrVisitor *v) |
|
virtual int | NextTaskId ()=0 |
| Fetch the next task id. More...
|
|
virtual Array< RunnerResult > | JoinRunningTask (int task_id) |
| Wait until the task is finished. More...
|
|
virtual void | Tune (Array< TuneContext > tasks, Array< FloatImm > task_weights, int max_trials_global, int max_trials_per_task, int num_trials_per_iter, Builder builder, Runner runner, Array< MeasureCallback > measure_callbacks, Optional< Database > database, Optional< CostModel > cost_model) |
| Jointly tune a given list of tasks. More...
|
|
void | TerminateTask (int task_id) |
| Terminate a task. More...
|
|
void | TouchTask (int task_id) |
| Touch the task and update its status. More...
|
|
void | PrintTuningStatistics () |
| Print out a human-readable format of the tuning statistics. More...
|
|
| 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) |
|
The abstract interface of task schedulers.
- Note
- The relationship between SpaceGenerator and other classes are as follows: ┌──────────────────────────────────────────────────────────────┐ ┌──┴───────────────────────────────────────────────────────────┐ │ ┌──┴────────────────── Tune Context ───────────────────────────┐ │ │ │ ┌─────────────────────┐ │ │ │ │ │ │ Generate │ │ │ │ │ Space Generator ├──────────────┐ │ │ │ │ │ │ │ │ │ │ │ └─────────────────────┘ ▼ │ │ │ │ Design Space │ │ │ │ ┌─────────────────────┐ │ │ │ │ │ Generate │ │ Pretuning │ │ │ │ │ ┌───────────┤ Search Strategy │◄─────────────┘ │ │ │ │ │ │ │ │ ├──┘ │ │ └─────────────────────┘ ├──┘ └────┼─────────────────────────────────────────────────────────┘ │ │ ┌────┼──────────────── Managed By Task Scheduler ─────────────────────┐ │ │ ┌───────────┐ │ │ │ Send to │ │ Send to │ │ ▼ ┌─────────────►│ Builder ├──────────┐ │ │ Measure Candidate │ Builder │ │ Runner │ │ │ │ │ └───────────┘ │ │ │ │ ┌────────────┴────────┐ │ │ │ │ │ │ ┌───────────┐ │ │ │ └────►│ Task Scheduler │ │ │ │ │ │ │ │ │ Runner │◄─────────┘ │ │ └─────────────────────┘ │ │ │ │ ▲ └─────┬─────┘ │ │ │ │ │ │ └─── Runner Future ◄────┘ │ └─────────────────────────────────────────────────────────────────────┘
◆ ~TaskSchedulerNode()
virtual tvm::meta_schedule::TaskSchedulerNode::~TaskSchedulerNode |
( |
| ) |
|
|
virtualdefault |
◆ JoinRunningTask()
virtual Array<RunnerResult> tvm::meta_schedule::TaskSchedulerNode::JoinRunningTask |
( |
int |
task_id | ) |
|
|
virtual |
◆ NextTaskId()
virtual int tvm::meta_schedule::TaskSchedulerNode::NextTaskId |
( |
| ) |
|
|
pure virtual |
◆ PrintTuningStatistics()
void tvm::meta_schedule::TaskSchedulerNode::PrintTuningStatistics |
( |
| ) |
|
Print out a human-readable format of the tuning statistics.
◆ TerminateTask()
void tvm::meta_schedule::TaskSchedulerNode::TerminateTask |
( |
int |
task_id | ) |
|
Terminate a task.
- Parameters
-
task_id | The id of the task to be terminated |
◆ TouchTask()
void tvm::meta_schedule::TaskSchedulerNode::TouchTask |
( |
int |
task_id | ) |
|
Touch the task and update its status.
- Parameters
-
task_id | The task id to be checked. |
◆ Tune()
Jointly tune a given list of tasks.
- Parameters
-
tasks | The tasks to be tuned |
task_weights | The weight of each task |
max_trials_global | The maximum number of trials to be performed globally |
max_trials_per_task | The maximum number of trials to be performed for each task |
num_trials_per_iter | The number of trials to be performed in each iteration |
builder | The MetaSchedule builder |
runner | The MetaSchedule runner |
measure_callbacks | The callbacks to be called after each measurement |
database | The database used in tuning |
cost_model | The cost model used in tuning |
Reimplemented in tvm::meta_schedule::PyTaskSchedulerNode.
◆ TVM_DECLARE_BASE_OBJECT_INFO()
◆ VisitAttrs()
◆ _type_key
constexpr const char* tvm::meta_schedule::TaskSchedulerNode::_type_key = "meta_schedule.TaskScheduler" |
|
staticconstexpr |
◆ cost_model_
The cost model used in tuning.
◆ database_
The database used in tuning.
◆ logger
PackedFunc tvm::meta_schedule::TaskSchedulerNode::logger |
The tuning task's logging function.
◆ measure_callbacks_
The list of measure callbacks of the scheduler.
◆ remaining_tasks_
int tvm::meta_schedule::TaskSchedulerNode::remaining_tasks_ |
The number of remaining tasks to be tuned.
◆ tasks_
The documentation for this class was generated from the following file: