tvm
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
tvm::meta_schedule::PyTaskSchedulerNode Class Reference

The task scheduler with customized methods on the python-side. More...

#include <task_scheduler.h>

Inheritance diagram for tvm::meta_schedule::PyTaskSchedulerNode:
Collaboration diagram for tvm::meta_schedule::PyTaskSchedulerNode:

Public Types

using FNextTaskId = ffi::TypedFunction< int()>
 The function type of NextTaskId method. More...
 
using FJoinRunningTask = ffi::TypedFunction< Array< RunnerResult >(int)>
 The function type of JoinRunningTask method. More...
 
using FTune = ffi::TypedFunction< void(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)>
 The function type of Tune method. More...
 

Public Member Functions

int NextTaskId () final
 Fetch the next task id. More...
 
Array< RunnerResultJoinRunningTask (int task_id) final
 Wait until the task is finished. More...
 
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) final
 Jointly tune a given list of tasks. More...
 
 TVM_DECLARE_FINAL_OBJECT_INFO (PyTaskSchedulerNode, TaskSchedulerNode)
 
- Public Member Functions inherited from tvm::meta_schedule::TaskSchedulerNode
virtual ~TaskSchedulerNode ()=default
 The default destructor. 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 ()
 
- Static Public Member Functions inherited from tvm::meta_schedule::TaskSchedulerNode
static void RegisterReflection ()
 

Public Attributes

FNextTaskId f_next_task_id
 The packed function to the NextTaskId function. More...
 
FJoinRunningTask f_join_running_task
 The packed function to the JoinRunningTask function. More...
 
FTune f_tune
 The packed function to the Tune function. More...
 
- Public Attributes inherited from tvm::meta_schedule::TaskSchedulerNode
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.PyTaskScheduler"
 
- Static Public Attributes inherited from tvm::meta_schedule::TaskSchedulerNode
static constexpr const char * _type_key = "meta_schedule.TaskScheduler"
 

Detailed Description

The task scheduler with customized methods on the python-side.

Member Typedef Documentation

◆ FJoinRunningTask

The function type of JoinRunningTask method.

Parameters
task_idThe task id to be joined.

◆ FNextTaskId

using tvm::meta_schedule::PyTaskSchedulerNode::FNextTaskId = ffi::TypedFunction<int()>

The function type of NextTaskId method.

Returns
The next task id.

◆ FTune

using tvm::meta_schedule::PyTaskSchedulerNode::FTune = ffi::TypedFunction<void(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)>

The function type of Tune method.

Member Function Documentation

◆ JoinRunningTask()

Array<RunnerResult> tvm::meta_schedule::PyTaskSchedulerNode::JoinRunningTask ( int  task_id)
finalvirtual

Wait until the task is finished.

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

Reimplemented from tvm::meta_schedule::TaskSchedulerNode.

◆ NextTaskId()

int tvm::meta_schedule::PyTaskSchedulerNode::NextTaskId ( )
finalvirtual

Fetch the next task id.

Returns
The next task id.

Implements tvm::meta_schedule::TaskSchedulerNode.

◆ RegisterReflection()

static void tvm::meta_schedule::PyTaskSchedulerNode::RegisterReflection ( )
inlinestatic

◆ Tune()

void tvm::meta_schedule::PyTaskSchedulerNode::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 
)
finalvirtual

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 from tvm::meta_schedule::TaskSchedulerNode.

◆ TVM_DECLARE_FINAL_OBJECT_INFO()

tvm::meta_schedule::PyTaskSchedulerNode::TVM_DECLARE_FINAL_OBJECT_INFO ( PyTaskSchedulerNode  ,
TaskSchedulerNode   
)

Member Data Documentation

◆ _type_key

constexpr const char* tvm::meta_schedule::PyTaskSchedulerNode::_type_key = "meta_schedule.PyTaskScheduler"
staticconstexpr

◆ f_join_running_task

FJoinRunningTask tvm::meta_schedule::PyTaskSchedulerNode::f_join_running_task

The packed function to the JoinRunningTask function.

◆ f_next_task_id

FNextTaskId tvm::meta_schedule::PyTaskSchedulerNode::f_next_task_id

The packed function to the NextTaskId function.

◆ f_tune

FTune tvm::meta_schedule::PyTaskSchedulerNode::f_tune

The packed function to the Tune function.


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