26 #ifndef TVM_RUNTIME_MODULE_H_ 27 #define TVM_RUNTIME_MODULE_H_ 38 #include <unordered_map> 85 TVM_DLL
static Module LoadFromFile(
const std::string& file_name,
const std::string& format =
"");
121 virtual const char* type_key()
const = 0;
146 virtual void SaveToFile(
const std::string& file_name,
const std::string& format);
154 virtual void SaveToBinary(dmlc::Stream* stream);
160 virtual std::string GetSource(
const std::string& format =
"");
165 virtual std::string GetFormat();
191 const PackedFunc* GetFuncFromEnv(
const std::string& name);
193 const std::vector<Module>&
imports()
const {
return imports_; }
209 virtual bool IsDSOExportable()
const;
220 virtual bool ImplementsFunction(
const String& name,
bool query_imports =
false);
224 static constexpr
const char* _type_key =
"runtime.Module";
231 friend class ModuleInternal;
237 std::unordered_map<std::string, std::shared_ptr<PackedFunc>> import_cache_;
285 out <<
"Module(type_key= ";
296 #endif // TVM_RUNTIME_MODULE_H_ std::ostream & operator<<(std::ostream &os, const ObjectRef &n)
Definition: repr_printer.h:69
constexpr const char * tvm_set_device
global function to set device
Definition: module.h:259
PackedFunc GetFunction(const std::string &name, bool query_imports=false)
Get packed function from current module by name.
Definition: packed_func.h:1936
void Import(Module other)
Import another module into this module.
Definition: module.h:276
A custom smart pointer for Object.
Definition: object.h:358
runtime::Module.
Definition: object.h:62
constexpr const char * tvm_lookup_linked_param
A PackedFunc that looks up linked parameters by storage_id.
Definition: module.h:269
bool RuntimeEnabled(const std::string &target)
Check if runtime module is enabled for target.
Runtime String container types.
runtime implementation for LibTorch/TorchScript.
Definition: analyzer.h:36
virtual const char * type_key() const =0
Runtime memory management.
base class of all object containers.
Definition: object.h:167
constexpr const char * tvm_dev_mblob_nbytes
Number of bytes of device module blob.
Definition: module.h:257
friend class ModuleNode
Definition: module.h:88
constexpr const char * tvm_global_barrier_state
Auxiliary counter to global barrier.
Definition: module.h:261
constexpr const char * tvm_module_main
Placeholder for the module's entry function.
Definition: module.h:265
constexpr const char * tvm_prepare_global_barrier
Prepare the global barrier before kernels that uses global barrier.
Definition: module.h:263
std::vector< Module > imports_
The modules this module depend on.
Definition: module.h:233
Reference to string objects.
Definition: string.h:97
Base class of all object reference.
Definition: object.h:511
Base container of module.
Definition: module.h:113
A managed object in the TVM runtime.
#define TVM_DECLARE_FINAL_OBJECT_INFO(TypeName, ParentType)
helper macro to declare type information in a final class.
Definition: object.h:671
const std::vector< Module > & imports() const
Definition: module.h:193
ModuleNode * operator->()
Definition: module.h:278
Module container of TVM.
Definition: module.h:50
constexpr const char * tvm_dev_mblob
Global variable to store device module blob.
Definition: module.h:255
static Module LoadFromFile(const std::string &file_name, const std::string &format="")
Load a module from file.
constexpr const char * tvm_param_prefix
Prefix for parameter symbols emitted into the main program.
Definition: module.h:267
Packed function is a type-erased function. The arguments are passed by packed format.
Definition: packed_func.h:138
constexpr const char * tvm_entrypoint_suffix
Model entrypoint generated as an interface to the AOT function outside of TIR.
Definition: module.h:271
Module()
Definition: module.h:52
Object * get_mutable() const
Definition: object.h:576
Module(ObjectPtr< Object > n)
Definition: module.h:54
Type-erased function used across TVM API.
constexpr const char * tvm_get_c_metadata
A PackedFunc that retrieves exported metadata.
Definition: module.h:251
constexpr const char * tvm_module_ctx
Global variable to store module context.
Definition: module.h:253