Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions onnxruntime/core/providers/openvino/backend_manager.cc
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,15 @@ void BackendManager::Compute(OrtKernelContext* context) {

dynamic_backend->Infer(context);
} else {
if (dynamic_workload_type == "EFFICIENT") {
Comment thread
preetha-intel marked this conversation as resolved.
auto ov_execution_network = concrete_backend_->GetOVCompiledModel();
ov_execution_network.set_property({{"WORKLOAD_TYPE", "EFFICIENT"}});
LOGS_DEFAULT(VERBOSE) << "[OpenVINO-EP]" << " OV WORKLOAD_TYPE property is set to EFFICIENT mode for OV inference";
} else if (dynamic_workload_type == "DEFAULT") {
auto ov_execution_network = concrete_backend_->GetOVCompiledModel();
ov_execution_network.set_property({{"WORKLOAD_TYPE", "DEFAULT"}});
LOGS_DEFAULT(VERBOSE) << "[OpenVINO-EP]" << " OV WORKLOAD_TYPE property is set to DEFAULT mode for OV inference";
}
concrete_backend_->Infer(context);
}
#ifdef OPENVINO_FIL_ENABLED
Expand Down
1 change: 1 addition & 0 deletions onnxruntime/core/providers/openvino/backend_manager.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ class BackendManager {
GlobalContext& GetGlobalContext();
Status ExportCompiledBlobAsEPCtxNode(const onnxruntime::GraphViewer& subgraph,
const logging::Logger& logger);
std::string dynamic_workload_type = "DEFAULT";

private:
std::unique_ptr<ONNX_NAMESPACE::ModelProto> GetModelProtoFromFusedNode(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ common::Status OpenVINOExecutionProvider::Compile(
graph_body_viewer,
*GetLogger(),
ep_ctx_handle_);

backend_manager_ = backend_manager;
compute_info.create_state_func =
[backend_manager](ComputeContext* context, FunctionState* state) {
OpenVINOEPFunctionState* p = new OpenVINOEPFunctionState();
Expand Down Expand Up @@ -198,4 +198,18 @@ std::vector<AllocatorPtr> OpenVINOExecutionProvider::CreatePreferredAllocators()
}
#endif

common::Status OpenVINOExecutionProvider::SetEpDynamicOptions(gsl::span<const char* const> keys,
gsl::span<const char* const> values) {
if ((std::find(keys.begin(), keys.end(), "ep.dynamic.workload_type") != keys.end()) &&
Comment thread
preetha-intel marked this conversation as resolved.
(std::find(values.begin(), values.end(), "Efficient") != values.end())) {
backend_manager_->dynamic_workload_type = "EFFICIENT";
LOGS_DEFAULT(VERBOSE) << "[OpenVINO-EP]" << backend_manager_->dynamic_workload_type << " mode is set for OV inference";
}
if ((std::find(keys.begin(), keys.end(), "ep.dynamic.workload_type") != keys.end()) &&
(std::find(values.begin(), values.end(), "Default") != values.end())) {
backend_manager_->dynamic_workload_type = "DEFAULT";
LOGS_DEFAULT(VERBOSE) << "[OpenVINO-EP]" << backend_manager_->dynamic_workload_type << " mode is set for OV inference";
}
return Status::OK();
}
} // namespace onnxruntime
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,9 @@ class OpenVINOExecutionProvider : public IExecutionProvider {
Status Compile(const std::vector<FusedNodeAndGraph>& fused_nodes,
std::vector<NodeComputeInfo>& node_compute_funcs) override;

Status SetEpDynamicOptions(gsl::span<const char* const> /*keys*/,
gsl::span<const char* const> /*values*/) override;

const void* GetExecutionHandle() const noexcept override {
return nullptr;
}
Expand All @@ -196,6 +199,7 @@ class OpenVINOExecutionProvider : public IExecutionProvider {
#endif
private:
std::unique_ptr<openvino_ep::GlobalContext> global_context_;
std::shared_ptr<openvino_ep::BackendManager> backend_manager_;
openvino_ep::EPCtxHandler ep_ctx_handle_{};
};

Expand Down