tvm
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...
 
void VisitAttrs (tvm::AttrVisitor *v)
 
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)
 
- Public Member Functions inherited from tvm::runtime::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)
 
Objectoperator= (const Object &other)
 
Objectoperator= (Object &&other)
 

Public Attributes

PackedFunc 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"
 
- Static Public Attributes inherited from tvm::runtime::Object
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

- Public Types inherited from tvm::runtime::Object
typedef void(* FDeleter) (Object *self)
 Object deleter. More...
 
using RefCounterType = std::atomic< int32_t >
 
- Static Public Member Functions inherited from tvm::runtime::Object
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 ()
 
- Protected Member Functions inherited from tvm::runtime::Object
void IncRef ()
 developer function, increases reference counter. More...
 
void DecRef ()
 developer function, decrease reference counter. More...
 
- Static Protected Member Functions inherited from tvm::runtime::Object
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...
 
- Protected Attributes inherited from tvm::runtime::Object
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...
 

Detailed Description

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 ◄────┘ │ └─────────────────────────────────────────────────────────────────────┘

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.

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

◆ VisitAttrs()

void tvm::meta_schedule::TaskSchedulerNode::VisitAttrs ( tvm::AttrVisitor v)
inline

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

PackedFunc 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: