tvm
Public Member Functions | Static Public Member Functions | List of all members
tvm::meta_schedule::Database Class Reference

Managed reference to DatabaseNode. More...

#include <database.h>

Inheritance diagram for tvm::meta_schedule::Database:
Collaboration diagram for tvm::meta_schedule::Database:

Public Member Functions

void EnterWithScope ()
 Entering the scope of the context manager. More...
 
void ExitWithScope ()
 Exiting the scope of the context manager. More...
 
 TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS (Database, runtime::ObjectRef, DatabaseNode)
 
- Public Member Functions inherited from tvm::runtime::ObjectRef
 ObjectRef ()=default
 default constructor More...
 
 ObjectRef (ObjectPtr< Object > data)
 Constructor from existing object ptr. More...
 
bool same_as (const ObjectRef &other) const
 Comparator. More...
 
bool operator== (const ObjectRef &other) const
 Comparator. More...
 
bool operator!= (const ObjectRef &other) const
 Comparator. More...
 
bool operator< (const ObjectRef &other) const
 Comparator. More...
 
bool defined () const
 
const Objectget () const
 
const Objectoperator-> () const
 
bool unique () const
 
int use_count () const
 
template<typename ObjectType , typename = std::enable_if_t<std::is_base_of_v<Object, ObjectType>>>
const ObjectType * as () const
 Try to downcast the internal Object to a raw pointer of a corresponding type. More...
 
template<typename ObjectRefType , typename = std::enable_if_t<std::is_base_of_v<ObjectRef, ObjectRefType>>>
Optional< ObjectRefType > as () const
 Try to downcast the ObjectRef to a Optional<T> of the requested type. More...
 

Static Public Member Functions

static Database MemoryDatabase (String mod_eq_name="structural")
 An in-memory database. More...
 
static Database ScheduleFnDatabase (runtime::TypedPackedFunc< bool(tir::Schedule)> schedule_fn, String mod_eq_name="structural")
 A database for injecting handcrafted schedule functions. More...
 
static Database JSONDatabase (String path_workload, String path_tuning_record, bool allow_missing, String mod_eq_name="structural")
 Create a default database that uses JSON file for tuning records. More...
 
static Database UnionDatabase (Array< Database, void > databases)
 A database composed of multiple databases, allowing users to guide IR rewriting using combined knowledge of those databases. To each query, it returns the best record among all the databases given. More...
 
static Database OrderedUnionDatabase (Array< Database, void > databases)
 A database composed of multiple databases, allowing users to guide IR rewriting using combined knowledge of those databases. To each query, it returns the record from the first database that responds to the query. More...
 
static Database PyDatabase (PyDatabaseNode::FHasWorkload f_has_workload, PyDatabaseNode::FCommitWorkload f_commit_workload, PyDatabaseNode::FCommitTuningRecord f_commit_tuning_record, PyDatabaseNode::FGetTopK f_get_top_k, PyDatabaseNode::FGetAllTuningRecords f_get_all_tuning_records, PyDatabaseNode::FQueryTuningRecord f_query_tuning_record, PyDatabaseNode::FQuerySchedule f_query_schedule, PyDatabaseNode::FQueryIRModule f_query_ir_module, PyDatabaseNode::FSize f_size, String mod_eq_name="structural")
 Create a database with customized methods on the python-side. More...
 
static Optional< DatabaseCurrent ()
 

Additional Inherited Members

- Public Types inherited from tvm::runtime::ObjectRef
using ContainerType = Object
 type indicate the container type. More...
 
- Static Public Attributes inherited from tvm::runtime::ObjectRef
static constexpr bool _type_is_nullable = true
 
- Protected Member Functions inherited from tvm::runtime::ObjectRef
Objectget_mutable () const
 
- Static Protected Member Functions inherited from tvm::runtime::ObjectRef
template<typename T >
static T DowncastNoCheck (ObjectRef ref)
 Internal helper function downcast a ref without check. More...
 
static void FFIClearAfterMove (ObjectRef *ref)
 Clear the object ref data field without DecRef after we successfully moved the field. More...
 
template<typename ObjectType >
static ObjectPtr< ObjectType > GetDataPtr (const ObjectRef &ref)
 Internal helper function get data_ as ObjectPtr of ObjectType. More...
 
