This reference describes unreleased code on main; no release documents it yet.

DLManagedTensorVersioned

structExperimental#include <rlmesh.h>[source]

\brief A versioned and managed C Tensor object, manage memory of DLTensor.

struct DLManagedTensorVersioned

This data structure is intended to facilitate the borrowing of DLTensor by another framework. It is not meant to transfer the tensor. When the borrowing framework doesn’t need the tensor, it should call the deleter to notify the host that the resource is no longer needed.

\note This is the current standard DLPack exchange data structure.

version

field[source]
DLPackVersion version

\brief The API and ABI version of the current managed Tensor

manager_ctx

field[source]
void *manager_ctx

\brief the context of the original host framework.

Stores DLManagedTensorVersioned is used in the framework. It can also be NULL.

deleter

field[source]
void (*deleter)(struct DLManagedTensorVersioned *self)

\brief Destructor.

This should be called to destruct manager_ctx which holds the DLManagedTensorVersioned. It can be NULL if there is no way for the caller to provide a reasonable destructor. The destructor deletes the argument self as well.

flags

field[source]
uint64_t flags

\brief Additional bitmask flags information about the tensor.

By default the flags should be set to 0.

\note Future ABI changes should keep everything until this field stable, to ensure that deleter can be correctly called.

\sa DLPACK_FLAG_BITMASK_READ_ONLY \sa DLPACK_FLAG_BITMASK_IS_COPIED

dl_tensor

field[source]
DLTensor dl_tensor

\brief DLTensor which is being memory managed