tvm
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
tvm::meta_schedule::TaskSchedulerNode Class Referenceabstract

The abstract interface of task schedulers. More...

#include <task_scheduler.h>

Inheritance diagram for tvm::meta_schedule::TaskSchedulerNode:
Collaboration diagram for tvm::meta_schedule::TaskSchedulerNode:

Public Member Functions

virtual ~TaskSchedulerNode ()=default
 The default destructor. More...
 
virtual int NextTaskId ()=0
 Fetch the next task id. More...
 
virtual Array< RunnerResultJoinRunningTask (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 Public Member Functions

static void RegisterReflection ()
 

Public Attributes

ffi::Function logger
 The tuning task's logging function. More...
 
Array< TaskRecordtasks_
 Records for each task. More...
 
Array< MeasureCallbackmeasure_callbacks_
 The list of measure callbacks of the scheduler. More...
 
Optional< Databasedatabase_
 The database used in tuning. More...
 
Optional< CostModelcost_model_
 The cost model used in tuning. More...
 
int remaining_tasks_
 The number of remaining tasks to be tuned. More...
 

Static Public Attributes

static constexpr const char * _type_key = "meta_schedule.TaskScheduler"
 

Detailed Description

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 <----—+ | +------------------------------------------------------------------—+

Constructor & Destructor Documentation

◆ ~TaskSchedulerNode()

virtual tvm::meta_schedule::TaskSchedulerNode::~TaskSchedulerNode ( )
virtualdefault

The default destructor.

Member Function Documentation

◆ JoinRunningTask()

virtual Array<RunnerResult> tvm::meta_schedule::TaskSchedulerNode::JoinRunningTask ( int  task_id)
virtual

Wait until the task is finished.

Parameters
task_idThe task id to be joined.
Returns
The results from the runner.

Reimplemented in tvm::meta_schedule::PyTaskSchedulerNode.

◆ NextTaskId()

virtual int tvm::meta_schedule::TaskSchedulerNode::NextTaskId ( )
pure virtual

Fetch the next task id.

Returns
The next task id.

Implemented in tvm::meta_schedule::PyTaskSchedulerNode.

◆ 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_idThe 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_idThe 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
tasksThe tasks to be tuned
task_weightsThe weight of each task
max_trials_globalThe maximum number of trials to be performed globally
max_trials_per_taskThe maximum number of trials to be performed for each task
num_trials_per_iterThe number of trials to be performed in each iteration
builderThe MetaSchedule builder
runnerThe MetaSchedule runner
measure_callbacksThe callbacks to be called after each measurement
databaseThe database used in tuning
cost_modelThe 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   
)

Member Data Documentation

◆ _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_

Records for each task.


The documentation for this class was generated from the following file: