NVIDIA DeepStream SDK API Reference

9.2 Release
SegmenterCudaMemBank Class Reference

Detailed Description

Manages CUDA-resident temporal features for SAM2 inference.

Definition at line 175 of file sources/libs/nvmultiobjecttracker/include/modules/Segmenter/Segmenter.hpp.

Public Member Functions

 SegmenterCudaMemBank ()
 Construct a SegmenterCudaMemBank instance from configuration. More...
 
 ~SegmenterCudaMemBank ()
 Release resources owned by the SegmenterCudaMemBank instance. More...
 
void initialize (const SourceFrameInfo &frameInfo, const uint maxTargetsPerStream, const SegmenterRunTimeParams &paramsRt, const SegmenterConfigParams &params, cudaStream_t &cuStream)
 Initialize memory bank. More...
 
void update (float *maskMemFeatures_d, float *maskMemPosEnc_d, float *temporalCode_d, float *objPtr_d, std::shared_ptr< NvTrackedObject > target, int indInBatch, CudaInferenceStatus &inferStatus)
 Update memory bank. More...
 
void reset (const TrackerIndex targetInd)
 Clear retained memory for one target. More...
 
std::vector< float * > getCudaMemBank (const TrackerIndex targetInd)
 Get CUDA memory-bank pointers for a target. More...
 
 SegmenterCudaMemBank ()
 Construct a SegmenterCudaMemBank instance from configuration. More...
 
 ~SegmenterCudaMemBank ()
 Release resources owned by the SegmenterCudaMemBank instance. More...
 
void initialize (const SourceFrameInfo &frameInfo, const uint maxTargetsPerStream, const SegmenterRunTimeParams &paramsRt, const SegmenterConfigParams &params, cudaStream_t &cuStream)
 Initialize memory bank. More...
 
void update (float *maskMemFeatures_d, float *maskMemPosEnc_d, float *temporalCode_d, float *objPtr_d, std::shared_ptr< NvTrackedObject > target, int indInBatch, CudaInferenceStatus &inferStatus)
 Update memory bank. More...
 
void reset (const TrackerIndex targetInd)
 Clear retained memory for one target. More...
 
std::vector< float * > getCudaMemBank (const TrackerIndex targetInd)
 Get CUDA memory-bank pointers for a target. More...
 

Constructor & Destructor Documentation

◆ SegmenterCudaMemBank() [1/2]

SegmenterCudaMemBank::SegmenterCudaMemBank ( )

Construct a SegmenterCudaMemBank instance from configuration.

◆ ~SegmenterCudaMemBank() [1/2]

SegmenterCudaMemBank::~SegmenterCudaMemBank ( )

Release resources owned by the SegmenterCudaMemBank instance.

◆ SegmenterCudaMemBank() [2/2]

SegmenterCudaMemBank::SegmenterCudaMemBank ( )

Construct a SegmenterCudaMemBank instance from configuration.

◆ ~SegmenterCudaMemBank() [2/2]

SegmenterCudaMemBank::~SegmenterCudaMemBank ( )

Release resources owned by the SegmenterCudaMemBank instance.

Member Function Documentation

◆ getCudaMemBank() [1/2]

std::vector<float*> SegmenterCudaMemBank::getCudaMemBank ( const TrackerIndex  targetInd)

Get CUDA memory-bank pointers for a target.

Parameters
[in]targetIndTarget index.

◆ getCudaMemBank() [2/2]

std::vector<float*> SegmenterCudaMemBank::getCudaMemBank ( const TrackerIndex  targetInd)

Get CUDA memory-bank pointers for a target.

Parameters
[in]targetIndTarget index.

◆ initialize() [1/2]

void SegmenterCudaMemBank::initialize ( const SourceFrameInfo &  frameInfo,
const uint  maxTargetsPerStream,
const SegmenterRunTimeParams &  paramsRt,
const SegmenterConfigParams &  params,
cudaStream_t &  cuStream 
)

Initialize memory bank.

Parameters
[in]frameInfoMetadata about the source image, such as size and color.
[in]maxTargetsPerStreamMaximum number of targets to track in each stream.
[in]paramsRtRuntime parameters for the segmenter.
[in]paramsConfiguration parameters for the segmenter.
[in]cuStreamCUDA stream that runs the GPU work.

◆ initialize() [2/2]

void SegmenterCudaMemBank::initialize ( const SourceFrameInfo &  frameInfo,
const uint  maxTargetsPerStream,
const SegmenterRunTimeParams &  paramsRt,
const SegmenterConfigParams &  params,
cudaStream_t &  cuStream 
)

Initialize memory bank.

Parameters
[in]frameInfoMetadata about the source image, such as size and color.
[in]maxTargetsPerStreamMaximum number of targets to track in each stream.
[in]paramsRtRuntime parameters for the segmenter.
[in]paramsConfiguration parameters for the segmenter.
[in]cuStreamCUDA stream that runs the GPU work.

◆ reset() [1/2]

void SegmenterCudaMemBank::reset ( const TrackerIndex  targetInd)

Clear retained memory for one target.

Parameters
[in]targetIndTarget index.

◆ reset() [2/2]

void SegmenterCudaMemBank::reset ( const TrackerIndex  targetInd)

Clear retained memory for one target.

Parameters
[in]targetIndTarget index.

◆ update() [1/2]

void SegmenterCudaMemBank::update ( float *  maskMemFeatures_d,
float *  maskMemPosEnc_d,
float *  temporalCode_d,
float *  objPtr_d,
std::shared_ptr< NvTrackedObject >  target,
int  indInBatch,
CudaInferenceStatus &  inferStatus 
)

Update memory bank.

Parameters
[in]maskMemFeatures_dMask memory features to append.
[in]maskMemPosEnc_dMask memory position encoding to append.
[in]temporalCode_dDevice temporal-code tensor.
[in]objPtr_dDevice object-pointer tensor.
[in]targetTarget whose memory bank is updated.
[in]indInBatchIndex of this target in the inference batch.
[in,out]inferStatusCUDA inference status whose stored-tensor counts are updated.

◆ update() [2/2]

void SegmenterCudaMemBank::update ( float *  maskMemFeatures_d,
float *  maskMemPosEnc_d,
float *  temporalCode_d,
float *  objPtr_d,
std::shared_ptr< NvTrackedObject >  target,
int  indInBatch,
CudaInferenceStatus &  inferStatus 
)

Update memory bank.

Parameters
[in]maskMemFeatures_dMask memory features to append.
[in]maskMemPosEnc_dMask memory position encoding to append.
[in]temporalCode_dDevice temporal-code tensor.
[in]objPtr_dDevice object-pointer tensor.
[in]targetTarget whose memory bank is updated.
[in]indInBatchIndex of this target in the inference batch.
[in,out]inferStatusCUDA inference status whose stored-tensor counts are updated.

The documentation for this class was generated from the following file: