[CPU] Optimize number of pass::Validate calls in postLPT, postSnipppets and CPUSpecificOpSet pass managers (#15596)

This commit is contained in:
Alexandra Sidorova 2023-02-15 12:08:12 +04:00 committed by GitHub
parent 55d667ce32
commit d73ee9e59b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 1 deletions

View File

@ -29,6 +29,7 @@ inline void ConvertToCPUSpecificOpset(std::shared_ptr<ngraph::Function> &nGraphF
RUN_ON_FUNCTION_SCOPE(ConvertToCPUSpecificOpset); RUN_ON_FUNCTION_SCOPE(ConvertToCPUSpecificOpset);
ngraph::pass::Manager manager; ngraph::pass::Manager manager;
manager.set_per_pass_validation(false);
manager.register_pass<ConvertMatMulToFC>(); manager.register_pass<ConvertMatMulToFC>();
manager.register_pass<AlignMatMulInputRanks>(); manager.register_pass<AlignMatMulInputRanks>();
manager.register_pass<ConvertTileToSeqTiles>(); manager.register_pass<ConvertTileToSeqTiles>();
@ -44,7 +45,7 @@ inline void ConvertToCPUSpecificOpset(std::shared_ptr<ngraph::Function> &nGraphF
manager.register_pass<ov::pass::ReshapeSequenceFusion>(); manager.register_pass<ov::pass::ReshapeSequenceFusion>();
manager.register_pass<ngraph::pass::ConstantFolding>(); manager.register_pass<ngraph::pass::ConstantFolding>();
manager.register_pass<ov::pass::ConvertPrecision>(precisions_array {{ ngraph::element::i64, ngraph::element::i32 }}); manager.register_pass<ov::pass::ConvertPrecision>(precisions_array {{ ngraph::element::i64, ngraph::element::i32 }});
manager.register_pass<ov::pass::Validate>();
manager.run_passes(nGraphFunc); manager.run_passes(nGraphFunc);
} }

View File

@ -223,8 +223,11 @@ void Transformations::PreLpt(const std::vector<ov::element::Type>& defaultPrecis
manager.register_pass<ov::pass::ConvertNMS4ToNMS9>(); manager.register_pass<ov::pass::ConvertNMS4ToNMS9>();
manager.register_pass<ov::pass::ConvertNMS5ToNMS9>(); manager.register_pass<ov::pass::ConvertNMS5ToNMS9>();
manager.register_pass<ov::pass::ConvertNMS9ToNMSIEInternal>(); manager.register_pass<ov::pass::ConvertNMS9ToNMSIEInternal>();
manager.register_pass<ov::pass::Validate>();
manager.register_pass<ov::pass::ConvertMulticlassNmsToMulticlassNmsIE>(); manager.register_pass<ov::pass::ConvertMulticlassNmsToMulticlassNmsIE>();
manager.register_pass<ov::pass::Validate>();
manager.register_pass<ov::pass::ConvertMatrixNmsToMatrixNmsIE>(); manager.register_pass<ov::pass::ConvertMatrixNmsToMatrixNmsIE>();
manager.register_pass<ov::pass::Validate>();
manager.register_pass<ov::pass::TransposeMatMul>(); manager.register_pass<ov::pass::TransposeMatMul>();
manager.register_pass<ov::pass::ConstantFolding>(); manager.register_pass<ov::pass::ConstantFolding>();
@ -504,6 +507,7 @@ void Transformations::PostLpt() {
CPU_DEBUG_CAP_TRANSFORMATION_SCOPE(this, PostLpt); CPU_DEBUG_CAP_TRANSFORMATION_SCOPE(this, PostLpt);
ov::pass::Manager postLPTPassManager; ov::pass::Manager postLPTPassManager;
postLPTPassManager.set_per_pass_validation(false);
postLPTPassManager.register_pass<ov::pass::UnrollTensorIterator>(); postLPTPassManager.register_pass<ov::pass::UnrollTensorIterator>();
postLPTPassManager.register_pass<ov::pass::ReshapePRelu>(); postLPTPassManager.register_pass<ov::pass::ReshapePRelu>();
postLPTPassManager.get_pass_config()->set_callback<ov::pass::UnrollTensorIterator>([](const_node_ptr &node) -> bool { postLPTPassManager.get_pass_config()->set_callback<ov::pass::UnrollTensorIterator>([](const_node_ptr &node) -> bool {
@ -560,6 +564,7 @@ void Transformations::MainSnippets(void) {
return; return;
ngraph::pass::Manager snippetsManager; ngraph::pass::Manager snippetsManager;
snippetsManager.set_per_pass_validation(false);
if (snippetsMode != Config::SnippetsMode::IgnoreCallback) if (snippetsMode != Config::SnippetsMode::IgnoreCallback)
snippetsManager.register_pass<SnippetsMarkSkipped>(); snippetsManager.register_pass<SnippetsMarkSkipped>();
snippetsManager.register_pass<ngraph::snippets::pass::SnippetsTokenization>(); snippetsManager.register_pass<ngraph::snippets::pass::SnippetsTokenization>();
@ -637,6 +642,7 @@ void Transformations::MainSnippets(void) {
void Transformations::PostSnippets(void) { void Transformations::PostSnippets(void) {
ov::pass::Manager postSnippetsManager; ov::pass::Manager postSnippetsManager;
postSnippetsManager.set_per_pass_validation(false);
postSnippetsManager.register_pass<ov::pass::FakeQuantizeDecomposition>(); postSnippetsManager.register_pass<ov::pass::FakeQuantizeDecomposition>();
postSnippetsManager.get_pass_config()->set_callback<ov::pass::FakeQuantizeDecomposition>([](const_node_ptr& node) -> bool { postSnippetsManager.get_pass_config()->set_callback<ov::pass::FakeQuantizeDecomposition>([](const_node_ptr& node) -> bool {
std::string errMsg; std::string errMsg;