ExecuTorch Runtime API Reference¶
The ExecuTorch C++ API provides an on-device execution framework for exported PyTorch models.
For a tutorial style introduction to the runtime API, check out the runtime tutorial and its simplified version.
For detailed information on how APIs evolve and the deprecation process, please refer to the ExecuTorch API Life Cycle and Deprecation Policy.
Model Loading and Execution¶
Warning
doxygenclass: Cannot find class “torch::executor::DataLoader” in doxygen xml output for project “ExecuTorch” from directory: ../build/xml/
Warning
doxygenclass: Cannot find class “torch::executor::MemoryAllocator” in doxygen xml output for project “ExecuTorch” from directory: ../build/xml/
Warning
doxygenclass: Cannot find class “torch::executor::HierarchicalAllocator” in doxygen xml output for project “ExecuTorch” from directory: ../build/xml/
Warning
doxygenclass: Cannot find class “torch::executor::MemoryManager” in doxygen xml output for project “ExecuTorch” from directory: ../build/xml/
Warning
doxygenclass: Cannot find class “torch::executor::Program” in doxygen xml output for project “ExecuTorch” from directory: ../build/xml/
Warning
doxygenclass: Cannot find class “torch::executor::Method” in doxygen xml output for project “ExecuTorch” from directory: ../build/xml/
Warning
doxygenclass: Cannot find class “torch::executor::MethodMeta” in doxygen xml output for project “ExecuTorch” from directory: ../build/xml/
Values¶
Warning
doxygenstruct: Cannot find class “torch::executor::EValue” in doxygen xml output for project “ExecuTorch” from directory: ../build/xml/
-
class Tensor¶
A minimal Tensor type whose API is a source compatible subset of at::Tensor.
NOTE: Instances of this class do not own the TensorImpl given to it, which means that the caller must guarantee that the TensorImpl lives longer than any Tensor instances that point to it.
See the documention on TensorImpl for details about the return/parameter types used here and how they relate to at::Tensor.
Public Types
-
using DimOrderType = TensorImpl::DimOrderType¶
The type used for elements of
dim_order()
.
Public Functions
-
inline TensorImpl *unsafeGetTensorImpl() const¶
Returns a pointer to the underlying TensorImpl.
NOTE: Clients should be wary of operating on the TensorImpl directly instead of the Tensor. It is easy to break things.
-
inline size_t nbytes() const¶
Returns the size of the tensor in bytes.
NOTE: Only the alive space is returned not the total capacity of the underlying data blob.
-
inline ssize_t size(ssize_t dim) const¶
Returns the size of the tensor at the given dimension.
NOTE: that size() intentionally does not return SizeType even though it returns an element of an array of SizeType. This is to help make calls of this method more compatible with at::Tensor, and more consistent with the rest of the methods on this class and in ETensor.
-
inline ssize_t dim() const¶
Returns the tensor’s number of dimensions.
-
inline ssize_t numel() const¶
Returns the number of elements in the tensor.
-
inline ScalarType scalar_type() const¶
Returns the type of the elements in the tensor (int32, float, bool, etc).
-
inline ssize_t element_size() const¶
Returns the size in bytes of one element of the tensor.
-
inline const ArrayRef<DimOrderType> dim_order() const¶
Returns the order the dimensions are laid out in memory.
-
inline const ArrayRef<StridesType> strides() const¶
Returns the strides of the tensor at each dimension.
-
inline TensorShapeDynamism shape_dynamism() const¶
Returns the mutability of the shape of the tensor.
-
template<typename T>
inline const T *const_data_ptr() const¶ Returns a pointer of type T to the constant underlying data blob.
-
inline const void *const_data_ptr() const¶
Returns a pointer to the constant underlying data blob.
-
template<typename T>
inline T *mutable_data_ptr() const¶ Returns a pointer of type T to the mutable underlying data blob.
-
inline void *mutable_data_ptr() const¶
Returns a pointer to the mutable underlying data blob.
- template<typename T> inline ET_DEPRECATED T * data_ptr () const
DEPRECATED: Use const_data_ptr or mutable_data_ptr instead.
- inline ET_DEPRECATED void * data_ptr () const
DEPRECATED: Use const_data_ptr or mutable_data_ptr instead.
- inline ET_DEPRECATED void set_data (void *ptr) const
DEPRECATED: Changes the data_ptr the tensor aliases. Does not free the previously pointed to data, does not assume ownership semantics of the new ptr. This api does not exist in at::Tensor so kernel developers should avoid it.
-
using DimOrderType = TensorImpl::DimOrderType¶