- Protected Attributes inherited from tvm::runtime::ObjectRef
ObjectPtr< Objectdata_
 Internal pointer that backs the reference. More...
 

Detailed Description

Managed reference to DatabaseNode.

See also
DatabaseNode

Member Function Documentation

◆ Current()

static Optional<Database> tvm::meta_schedule::Database::Current ( )
static
Returns
The current Database in the scope.

◆ EnterWithScope()

void tvm::meta_schedule::Database::EnterWithScope ( )

Entering the scope of the context manager.

◆ ExitWithScope()

void tvm::meta_schedule::Database::ExitWithScope ( )

Exiting the scope of the context manager.

◆ JSONDatabase()

static Database tvm::meta_schedule::Database::JSONDatabase ( String  path_workload,
String  path_tuning_record,
bool  allow_missing,
String  mod_eq_name = "structural" 
)
static

Create a default database that uses JSON file for tuning records.

Parameters
path_workloadThe path to the workload table.
path_tuning_recordThe path to the database table.
allow_missingWhether to create new file when the given path is not found.
mod_eq_nameA string to specify the module equality testing and hashing method.

◆ MemoryDatabase()

static Database tvm::meta_schedule::Database::MemoryDatabase ( String  mod_eq_name = "structural")
static

An in-memory database.

Parameters
mod_eq_nameA string to specify the module equality testing and hashing method.

◆ OrderedUnionDatabase()

static Database tvm::meta_schedule::Database::OrderedUnionDatabase ( Array< Database, void >  databases)
static

A database composed of multiple databases, allowing users to guide IR rewriting using combined knowledge of those databases. To each query, it returns the record from the first database that responds to the query.

Parameters
databasesThe database to be subsetted.
Returns
The subsetted database.

◆ PyDatabase()

static Database tvm::meta_schedule::Database::PyDatabase ( PyDatabaseNode::FHasWorkload  f_has_workload,
PyDatabaseNode::FCommitWorkload  f_commit_workload,
PyDatabaseNode::FCommitTuningRecord  f_commit_tuning_record,
PyDatabaseNode::FGetTopK  f_get_top_k,
PyDatabaseNode::FGetAllTuningRecords  f_get_all_tuning_records,
PyDatabaseNode::FQueryTuningRecord  f_query_tuning_record,
PyDatabaseNode::FQuerySchedule  f_query_schedule,
PyDatabaseNode::FQueryIRModule  f_query_ir_module,
PyDatabaseNode::FSize  f_size,
String  mod_eq_name = "structural" 
)
static

Create a database with customized methods on the python-side.

Parameters
f_has_workloadThe packed function of HasWorkload.
f_commit_workloadThe packed function of CommitWorkload.
f_commit_tuning_recordThe packed function of CommitTuningRecord.
f_get_top_kThe packed function of GetTopK.
f_get_all_tuning_recordsThe packed function of GetAllTuningRecords.
f_query_tuning_recordThe packed function of QueryTuningRecord.
f_query_scheduleThe packed function of QuerySchedule.
f_query_ir_moduleThe packed function of QueryIRModule.
f_sizeThe packed function of Size.
mod_eq_nameA string to specify the module equality testing and hashing method.
Returns
The created database.

◆ ScheduleFnDatabase()

static Database tvm::meta_schedule::Database::ScheduleFnDatabase ( runtime::TypedPackedFunc< bool(tir::Schedule)>  schedule_fn,
String  mod_eq_name = "structural" 
)
static

A database for injecting handcrafted schedule functions.

Parameters
schedule_fnThe function to do scheduling, which takes a TIR schedule, and returns a boolean indicating if the schedule is successful.
mod_eq_nameA string to specify the module equality testing and hashing method.

◆ TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS()

tvm::meta_schedule::Database::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS ( Database  ,
runtime::ObjectRef  ,
DatabaseNode   
)

◆ UnionDatabase()

static Database tvm::meta_schedule::Database::UnionDatabase ( Array< Database, void >  databases)
static

A database composed of multiple databases, allowing users to guide IR rewriting using combined knowledge of those databases. To each query, it returns the best record among all the databases given.

Parameters
databasesThe list of databases to be combined.
Returns
The combined database.

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