tvm
Public Types | 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 = runtime::TypedPackedFunc< int()>
 The function type of NextTaskId method. More...
 
using FJoinRunningTask = runtime::TypedPackedFunc< Array< RunnerResult >(int)>
 The function type of JoinRunningTask method. More...
 
using FTune = runtime::TypedPackedFunc< 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 Types inherited from tvm::runtime::Object
typedef void(* FDeleter) (Object *self)
 Object deleter. More...
 
using RefCounterType = std::atomic< int32_t >
 

Public Member Functions

void VisitAttrs (tvm::AttrVisitor *v)
 
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 VisitAttrs (tvm::AttrVisitor *v)
 
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

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
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.PyTaskScheduler"
 
- Static Public Attributes inherited from tvm::meta_schedule::TaskSchedulerNode
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

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

The function type of NextTaskId method.

Returns
The next task id.

◆ FTune

using tvm::meta_schedule::PyTaskSchedulerNode::FTune = runtime::TypedPackedFunc<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.

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

◆ VisitAttrs()

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

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: