Skip to navigation

holoscan::utils::TensorTransmitCache

Beta
View as Markdown

Persistent cache for output message and tensor allocations used by the cached variant of transmit_data_per_model.

Holds a reusable GXF entity and per-tensor metadata to minimise per-frame overhead. Three cases are handled each frame:

  1. First use or buffer too small: full reshape (reallocate + update shape).
  2. Incoming fits in existing allocation but dims changed: wrapMemory to update shape metadata only — no free/alloc of the underlying buffer.
  3. Same dims as last frame: fast path, no tensor mutation at all.
#include <holoscan/utils/holoinfer_utils.hpp>

Member variables

NameTypeDescription
out_messagenvidia::gxf::Expected< nvidia::gxf::Entity >Persistent output entity. Invalid until the first call to transmit_data_per_model.
allocated_sizesstd::map< std::string, size_t >Maximum element count that has been allocated for each output tensor.
last_dimsstd::map< std::string, std::vector< int64_t > >Dimension vector from the most recent frame for each output tensor, used to detect shape changes that require a wrapMemory call even when the element count has not grown.
resolved_outputsstd::vector< ResolvedOutput >
resolved_validboolTrue once resolved_outputs has been populated by the first call and matches out_tensors.

Inner classes

ResolvedOutput

struct holoscan::utils::TensorTransmitCache::ResolvedOutput
NameTypeDescription
key_namestd::string
tensor_indexunsigned int
data_bufferHoloInfer::DataBuffer *
dtypeHoloInfer::holoinfer_datatype