tvm
Public Member Functions | Public Attributes | Static Public Attributes | Protected Attributes | List of all members
tvm::auto_scheduler::SearchPolicyNode Class Referenceabstract

The base class of search policies. More...

#include <search_policy.h>

Inheritance diagram for tvm::auto_scheduler::SearchPolicyNode:
Collaboration diagram for tvm::auto_scheduler::SearchPolicyNode:

Public Member Functions

void VisitAttrs (AttrVisitor *v)
 
virtual State Search (int num_measure_trials, int early_stopping, int num_measures_per_round, ProgramMeasurer measurer)=0
 Do schedule search for a task. Takes the SearchTask as input and returns the best state found during the search. More...
 
virtual std::pair< Array< MeasureInput >, Array< MeasureResult > > ContinueSearchOneRound (int num_measure, ProgramMeasurer measurer)=0
 Continue the search by doing an additional search round. More...
 
void PreloadMeasuredStates (const String &log_file)
 Preload measured states from a log file to resume the state of the search policy. More...
 
void RunCallbacks (const Array< SearchCallback > &callbacks)
 Call SearchCallback with the current SearchPolicyNode. More...
 
 TVM_DECLARE_BASE_OBJECT_INFO (SearchPolicyNode, 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

SearchTask search_task
 The current search task. More...
 
int verbose
 Verbose level to control the screen output during schedule search. 0 for silent, 1 to output state & measure information during search process. More...
 

Static Public Attributes

static constexpr const char * _type_key = "auto_scheduler.SearchPolicy"
 
- 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
 

Protected Attributes

std::unordered_set< std::string > measured_states_set_
 The set of already measured states. We store the string format of a state for redundancy check. This is used to make sure a measured state will never be measured again. More...
 
std::vector< Statemeasured_states_vector_
 The array of already measured states. The good states can be used as the initial population in evolutionary search. More...
 
std::vector< float > measured_states_throughputs_
 The throughputs of already measured states. 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...
 

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

Detailed Description

The base class of search policies.

Member Function Documentation

◆ ContinueSearchOneRound()

virtual std::pair<Array<MeasureInput>, Array<MeasureResult> > tvm::auto_scheduler::SearchPolicyNode::ContinueSearchOneRound ( int  num_measure,
ProgramMeasurer  measurer 
)
pure virtual

Continue the search by doing an additional search round.

Parameters
num_measureThe number of measurements
measurerThe measurer to measure programs
Returns
The measurement records for measurements in this search round

◆ PreloadMeasuredStates()

void tvm::auto_scheduler::SearchPolicyNode::PreloadMeasuredStates ( const String log_file)

Preload measured states from a log file to resume the state of the search policy.

Parameters
log_fileThe name of the record log file.

◆ RunCallbacks()

void tvm::auto_scheduler::SearchPolicyNode::RunCallbacks ( const Array< SearchCallback > &  callbacks)

Call SearchCallback with the current SearchPolicyNode.

Parameters
callbacksSearchCallback to be called.

◆ Search()

virtual State tvm::auto_scheduler::SearchPolicyNode::Search ( int  num_measure_trials,
int  early_stopping,
int  num_measures_per_round,
ProgramMeasurer  measurer 
)
pure virtual

Do schedule search for a task. Takes the SearchTask as input and returns the best state found during the search.

Parameters
num_measure_trialsThe number of total measurement trials.
early_stoppingStops the tuning early if no improvement after n measurements.
num_measures_per_roundThe number of programs to be measured at each search round.
measurerA ProgramMeasurer to build and measure programs
Returns
The best state found.

◆ TVM_DECLARE_BASE_OBJECT_INFO()

tvm::auto_scheduler::SearchPolicyNode::TVM_DECLARE_BASE_OBJECT_INFO ( SearchPolicyNode  ,
Object   
)

◆ VisitAttrs()

void tvm::auto_scheduler::SearchPolicyNode::VisitAttrs ( AttrVisitor v)
inline

Member Data Documentation

◆ _type_key

constexpr const char* tvm::auto_scheduler::SearchPolicyNode::_type_key = "auto_scheduler.SearchPolicy"
staticconstexpr

◆ measured_states_set_

std::unordered_set<std::string> tvm::auto_scheduler::SearchPolicyNode::measured_states_set_
protected

The set of already measured states. We store the string format of a state for redundancy check. This is used to make sure a measured state will never be measured again.

◆ measured_states_throughputs_

std::vector<float> tvm::auto_scheduler::SearchPolicyNode::measured_states_throughputs_
protected

The throughputs of already measured states.

◆ measured_states_vector_

std::vector<State> tvm::auto_scheduler::SearchPolicyNode::measured_states_vector_
protected

The array of already measured states. The good states can be used as the initial population in evolutionary search.

◆ search_task

SearchTask tvm::auto_scheduler::SearchPolicyNode::search_task

The current search task.

◆ verbose

int tvm::auto_scheduler::SearchPolicyNode::verbose

Verbose level to control the screen output during schedule search. 0 for silent, 1 to output state & measure information during search process.


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