24 #ifndef TVM_RUNTIME_VM_EXECUTABLE_H_
25 #define TVM_RUNTIME_VM_EXECUTABLE_H_
36 #include <unordered_map>
261 const char*
type_key() const final {
return "VMExecutable"; }
272 int host_device_index = -1;
305 void SaveVirtualDevicesSection(dmlc::Stream* strm);
312 void SaveGlobalSection(dmlc::Stream* strm);
319 void SaveConstantSection(dmlc::Stream* stream);
326 void LoadConstantSection(dmlc::Stream* stream);
333 void SavePrimitiveOpNames(dmlc::Stream* strm);
340 void SaveCodeSection(dmlc::Stream* strm);
347 void LoadVirtualDevicesSection(dmlc::Stream* strm);
354 void LoadGlobalSection(dmlc::Stream* strm);
361 void LoadPrimitiveOpNames(dmlc::Stream* strm);
368 void LoadCodeSection(dmlc::Stream* strm);
The bytecode for Relay virtual machine.
Map container of NodeRef->NodeRef in DSL graph. Map implements copy on write semantics,...
Definition: map.h:1271
Base container of module.
Definition: module.h:142
Module container of TVM.
Definition: module.h:79
A custom smart pointer for Object.
Definition: object.h:358
Packed function is a type-erased function. The arguments are passed by packed format.
Definition: packed_func.h:138
Reference to string objects.
Definition: string.h:98
The executable emitted by the VM compiler.
Definition: executable.h:57
void SetLib(const runtime::Module &lib)
Set the lib module in an executable.
std::map< Index, Map< String, ObjectRef > > op_attrs
The structural hashes of the operators in this function.
Definition: executable.h:293
void LoadLateBoundConstantsFromFile(const std::string &path)
As for LoadLateBoundConstantsFromStream, but load from file at path.
PackedFunc GetFunction(const String &name, const ObjectPtr< Object > &sptr_to_self) final
Get a PackedFunc from an executable module.
std::vector< String > late_bound_constant_names
For each constant index the name of the late-bound constant, or null if constant is immediate....
Definition: executable.h:284
void LoadLateBoundConstantsFromStream(dmlc::Stream *stream)
Restores the late-bound constants for the executable (if any) from given byte-stream.
std::string GetVirtualDevices() const
Returns a description of all the (virtual) devices in the executable in human-readable format....
std::vector< Index > const_device_indexes
The index of the device holding each constant.
Definition: executable.h:297
static runtime::Module Load(const std::string &code, const runtime::Module lib)
Load the saved VM executable.
std::string Stats() const
Print the detailed statistics of the given code, i.e. number of globls and constants,...
std::vector< ObjectRef > constants
The global constant array.
Definition: executable.h:279
int GetFunctionArity(std::string func) const
Get the arity of the VMFunction.
void SaveToBinary(dmlc::Stream *stream) final
Write the Executable to the binary stream in serialized form.
std::string GetPrimitives() const
Returns a description of all the 'primitive' (ie PackedFuncs) in the executable in human-readable for...
void MoveLateBoundConstantsToStream(dmlc::Stream *stream, size_t byte_limit)
Returns the late-bound constants for the executable (if any) as a byte-stream. Leaves the executable'...
int GetPropertyMask() const final
Get the property of the runtime module .
Definition: executable.h:70
virtual ~Executable()
Definition: executable.h:259
std::unordered_map< std::string, Index > global_map
A map from globals (as strings) to their index in the Relay function map.
Definition: executable.h:287
void LoadLateBoundConstantsFromMap(Map< String, NDArray > map)
Restores the late-bound constants for the executable (if any) from given map.
void SaveToFile(const String &path, const String &format) final
Write the Executable to the provided path as a file containing its serialized content.
runtime::Module GetLib() const
Get the lib module in an executable. Users have the flexibility to call export_library from the front...
std::vector< Device > virtual_devices
The (compile-time, virtual) devices corresponding to each device index. Currently we only support at ...
Definition: executable.h:267
std::string GetFunctionParameterName(std::string func, uint32_t index) const
Get the parameter name given the function name and parameter index.
std::unordered_map< std::string, Index > primitive_map
A mapping from the packed function's global name (as string) to the index that corresponds to the pos...
Definition: executable.h:291
void MoveLateBoundConstantsToFile(const std::string &path, size_t byte_limit)
As for MoveLateBoundConstantsToStream, but save to file at path.
Map< String, NDArray > GetLateBoundConstants(size_t byte_limit)
Get a map of all constants with larger that byte_limit in size.
const char * type_key() const final
Definition: executable.h:261
std::string GetBytecode() const
Get the serialized form of the functions. This is essentially bytecode serialization.
std::vector< VMFunction > functions
The virtual machine's function table.
Definition: executable.h:295
std::string GetConstants() const
Returns a description of all the constants in the executable in human-readable format....
TVMByteArray Save()
Serialize the executable into global section, constant section, and code section. This object must ou...
const VMFunction & GetVMFunctionWithName(const std::string &func_name) const
Get VMFunction.
Runtime Map container types.
@ kBinarySerializable
kBinarySerializable we can serialize the module to the stream of bytes. CUDA/OpenCL/JSON runtime are ...
Definition: module.h:56
runtime implementation for LibTorch/TorchScript.
Definition: analyzer.h:36
A managed object in the TVM runtime.
Type-erased function used across TVM API.
Runtime container of the functions generated by TVM, This is used to support dynamically link,...
Runtime String container types.
Byte array type used to pass in byte array When kTVMBytes is used as data type.
Definition: c_runtime_api.h:221
A representation of a Relay function in the VM.
Definition: vm.h:77