Skip to content

Commit 06b739a

Browse files
authored
Merge pull request #30 from viplix3/codex/review-github-issues-and-propose-fixes
Fix runtime ownership for TensorRT
2 parents 2516076 + fbcab58 commit 06b739a

2 files changed

Lines changed: 5 additions & 3 deletions

File tree

botsort/include/TRT_InferenceEngine/TensorRT_InferenceEngine.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ class TensorRTInferenceEngine
9898
nvinfer1::ILogger::Severity _logSeverity =
9999
nvinfer1::ILogger::Severity::kWARNING;
100100
TRTOptimizerParams _optimization_params;
101+
// Runtime must outlive the engine and execution context.
102+
TRTUniquePtr<nvinfer1::IRuntime> _runtime{nullptr};
101103
TRTUniquePtr<nvinfer1::ICudaEngine> _engine{nullptr};
102104
TRTUniquePtr<nvinfer1::IExecutionContext> _context{nullptr};
103105
std::unique_ptr<TRTLogger> _logger{nullptr};

botsort/src/TRT_InferenceEngine/TensorRT_InferenceEngine.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -312,9 +312,9 @@ bool inference_backend::TensorRTInferenceEngine::_deserialize_engine(
312312
engine_file.close();
313313

314314
// Deserialize engine
315-
std::unique_ptr<nvinfer1::IRuntime> runtime{
316-
nvinfer1::createInferRuntime(*_logger)};
317-
_engine = makeUnique(runtime->deserializeCudaEngine(
315+
// Runtime must outlive the engine. Keep it as a member
316+
_runtime = makeUnique(nvinfer1::createInferRuntime(*_logger));
317+
_engine = makeUnique(_runtime->deserializeCudaEngine(
318318
trt_model_stream.data(), trt_model_stream.size()));
319319
if (!_engine)
320320
{

0 commit comments

Comments
 (0)