From 7654789451a37f7cab448e6ad7da61976d9355ec Mon Sep 17 00:00:00 2001 From: Ilya Lavrenov Date: Wed, 15 Sep 2021 07:53:47 +0300 Subject: [PATCH] Removed QueryNetworkResult from new API (#7507) --- .../include/openvino/runtime/common.hpp | 8 +++++++ .../include/openvino/runtime/core.hpp | 8 +++---- .../src/inference_engine/src/ie_core.cpp | 11 ++++++---- .../include/behavior/ov_core_integration.hpp | 21 ++++++++----------- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/inference-engine/src/inference_engine/include/openvino/runtime/common.hpp b/inference-engine/src/inference_engine/include/openvino/runtime/common.hpp index b8f9872308b..f9c075e8381 100644 --- a/inference-engine/src/inference_engine/include/openvino/runtime/common.hpp +++ b/inference-engine/src/inference_engine/include/openvino/runtime/common.hpp @@ -22,5 +22,13 @@ namespace runtime { * @brief This type of map is commonly used to pass set of parameters */ using ConfigMap = std::map; + +/** + * @brief This type of map is used for result of Core::query_model + * - `key` means operation name + * - `value` means device name supporting this operation + */ +using SupportedOpsMap = std::map; + } // namespace runtime } // namespace ov \ No newline at end of file diff --git a/inference-engine/src/inference_engine/include/openvino/runtime/core.hpp b/inference-engine/src/inference_engine/include/openvino/runtime/core.hpp index 0f5a517f4c2..c2c9a475d47 100644 --- a/inference-engine/src/inference_engine/include/openvino/runtime/core.hpp +++ b/inference-engine/src/inference_engine/include/openvino/runtime/core.hpp @@ -188,11 +188,11 @@ public: * @param deviceName A name of a device to query * @param network Network object to query * @param config Optional map of pairs: (config parameter name, config parameter value) - * @return An object containing a map of pairs a layer name -> a device name supporting this layer. + * @return An object containing a map of pairs a operation name -> a device name supporting this operation. */ - ie::QueryNetworkResult query_model(const std::shared_ptr& network, - const std::string& deviceName, - const ConfigMap& config = {}) const; + SupportedOpsMap query_model(const std::shared_ptr& network, + const std::string& deviceName, + const ConfigMap& config = {}) const; /** * @brief Sets configuration for device, acceptable keys can be found in ie_plugin_config.hpp diff --git a/inference-engine/src/inference_engine/src/ie_core.cpp b/inference-engine/src/inference_engine/src/ie_core.cpp index 8125ceb484a..cd15015fa82 100644 --- a/inference-engine/src/inference_engine/src/ie_core.cpp +++ b/inference-engine/src/inference_engine/src/ie_core.cpp @@ -1306,11 +1306,14 @@ ExecutableNetwork Core::import_model(std::istream& networkModel, return {exec._so, exec._ptr}; } -ie::QueryNetworkResult Core::query_model(const std::shared_ptr& network, - const std::string& deviceName, - const ConfigMap& config) const { - return _impl->QueryNetwork(ie::CNNNetwork(std::const_pointer_cast(network)), deviceName, config); +SupportedOpsMap Core::query_model(const std::shared_ptr& network, + const std::string& deviceName, + const ConfigMap& config) const { + auto cnnNet = ie::CNNNetwork(std::const_pointer_cast(network)); + auto qnResult = _impl->QueryNetwork(cnnNet, deviceName, config); + return qnResult.supportedLayersMap; } + void Core::set_config(const ConfigMap& config, const std::string& deviceName) { // HETERO case if (deviceName.find("HETERO:") == 0) { diff --git a/inference-engine/tests/functional/plugin/shared/include/behavior/ov_core_integration.hpp b/inference-engine/tests/functional/plugin/shared/include/behavior/ov_core_integration.hpp index a5a6cd43a09..080bcf948e1 100644 --- a/inference-engine/tests/functional/plugin/shared/include/behavior/ov_core_integration.hpp +++ b/inference-engine/tests/functional/plugin/shared/include/behavior/ov_core_integration.hpp @@ -512,8 +512,7 @@ TEST_P(OVClassNetworkTestP, QueryNetworkWithKSO) { ov::runtime::Core ie = createCoreWithTemplate(); try { - auto rres = ie.query_model(ksoNetwork, deviceName); - auto rl_map = rres.supportedLayersMap; + auto rl_map = ie.query_model(ksoNetwork, deviceName); auto func = ksoNetwork; for (const auto& op : func->get_ops()) { if (!rl_map.count(op->get_friendly_name())) { @@ -556,8 +555,7 @@ TEST_P(OVClassNetworkTestP, SetAffinityWithConstantBranches) { func = std::make_shared(results, params); } - auto rres = ie.query_model(func, deviceName); - auto rl_map = rres.supportedLayersMap; + auto rl_map = ie.query_model(func, deviceName); for (const auto& op : func->get_ops()) { if (!rl_map.count(op->get_friendly_name())) { FAIL() << "Op " << op->get_friendly_name() << " is not supported by " << deviceName; @@ -579,8 +577,7 @@ TEST_P(OVClassNetworkTestP, SetAffinityWithKSO) { ov::runtime::Core ie = createCoreWithTemplate(); try { - auto rres = ie.query_model(ksoNetwork, deviceName); - auto rl_map = rres.supportedLayersMap; + auto rl_map = ie.query_model(ksoNetwork, deviceName); auto func = ksoNetwork; for (const auto& op : func->get_ops()) { if (!rl_map.count(op->get_friendly_name())) { @@ -601,10 +598,10 @@ TEST_P(OVClassNetworkTestP, SetAffinityWithKSO) { TEST_P(OVClassNetworkTestP, QueryNetworkHeteroActualNoThrow) { SKIP_IF_CURRENT_TEST_IS_DISABLED() ov::runtime::Core ie = createCoreWithTemplate(); - QueryNetworkResult res; + ov::runtime::SupportedOpsMap res; ASSERT_NO_THROW( res = ie.query_model(actualNetwork, CommonTestUtils::DEVICE_HETERO, {{"TARGET_FALLBACK", deviceName}})); - ASSERT_LT(0, res.supportedLayersMap.size()); + ASSERT_LT(0, res.size()); } TEST_P(OVClassNetworkTestP, QueryNetworkMultiThrows) { @@ -1408,7 +1405,7 @@ TEST_P(OVClassLoadNetworkTest, QueryNetworkHETEROWithMULTINoThrow_V10) { for (auto&& node : function->get_ops()) { expectedLayers.emplace(node->get_friendly_name()); } - QueryNetworkResult result; + ov::runtime::SupportedOpsMap result; std::string targetFallback(CommonTestUtils::DEVICE_MULTI + std::string(",") + deviceName); ASSERT_NO_THROW(result = ie.query_model( multinputNetwork, @@ -1416,7 +1413,7 @@ TEST_P(OVClassLoadNetworkTest, QueryNetworkHETEROWithMULTINoThrow_V10) { {{MULTI_CONFIG_KEY(DEVICE_PRIORITIES), devices}, {"TARGET_FALLBACK", targetFallback}})); std::unordered_set actualLayers; - for (auto&& layer : result.supportedLayersMap) { + for (auto&& layer : result) { actualLayers.emplace(layer.first); } ASSERT_EQ(expectedLayers, actualLayers); @@ -1444,14 +1441,14 @@ TEST_P(OVClassLoadNetworkTest, QueryNetworkMULTIWithHETERONoThrow_V10) { for (auto&& node : function->get_ops()) { expectedLayers.emplace(node->get_friendly_name()); } - QueryNetworkResult result; + ov::runtime::SupportedOpsMap result; ASSERT_NO_THROW(result = ie.query_model(multinputNetwork, CommonTestUtils::DEVICE_MULTI, {{MULTI_CONFIG_KEY(DEVICE_PRIORITIES), devices}, {"TARGET_FALLBACK", deviceName + "," + deviceName}})); std::unordered_set actualLayers; - for (auto&& layer : result.supportedLayersMap) { + for (auto&& layer : result) { actualLayers.emplace(layer.first); } ASSERT_EQ(expectedLayers, actualLayers);