[IE][VPU]: Remove the second call of ngraph::CommonOptimizations (#2221)

* Remove the second call of ngraph::CommonOptimizations in myriad plugin
* Reuse code with vpu ngraph transformations
This commit is contained in:
Maksim Doronin 2020-09-15 17:08:46 +03:00 committed by GitHub
parent 28a733b771
commit d239b2584c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 13 deletions

View File

@ -27,7 +27,6 @@
#include <transformations/convert_opset3_to_opset2/convert_opset3_to_opset2.hpp>
#include <transformations/convert_opset2_to_opset1/convert_opset2_to_opset1.hpp>
#include <transformations/convert_opset1_to_legacy/convert_opset1_to_legacy.hpp>
#include <transformations/common_optimizations/common_optimizations.hpp>
#include <vpu/ngraph/transformations/merge_subsequent_dsr_operations.hpp>
#include <vpu/ngraph/operations/dynamic_shape_resolver.hpp>
@ -165,7 +164,6 @@ ie::ICNNNetwork::Ptr FrontEnd::convertNetwork(ie::ICNNNetwork& network) {
ngraph::pass::Manager manager;
manager.register_pass<ngraph::pass::CommonOptimizations>();
manager.register_pass<ngraph::pass::ConvertOpSet3ToOpSet2>();
manager.register_pass<ngraph::pass::ConvertOpSet2ToOpSet1>();
manager.register_pass<ngraph::pass::ConvertOpSet1ToLegacy>();

View File

@ -36,17 +36,9 @@ using namespace InferenceEngine::PluginConfigParams;
using namespace InferenceEngine::VPUConfigParams;
using namespace vpu::MyriadPlugin;
namespace {
ExecutableNetworkInternal::Ptr Engine::LoadExeNetworkImpl(
const ICNNNetwork& network,
const std::map<std::string, std::string>& config) {
VPU_PROFILE(LoadExeNetworkImpl);
auto parsedConfigCopy = _parsedConfig;
parsedConfigCopy.update(config);
auto clonedNetwork = cloneNetwork(network);
if (auto function = clonedNetwork->getFunction()) {
void transformNGraphFunction(const std::shared_ptr<ngraph::Function>& function) {
ngraph::op::GenericIE::DisableReshape noReshape(function);
ngraph::pass::Manager manager;
manager.register_pass<vpu::UpgradeNMS4ToNMSDynamic>();
@ -60,6 +52,21 @@ ExecutableNetworkInternal::Ptr Engine::LoadExeNetworkImpl(
ti_manager.run_passes(function);
}
} // namespace
ExecutableNetworkInternal::Ptr Engine::LoadExeNetworkImpl(
const ICNNNetwork& network,
const std::map<std::string, std::string>& config) {
VPU_PROFILE(LoadExeNetworkImpl);
auto parsedConfigCopy = _parsedConfig;
parsedConfigCopy.update(config);
auto clonedNetwork = cloneNetwork(network);
if (auto function = clonedNetwork->getFunction()) {
transformNGraphFunction(function);
}
return std::make_shared<ExecutableNetwork>(*clonedNetwork,
_mvnc, _devicePool,
parsedConfigCopy, GetCore());
@ -110,6 +117,9 @@ void Engine::QueryNetwork(
}
auto clonedNetwork = cloneNetwork(network);
transformNGraphFunction(clonedNetwork->getFunction());
auto convertedNetwork = vpu::FrontEnd::convertNetwork(*clonedNetwork);
std::unordered_set<std::string> supported;