Added PythonAPI For LowLatency Transformation (#3910)

This commit is contained in:
Gleb Kazantaev 2021-01-20 13:29:02 +03:00 committed by GitHub
parent 7c4f435335
commit 278773945c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 3 deletions

View File

@ -19,4 +19,7 @@ from ..inference_engine.ie_api cimport IENetwork
from libcpp cimport bool
def ApplyMOCTransformations(IENetwork network, bool cf):
C.ApplyMOCTransformations(network.impl, cf)
C.ApplyMOCTransformations(network.impl, cf)
def ApplyLowLatencyTransformation(IENetwork network):
C.ApplyLowLatencyTransformation(network.impl)

View File

@ -5,10 +5,26 @@
#include "offline_transformations_api_impl.hpp"
#include <moc_transformations.hpp>
#include <transformations/control_flow/unroll_tensor_iterator.hpp>
#include <ngraph/pass/low_latency.hpp>
#include <ngraph/pass/manager.hpp>
void InferenceEnginePython::ApplyMOCTransformations(InferenceEnginePython::IENetwork network, bool cf) {
ngraph::pass::Manager manager;
manager.register_pass<ngraph::pass::MOCTransformations>(cf);
manager.run_passes(network.actual->getFunction());
}
}
void InferenceEnginePython::ApplyLowLatencyTransformation(InferenceEnginePython::IENetwork network) {
ngraph::pass::Manager manager;
manager.register_pass<ngraph::pass::LowLatency>();
manager.register_pass<ngraph::pass::UnrollTensorIterator>();
auto pass_config = manager.get_pass_config();
pass_config->set_callback<ngraph::pass::UnrollTensorIterator>([](const std::shared_ptr<const ngraph::Node> &node) -> bool {
return node->get_rt_info().count("UNROLL_TI") == 0;
});
manager.run_passes(network.actual->getFunction());
}

View File

@ -11,4 +11,6 @@ namespace InferenceEnginePython {
void ApplyMOCTransformations(InferenceEnginePython::IENetwork network, bool cf);
void ApplyLowLatencyTransformation(InferenceEnginePython::IENetwork network);
}; // namespace InferenceEnginePython

View File

@ -2,4 +2,6 @@ from libcpp cimport bool
from ..inference_engine.ie_api_impl_defs cimport IENetwork
cdef extern from "offline_transformations_api_impl.hpp" namespace "InferenceEnginePython":
cdef void ApplyMOCTransformations(IENetwork network, bool cf)
cdef void ApplyMOCTransformations(IENetwork network, bool cf)
cdef void ApplyLowLatencyTransformation(IENetwork network)