mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-07-04 04:07:22 +00:00
TRT EP memory leak fix (#7415)
* fix memory leak * small refactor * code refactor
This commit is contained in:
parent
043883b52d
commit
f1c3f3fcc1
2 changed files with 4 additions and 5 deletions
|
|
@ -473,7 +473,7 @@ TensorrtExecutionProvider::TensorrtExecutionProvider(const TensorrtExecutionProv
|
|||
throw std::runtime_error("Failed to create directory " + cache_path_);
|
||||
}
|
||||
}
|
||||
runtime_ = nvinfer1::createInferRuntime(GetTensorrtLogger());
|
||||
runtime_ = tensorrt_ptr::unique_pointer<nvinfer1::IRuntime>(nvinfer1::createInferRuntime(GetTensorrtLogger()));
|
||||
}
|
||||
|
||||
const std::string engine_decryption_enable_env = onnxruntime::GetEnvironmentVar(tensorrt_env_vars::kDecryptionEnable);
|
||||
|
|
@ -1243,7 +1243,7 @@ common::Status TensorrtExecutionProvider::Compile(const std::vector<Node*>& fuse
|
|||
&engines_[context->node_name], &contexts_[context->node_name], &builders_[context->node_name],
|
||||
&networks_[context->node_name], input_info_[context->node_name], output_info_[context->node_name],
|
||||
input_shape_ranges_[context->node_name], &tensorrt_mu_, &fp16_enable_, &int8_enable_, &max_workspace_size_,
|
||||
trt_node_name_with_precision, engine_cache_enable_, cache_path_, runtime_, nullptr,
|
||||
trt_node_name_with_precision, engine_cache_enable_, cache_path_, runtime_.get(), nullptr,
|
||||
allocator_, dynamic_range_map, engine_decryption_enable_, engine_decryption_};
|
||||
*state = p.release();
|
||||
return 0;
|
||||
|
|
@ -1295,9 +1295,8 @@ common::Status TensorrtExecutionProvider::Compile(const std::vector<Node*>& fuse
|
|||
engine_file.seekg(0, std::ios::beg);
|
||||
std::unique_ptr<char[]> engine_buf{new char[engine_size]};
|
||||
engine_file.read((char*)engine_buf.get(), engine_size);
|
||||
auto runtime_ = trt_state->runtime;
|
||||
*(trt_state->engine) = tensorrt_ptr::unique_pointer<nvinfer1::ICudaEngine>(
|
||||
runtime_->deserializeCudaEngine(engine_buf.get(), engine_size, nullptr));
|
||||
trt_state->runtime->deserializeCudaEngine(engine_buf.get(), engine_size, nullptr));
|
||||
if (trt_state->engine == nullptr) {
|
||||
return ORT_MAKE_STATUS(ONNXRUNTIME, EP_FAIL, "TensorRT EP Failed to Build Engine.");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ class TensorrtExecutionProvider : public IExecutionProvider {
|
|||
bool dump_subgraphs_ = false;
|
||||
bool engine_cache_enable_ = false;
|
||||
std::string cache_path_;
|
||||
nvinfer1::IRuntime* runtime_ = nullptr;
|
||||
tensorrt_ptr::unique_pointer<nvinfer1::IRuntime> runtime_ = nullptr;
|
||||
OrtMutex tensorrt_mu_;
|
||||
int device_id_;
|
||||
AllocatorPtr allocator_;
|
||||
|
|
|
|||
Loading…
Reference in a new issue