Remove opset0 support and undesired passes from Interpreter backend (#1469)

* Move evaluate() interface from some OPs to Interpreter

* commit

* Move shuffle channels reference to OP's evaluate

* Add some operations missed in evaluate_node

* Fix select references invocation from evaluate_node()

* Activation refs (#2)

* HardSigmoid

* Elu

* Selu

* Gelu

* Move to test runtime

* Rollback donwgrade passes delition

* Initial batch to space refs

* Return opset1_upgrade

* WIP: Add space to batch evaluate

* Fix space to batch

* add evaluates function in evaluates_map (#4)

* Add space to batch evaluate

* Fix crop in batch to space references

* Remove vectors reallocation in evaluates for b2s and s2b

* .

* Add SpaceToDepth evaluate

* Add depth to space evaluate

* Remove code duplication depth to space evaluate

* Fix some failed layer tests

* Ngraph test (#3)

* Remove some v0 ops & fix some tests

* Fixes BatchNorm

* Next

* dd

* s

* Add dot & replace slice refs

* d

* dkj

* Review fixes part 1

* Fixes. Part 2

* Fixes. Part 3

* Enable cells refs in evaluate map

* Fix some failed layer tests

* Some more fixes

* Fix code style (#6)

* Tests (#7)

* PriorBox

* Mod

* NormilizeL2

* Update prior_box.hpp

* Fix one hot ref call

* .

* Select (#8)

* Select

* Fix code style

* Fix select messages

* ReverseSeq (#9)

* ReverseSeq

* Select

* ExtractImagePatches, Seqence

* Fix Code Style

* remove extra

* Remove etra line@

* Add fake quantize reference

* Align convolution layer tests instantiations with updated definition

* Disabled some failed LPT tests

* Disabled some failed LPT tests

* Remove undesired changes

* Update unit-test manifests + some code cleanup

* Fix code style (#10)

* Normalize L2 refs support (from PR #2327)

* Fix code style

* Apply review comments. Part 1 (#11)

* Apply first part of review comments

* Update onnx_import.in.cpp

* Remove redundant reshape from shuffle_channels evaluate

* Decompose GroupConvolution

* [IE Ngraph] Fix some operation inheritance  (#13)

* [IE TESTS] Depth2Space

* Space2Depth

* ShuffleChannels

* Fix ode style

* Fix code style

* [IE NGraph] Remove decompose op (#14)

* .

* Fix loosing control dependency in replace_node

* Fix loosing control dependency in replace_node

* Fix code style

* Fix FQ references build on windows

* Fix code style

* Apply comments (#15)

* [Ie Ngraph] Remove using v1::Add

* [Ie Ngraph] Remove using v1::Mutliply

* [Ie Ngraph] Remove using v1::Subtract

* [Ie Ngraph] Remove using v1::Divide

* [Ie Ngraph] Remove using v1::Equal

* [Ie Ngraph] Remove using v1::Greater

* [Ie Ngraph] Remove using v1::Greater_eq

* [Ie Ngraph] Remove using v1::Less

* [Ie Ngraph] Remove using v1::LessEq

* [Ie Ngraph] Remove using operator+

* [Ie Ngraph] Remove using operator/

* [Ie Ngraph] Remove using operator*

* [Ie Ngraph] Remove using operator-

* Fix code style

* Ci (#16)

* Fix CentOS compilation

* Revert ngraph::op::vo::Multiply removing due to OpenCV

* Android fix (#17)

* fix failures

* Fix code style

* Add (#18)

* Android fix

* Add

* Add in opset1 upgrade pass

* Add in opset1 upgrade pass

* Remove v0::Add, Reverted removing v0::Multiply (#19)

* Remove overloaded math operators from PyNgraph

* Remove overloaded math operators from PyNgraph

* Fix gna tests (#20)

* Fix gna tests

* Squashed commit of the following:

commit 565b504c1c
Author: Alexander Zhogov <alexander.zhogov@intel.com>
Date:   Tue Oct 13 13:27:34 2020 +0300

    GitHub CI: Add files_size.yml (#2570)

    * GitHub CI: Add files_size.yml

    * Update job name

commit ab0fb29853
Author: Vladislav Vinogradov <vlad.vinogradov@intel.com>
Date:   Tue Oct 13 11:37:30 2020 +0300

    [IE][BUILD] Fix C5208 warning under Windows (#2628)

    * C++ feature in C `typedef struct` code.
    * The warning can be promoted to error in dependent projects.

    C5208: unnamed class used in typedef name cannot declare members other than
    non-static data members, member enumerations, or member classes

commit 15a338e89b
Author: helmutg <helmut@subdivi.de>
Date:   Mon Oct 12 22:24:24 2020 +0200

    add build option USE_SYSTEM_PUGIXML (#2502)

    It allows skipping inference-engine/thirdparty/pugixml and using the
    system copy instead.

    Thanks to @Osse for helping understand cmake scoping rules.

    Co-authored-by: Helmut Grohne <helmut.grohne@intenta.de>

commit 7ac8cd8586
Author: Alexander Zhogov <alexander.zhogov@intel.com>
Date:   Mon Oct 12 19:23:00 2020 +0300

    Azure CI: Fix nGraph ONNX

commit 3a2e33962c
Author: Alexander Zhogov <alexander.zhogov@intel.com>
Date:   Mon Oct 12 19:20:28 2020 +0300

    Azure CI: Disable steps in nGraph ONNX

commit 5835974fad
Author: azhogov <alexander.zhogov@intel.com>
Date:   Mon Oct 12 18:46:14 2020 +0300

    Azure CI: Add linux_ngraph_onnx.yml

* LRN Reference (#21)

* Disable failed tests on ia32

* Remove redundant broadcast from MVN ref

* Fix missed GatherND in opset_int_tbl + code style

* Remove one extra temporary buffer from MVN ref

* Merge master (#22)

* Leaky relu transformation refactor (#2640)

* Refactored LeakyRelu transformation

* Added unit test for LeakyRelu transformation + removed duplicate test function valued_const

* nGraph implementation of NMS-5 (without `evaluate()`) (#2651)

* Written nGraph NMS-5 without evaluate().

* Used NGRAPH_RTTI_DECLARATION.

* setupvars.sh: Updated setting pyenv error to warning. (#2663)

* Fix itt build (#2662)

* Loop-5 operation specification (#2291)

The Loop-5 operation specification

* Time tests improvements (#2642)

* Remove extra functions from run_timetest.py

* Add `log.debug` of raw and aggregated statistics in run_timetest.py

* Implement storing of models locally for test_timetest.py

* Fixed CVS-35316 (#2072)

* Extend MO for operation GatherND (#2540)

* Extend MO for operation GatherND

* Update documentation

* Rename GatherNd.py to gathernd.py

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Add hsigmoid op to ngraph (#2647)

* [IE CLDNN] Fixes for GatherTree and ReverseSequence  (#2660)

* ReorgYolo reference implementation (#2384)

* Align ReorgYolo to the spec (vector strides -> int stride)

* ReorgYolo ref impl

* ReorgYolo evaluate method

* ReorgYolo tests

* Tests update

* Style apply

* Add some coments

* Code refactor

* Comment update

* Style apply

* Build fix, mark evaluate as override

* Revert "Align ReorgYolo to the spec (vector strides -> int stride)"

* Use int_executable instead of evaluate

* Use char* instead of templates

* Code refactor

* Comment update

* Code review comment

* Add constructor aligned with spec

* Update shape validation

* Update attributes tests

* Add type_prop tests

* Update backend tests

* Add single layer tests

* Update the spec

* Remove wrong transformation test

* Add ReorgYolo to evaluates_map

* code style

Co-authored-by: Evgeny Lazarev <evgeny.lazarev@intel.com>
Co-authored-by: Vladimir Gavrilov <vladimir.gavrilov@intel.com>
Co-authored-by: Artyom Anokhov <artyom.anokhov@intel.com>
Co-authored-by: Andrey Somsikov <andrey.somsikov@intel.com>
Co-authored-by: Vitaliy Urusovskij <vitaliy.urusovskij@intel.com>
Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>
Co-authored-by: Roman Kazantsev <roman.kazantsev@intel.com>
Co-authored-by: iliya mironov <iliya.mironov@intel.com>
Co-authored-by: Vladimir Paramuzov <vladimir.paramuzov@intel.com>
Co-authored-by: Katarzyna Mitrus <katarzyna.mitrus@intel.com>

* RegionYolo

* Apply review comments

* Merge remote-tracking branch 'upstream/master' into update_evaluates

# Conflicts:
#	ngraph/core/src/op/mvn.cpp
#	ngraph/test/backend/fused_op.in.cpp
#	ngraph/test/runtime/ie/unit_test.manifest
#	ngraph/test/runtime/interpreter/int_executable.hpp
#	ngraph/test/runtime/interpreter/opset_int_tbl.hpp
#	ngraph/test/runtime/interpreter/unit_test.manifest
#	ngraph/test/runtime/opset0_tbl.hpp

* Apply code style

* Apply comments

* Apply code style

* Fix RegionYolo evaluate redefinition

* Removed defines from evaluates map

* Apply code style

* Fix MVN ref

* rename select reference argument

* Fix code style

* Fix Fake Quantize references calculation (#24)

* Fix MVN ref

* Fix MVN & adding NMS

* Fix TI

* Temporary relax comparison threshold for FQ SLT

* Fix GPU LPT Tests

* Add explicit rounding mode seetting in FQ references

* Apply code style

* Rollback op_is test deletion

* Apply code style

* Fix merge conflict resolving issues

* Apply code style

Co-authored-by: Irina Efode <irina.efode@intel.com>
Co-authored-by: Anton Zaytsev <anton.zaytsev@intel.com>
Co-authored-by: Evgeny Lazarev <evgeny.lazarev@intel.com>
Co-authored-by: Vladimir Gavrilov <vladimir.gavrilov@intel.com>
Co-authored-by: Artyom Anokhov <artyom.anokhov@intel.com>
Co-authored-by: Andrey Somsikov <andrey.somsikov@intel.com>
Co-authored-by: Vitaliy Urusovskij <vitaliy.urusovskij@intel.com>
Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com>
Co-authored-by: Roman Kazantsev <roman.kazantsev@intel.com>
Co-authored-by: iliya mironov <iliya.mironov@intel.com>
Co-authored-by: Vladimir Paramuzov <vladimir.paramuzov@intel.com>
Co-authored-by: Katarzyna Mitrus <katarzyna.mitrus@intel.com>
This commit is contained in:
Mikhail Treskin
2020-12-03 12:36:34 +03:00
committed by GitHub
parent b3124a5c77
commit 6467c64000
170 changed files with 3810 additions and 5236 deletions

View File

@@ -19,8 +19,6 @@
#include "ngraph/ngraph.hpp"
#include "ngraph/specialize_function.hpp"
NGRAPH_SUPPRESS_DEPRECATED_START
using namespace ngraph;
// Simple case: create a function with static parameter shapes and "specialize" them to the same
@@ -31,7 +29,7 @@ TEST(specialize_function, et_shape_static)
auto p1 = std::make_shared<op::Parameter>(element::Type_t::i32, Shape{1, 2, 3});
auto k = std::make_shared<op::Convert>(p1, element::Type_t::f32);
auto a = p0 + k;
auto a = std::make_shared<op::v1::Add>(p0, k);
auto f = std::make_shared<Function>(a, ParameterVector{p0, p1});
@@ -53,7 +51,7 @@ TEST(specialize_function, et_dynamic_shape_static)
auto p1 = std::make_shared<op::Parameter>(element::Type_t::dynamic, Shape{1, 2, 3});
auto k = std::make_shared<op::Convert>(p1, element::Type_t::f32);
auto a = p0 + k;
auto a = std::make_shared<op::v1::Add>(p0, k);
auto f = std::make_shared<Function>(a, ParameterVector{p0, p1});
@@ -75,7 +73,7 @@ TEST(specialize_function, et_static_shape_rank_dynamic)
auto p1 = std::make_shared<op::Parameter>(element::Type_t::i32, PartialShape::dynamic());
auto k = std::make_shared<op::Convert>(p1, element::Type_t::f32);
auto a = p0 + k;
auto a = std::make_shared<op::v1::Add>(p0, k);
auto f = std::make_shared<Function>(a, ParameterVector{p0, p1});
@@ -97,7 +95,7 @@ TEST(specialize_function, et_static_shape_rank_static_dynamic)
auto p1 = std::make_shared<op::Parameter>(element::Type_t::i32, PartialShape::dynamic(3));
auto k = std::make_shared<op::Convert>(p1, element::Type_t::f32);
auto a = p0 + k;
auto a = std::make_shared<op::v1::Add>(p0, k);
auto f = std::make_shared<Function>(a, ParameterVector{p0, p1});
@@ -119,7 +117,7 @@ TEST(specialize_function, et_static_shape_rank_static_dynamic_subst_val)
auto p1 = std::make_shared<op::Parameter>(element::Type_t::i32, PartialShape::dynamic(3));
auto k = std::make_shared<op::Convert>(p1, element::Type_t::f32);
auto a = p0 + k;
auto a = std::make_shared<op::v1::Add>(p0, k);
auto f = std::make_shared<Function>(a, ParameterVector{p0, p1});
@@ -136,7 +134,7 @@ TEST(specialize_function, et_static_shape_rank_static_dynamic_subst_val)
ASSERT_EQ(g->get_output_element_type(0), element::Type_t::f32);
auto plus_node =
as_type_ptr<op::Add>(g->get_results().at(0)->input_value(0).get_node_shared_ptr());
as_type_ptr<op::v1::Add>(g->get_results().at(0)->input_value(0).get_node_shared_ptr());
ASSERT_TRUE(plus_node);
auto convert_node = as_type_ptr<op::Convert>(plus_node->input_value(1).get_node_shared_ptr());
ASSERT_TRUE(convert_node);
@@ -157,7 +155,7 @@ TEST(specialize_function, et_static_shape_rank_dynamic_validation_fails)
auto p1 = std::make_shared<op::Parameter>(element::Type_t::i32, PartialShape::dynamic());
auto k = std::make_shared<op::Convert>(p1, element::Type_t::f32);
auto a = p0 + k;
auto a = std::make_shared<op::v1::Add>(p0, k);
auto f = std::make_shared<Function>(a, ParameterVector{p0, p1});
@@ -182,7 +180,7 @@ TEST(specialize_function, et_dynamic_shape_static_validation_fails)
auto p1 = std::make_shared<op::Parameter>(element::Type_t::dynamic, Shape{1, 2, 3});
auto k = std::make_shared<op::Convert>(p1, element::Type_t::f32);
auto a = p0 + k;
auto a = std::make_shared<op::v1::Add>(p0, k);
auto f = std::make_shared<Function>(a, ParameterVector{p0, p1});
@@ -210,7 +208,7 @@ TEST(specialize_function, et_static_shape_rank_static_dynamic_rank_mismatch)
auto p1 = std::make_shared<op::Parameter>(element::Type_t::i32, PartialShape::dynamic(3));
auto k = std::make_shared<op::Convert>(p1, element::Type_t::f32);
auto a = p0 + k;
auto a = std::make_shared<op::v1::Add>(p0, k);
auto f = std::make_shared<Function>(a, ParameterVector{p0, p1});
@@ -239,7 +237,7 @@ TEST(specialize_function, et_static_shape_rank_static_dynamic_dim_mismatch)
PartialShape{1, Dimension::dynamic(), 3});
auto k = std::make_shared<op::Convert>(p1, element::Type_t::f32);
auto a = p0 + k;
auto a = std::make_shared<op::v1::Add>(p0, k);
auto f = std::make_shared<Function>(a, ParameterVector{p0, p1});
@@ -262,7 +260,7 @@ TEST(specialize_function, et_count_wrong)
auto p1 = std::make_shared<op::Parameter>(element::Type_t::i32, PartialShape{1, 2, 3});
auto k = std::make_shared<op::Convert>(p1, element::Type_t::f32);
auto a = p0 + k;
auto a = std::make_shared<op::v1::Add>(p0, k);
auto f = std::make_shared<Function>(a, ParameterVector{p0, p1});
@@ -285,7 +283,7 @@ TEST(specialize_function, shape_count_wrong)
auto p1 = std::make_shared<op::Parameter>(element::Type_t::i32, PartialShape{1, 2, 3});
auto k = std::make_shared<op::Convert>(p1, element::Type_t::f32);
auto a = p0 + k;
auto a = std::make_shared<op::v1::Add>(p0, k);
auto f = std::make_shared<Function>(a, ParameterVector{p0, p1});
@@ -309,7 +307,7 @@ TEST(specialize_function, value_count_wrong)
auto p1 = std::make_shared<op::Parameter>(element::Type_t::i32, PartialShape{1, 2, 3});
auto k = std::make_shared<op::Convert>(p1, element::Type_t::f32);
auto a = p0 + k;
auto a = std::make_shared<op::v1::Add>(p0, k);
auto f = std::make_shared<Function>(a, ParameterVector{p0, p1});