The abstract interface of task schedulers.
More...
#include <task_scheduler.h>
|
virtual | ~TaskSchedulerNode ()=default |
| The default destructor. More...
|
|
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) |
|
|
static constexpr const char * | _type_key = "meta_schedule.TaskScheduler" |
|
The abstract interface of task schedulers.
- Note
- The relationship between SpaceGenerator and other classes are as follows: +-----------------------------------------------------------—+ +–+--------------------------------------------------------—+ | +–+---------------— Tune Context --------------------------—+ | | | +------------------—+ | | | | | | Generate | | | | | Space Generator +-----------—+ | | | | | | | | | | | +------------------—+ v | | | | Design Space | | | | +------------------—+ | | | | | Generate | | Pretuning | | | | | +--------—+ Search Strategy |<----------—+ | | | | | | | | +–+ | | +------------------—+ +–+ +-—+-------------------------------------------------------—+ | | +-—+-------------— Managed By Task Scheduler ------------------—+ | | +--------—+ | | | Send to | | Send to | | v +----------—+| 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.
◆ RegisterReflection()
static void tvm::meta_schedule::TaskSchedulerNode::RegisterReflection |
( |
| ) |
|
|
inlinestatic |
◆ 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()
virtual void tvm::meta_schedule::TaskSchedulerNode::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 |
|
) |
| |
|
virtual |
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()
tvm::meta_schedule::TaskSchedulerNode::TVM_DECLARE_BASE_OBJECT_INFO |
( |
TaskSchedulerNode |
, |
|
|
Object |
|
|
) |
| |
◆ _type_key
constexpr const char* tvm::meta_schedule::TaskSchedulerNode::_type_key = "meta_schedule.TaskScheduler" |
|
staticconstexpr |
◆ cost_model_
Optional<CostModel> tvm::meta_schedule::TaskSchedulerNode::cost_model_ |
The cost model used in tuning.
◆ database_
Optional<Database> tvm::meta_schedule::TaskSchedulerNode::database_ |
The database used in tuning.
◆ logger
ffi::Function tvm::meta_schedule::TaskSchedulerNode::logger |
The tuning task's logging function.
◆ measure_callbacks_
Array<MeasureCallback> tvm::meta_schedule::TaskSchedulerNode::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_
Array<TaskRecord> tvm::meta_schedule::TaskSchedulerNode::tasks_ |
The documentation for this class was generated from the following file: