From 64b5a4595a756cf4cd6c95a8b4f81e1b50fc8aec Mon Sep 17 00:00:00 2001 From: yanlan song Date: Tue, 25 Apr 2023 05:01:11 +0800 Subject: [PATCH] Bell/use cpu for dynamic models (#17149) * clean up multi code path Signed-off-by: fishbell * clang Signed-off-by: fishbell * potential locking issue Signed-off-by: fishbell * remove unecessary variable Signed-off-by: fishbell * clear redundunt return syntax Signed-off-by: fishbell * still use cpu for dynamic models Signed-off-by: fishbell * merge master Signed-off-by: fishbell --------- Signed-off-by: fishbell --- src/plugins/auto/src/plugin.cpp | 19 +------------------ .../tests/unit/auto_dynamic_output_test.cpp | 9 +++------ 2 files changed, 4 insertions(+), 24 deletions(-) diff --git a/src/plugins/auto/src/plugin.cpp b/src/plugins/auto/src/plugin.cpp index 7647b540cd8..c2cdcbacd73 100644 --- a/src/plugins/auto/src/plugin.cpp +++ b/src/plugins/auto/src/plugin.cpp @@ -821,23 +821,6 @@ std::vector MultiDeviceInferencePlugin::FilterDeviceByNetwork return false; }; - auto isOutputDynamic = [&]() { - for (size_t i = 0; i < model->inputs().size() ; i++) { - if (model->input(i).get_partial_shape().is_dynamic()) { - // any input is dynamic - return false; - } - } - for (size_t i = 0; i < model->outputs().size() ; i++) { - if (model->output(i).get_partial_shape().is_dynamic()) { - // any output is dynamic - LOG_INFO_TAG("dynamic output model"); - return true; - } - } - return false; - }; - // Check if CPU is in candidate list auto cpuiter = std::find_if(metaDevices.begin(), metaDevices.end(), [](const DeviceInformation& deviceInfo) { return deviceInfo.deviceName.find("CPU") != std::string::npos; @@ -846,7 +829,7 @@ std::vector MultiDeviceInferencePlugin::FilterDeviceByNetwork // If CPU is in candidate list, load dynamic network to CPU first // For MULTI do not only load stateful network to CPU // For AUTO CTPUT only load stateful network to CPU - if (((model->is_dynamic() && !isOutputDynamic()) || (isStateful() && _LogTag != "MULTI")) && cpuiter != metaDevices.end()) { + if (((model->is_dynamic()) || (isStateful() && _LogTag != "MULTI")) && cpuiter != metaDevices.end()) { filterDevice.push_back(*cpuiter); return filterDevice; } diff --git a/src/plugins/auto/tests/unit/auto_dynamic_output_test.cpp b/src/plugins/auto/tests/unit/auto_dynamic_output_test.cpp index 0f2fe1d7d83..9f1783c174d 100644 --- a/src/plugins/auto/tests/unit/auto_dynamic_output_test.cpp +++ b/src/plugins/auto/tests/unit/auto_dynamic_output_test.cpp @@ -86,18 +86,15 @@ TEST_P(DynamicOutputInferenceTest, CanSelectCorrectTargetDeviceandInitizeBlobWit ASSERT_NO_THROW(exeNetwork = plugin->LoadNetwork(cnnNet, config)); std::shared_ptr auto_request; ASSERT_NO_THROW(auto_request = exeNetwork->CreateInferRequest()); - for (auto & iter : exeNetwork->GetOutputsInfo()) { - auto outBlob = auto_request->GetBlob(iter.first); - ASSERT_NE(outBlob->size(), 0); - } ASSERT_NO_THROW(auto_request->StartAsync()); + ASSERT_NO_THROW(auto_request->Wait(0)); } const std::vector testConfigs = { DynamicOutputConfigParams {false, "CPU,GPU", {ov::hint::performance_mode(ov::hint::PerformanceMode::CUMULATIVE_THROUGHPUT)}, - std::vector{"CPU", "GPU"}}, + std::vector{"CPU"}}, DynamicOutputConfigParams {true, "CPU,GPU", {ov::hint::performance_mode(ov::hint::PerformanceMode::CUMULATIVE_THROUGHPUT)}, - std::vector{"CPU", "GPU"}}, + std::vector{"CPU"}}, }; INSTANTIATE_TEST_SUITE_P(smoke_Auto_BehaviorTests, DynamicOutputInferenceTest,