It was discovered that it is sometimes useful to mark fast stages (e.g. stages that process less than 100 elements) in order to be able to parse them from final performance report and estimate its contribution into performance.
* Added pass for marking fast stages
* Introduced unit tests
* Added new predicates for smart pattern matching
* Added ConvMul and GroupConvMul fusion passes based on opset4; Added CPU functional tests for comparing fusion accuracy
* Improved ConvMultiply fusion to support scalars; Added positive and negative tests
* Added ConvolutionBackprop/GrouConvolutionBackprop Multiply fusion; Added functional tests
* Added test
* working ManagerWrapper
* Clean-up in ManagerWrapper
* worksave
* fixed building error
* Finished test of constant folding
* remove unused param
* Added get_vector function
* clean up
* RTTI base for ngraph::Node; cherry-pick from another branch, draft
* Added comments, moved code, switched to custom RTTI-based version of is_type
* Move rtti definitions in ngraph op class to the beginning of each class definition as a preparation for the next replacement
* Migrate part of operations to new RTTI
* Migrate GroupConvolution and Concat to new RTTI
* Apply code style for ngraph part
* Rename RTTI_DECLARATION/DEFINITION to NGRAPH_RTTI_DECLARATION/DEFINITION
* Reverted accidentally updated version of mkldnn
* TMP: rewrite RTTI back to constexprions as an attempt to fix static objects initialization order issue
* Apply ngraph code style
* Finalize move back to constexpr for RTTI
* Applied code-style
* TypeRelaxed template class implementation and necessary changes in ngraph + tests.
* Applied code-style
* Fix in fast algorithm in GraphRewrite, add new tests for this and other cases
* Make parent optional parameter for NGRAPH_RTTI_DECLARATION and remove Node::type_info; remove ability to have Node as a parent for type_info
* Try to resolve compilation error on Windows
* The next attempt to fix Windows build: re-introduce get_type_info_static
* Removed file that was removed in master and kept in this branch by mistake
* Next attempt to fix Windows build: externConstexpr
* Attempt to fix win build: extra public (suspect icc bug), remove get_type_info_static as useless.
* Next attempt to fix Windows: proxy const and constexpr
* Fixed constexpr
* Next attmpts: move get_type_info to cpp file
* Code stype fix
* Re-implemented RTTI without use of constexpr; run-time initialization is used; removed global definitions to avoid issues with order of static objects initialization
* Removed externConstexpr flag and removed TRANSFOMRATIONS_API for TypeRelaxed
* get_type_info_static initializes static local constant with type_info that is used for CLASS::type_info and CLASS::get_type_info
* Removed not needed debug output and useless comments
* Implemented better copy ctor for Node
* Fixed VisualizeTree issue for TypeRelaxed: stopped using < and > in type_info::name
* Better comments and names for methods
* Remove unused include
* Remove commented line
* Workaround for legacy conversion that uses Node::get_type_info().name as a type for the resulting CNNLayer leading to incorrect types for TypeRelaxed-based operations and then to fail in plugins
* Fixed typos, explicit ctor for TypeRelaxedBase, explanation for the need of get_overridden_output_type
* Fix typo
* Fixed issue with non-static name in type definition for TypeRelaxed and fixed WrapType to make it compatible with hierarchical relations between types
* Reverted default ctor for Output and reverted ability to reduce number of outputs for a Node; syntactically better debug message for a Node
* Cover methods of TypeRelaxedBase by tests
* Apply code-style
* Azure CI: Add Windows job with IncrediBuild
* Update IB version to 9.4.6
* Fix "Clone submodules"
* Update IB version to 9.5
* Update install link
* Add debug out
* Update debug out
* Remove debug out
* Disable initiator machine from acting as helpers
This change adds full support for asymmetric quantization to optimized
depthwise convolution, adds slm optimization and other minor
improvements.
Issue: CVS-25122
* unroll ti transformation, lstm sequence ie, rnn sequence ie
* Update unroll ti transformation, added GRUSequenceIE op, fixed several ti e2e tests
* apply ngraph codestyle
* fix naming after unroll transformation
* Added default constructor for RNNCellBase, fix conversions
* copy runtime info
* added UnrollTI unit tests
* clean up, move sequence ops in a separate PR
* clean up, ngraph code style
* temporary disable ngraph reader unit tests for ti
* fix unit tests on windows
* naming: use name of tensor after unroll tensor iteration transformation
* apply transformations to tensor iterator body, separate pass for ti transformations, fix naming issue
* fix build
* remove TensorIterationTransformations pass
* fix includes
* resolve conflicts
* fix build: incorrect includes
* remove split/concat for single iteration of TI, update to opset4, unit tests
* use matcher pass instead of graph rewrite
* try to enable UnrollTI transformation for all plugins
* disable unrollTI transformation for cpu plugin
* resolve review comments, enable unit tests
* update transformation description
* fix unit tests
* update transformation pipeline
* clean up
* clean up
* resolve review comments
* Separate MO configuration for TensorFlow 2 model conversion
Also, it updates documentation including steps to convert
TF2 model with a custom layer in Keras H5 format into SavedModel
* Do fixes based on the first-round code review
In one of the network it was the following pipeline:
```
FullyConnected -> Reshape -> FullyConnected
```
And the output of Reshape wasn't in the same order as input for this
layer. I found that the problem was connected with format of the layers.
During optimization passes this pipeline was transformed to the
following:
```
FullyConnected -> Reorder -> Reshape -> Reorder -> FullyConnected
```
Both `FullyConnected` layers works with `yxfb` format. This is why
Reorder layer after the Reshape has output layout with format `yxfb` and
`reshape_in_layout.format` returns `yxfb` format. But in this case we
have to convert Reshape to `bfyx` format because in this case we won't
change the order of elements.
I replaced `reshape_in_layout.format` (which returns `yxfb`) and
explicitly set `bfyx` format.
JIRA: 35288