From 911281393da4ea569c70cbc21766e26e418c47af Mon Sep 17 00:00:00 2001 From: Preetha Veeramalai Date: Fri, 22 Sep 2023 04:23:01 -0700 Subject: [PATCH] Add warnings for corner case runtime options --- .../openvino/openvino_provider_factory.cc | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/onnxruntime/core/providers/openvino/openvino_provider_factory.cc b/onnxruntime/core/providers/openvino/openvino_provider_factory.cc index d118b37f8ab6..6d135299687a 100644 --- a/onnxruntime/core/providers/openvino/openvino_provider_factory.cc +++ b/onnxruntime/core/providers/openvino/openvino_provider_factory.cc @@ -64,8 +64,33 @@ struct OpenVINO_Provider : Provider { std::shared_ptr CreateExecutionProviderFactory(const void* void_params) override { auto& params = *reinterpret_cast(void_params); + std::string device_type = params.device_type; + int num_of_threads = 1; + std::set ov_supported_device_types = {"CPU_FP32", "CPU_FP16", "GPU_FP32", + "GPU.0_FP32", "GPU.1_FP32", "GPU_FP16", + "GPU.0_FP16", "GPU.1_FP16", + "NPU_FP16", "NPU_U8"}; + + if (!((ov_supported_device_types.find(device_type) != ov_supported_device_types.end()) || + (device_type.find("HETERO:") == 0) || (device_type.find("MULTI:") == 0) || (device_type.find("AUTO:") == 0))) { + LOGS_DEFAULT(ERROR) << + "[ERROR] [OpenVINO] You have selcted wrong configuration value for the key 'device_type'.\n " + "Select from 'CPU_FP32', 'CPU_FP16', 'GPU_FP32', 'GPU.0_FP32', 'GPU.1_FP32', 'GPU_FP16', " + "'GPU.0_FP16', 'GPU.1_FP16', 'NPU_FP16', 'NPU_U8' or from" + " HETERO/MULTI/AUTO options available. \n"; + } + + num_of_threads = params.num_of_threads; + if (num_of_threads <= 0) { + num_of_threads = 1; + LOGS_DEFAULT(WARNING) << "[OpenVINO-EP] The value for the key 'num_threads' should be in the positive range.\n " + << "Executing with num_threads=1"; + } + + + return std::make_shared(params.device_type, params.enable_vpu_fast_compile, - params.device_id, params.num_of_threads, + params.device_id, num_of_threads, params.cache_dir, params.context, params.enable_opencl_throttling, params.enable_dynamic_shapes);