* add new operations as unary
* get unary as input(0) instead of iterating pattern map
* add CumSum + unit tests
* add Tile + unit tests
* add tile
* fix ts_tile
* code review fix: use ADD_MATCHER
* fix bug CI tests
* Optimize CompressQuantizeWeights transformation
- remove CoordinateTransform usage from FakeQuantize reference implementation
- move ZeroPointOptimizer functionality inside CompressQuantizeWeights
- compute scale and zero point in the same loop
Ticket: CVS-119273
* review comments
* clang format
* fix comments
* Do not normalize negative indices for Gather v8
* code style fix
* added transformation test with accuracy check for Gather-v8
* removed GatherNegativeConstIndicesNormalize transformation at all
* ConvertGather8ToGather7 conversion: added more checks
* Introduced shared Gather8withIndicesDataLayerTest: added CPU, GPU instances
* code style fix
* small fix
* review fixes
* do negative indices normalization if possible
* code style fix
* refactor cpu test instances
* code style fix
* [transformations] WeightsDequantizeToFakeQuantize: Extend pattern matching with the case when both Subtract inputs are Convert
* [transformations] WeightsDequantizeToFakeQuantize: Added new tests to cover the extention added to pattern match
* Fix review comments
* Add EnableShapeOfConstantFolding transformation
Transpose sinking (that is used in TF frontend) disables ShapeOf constant folding
which prevents some optimizations further in the pipeline.
This patch introduces EnableShapeOfConstantFolding that removes DisableConstantFolding
from ShapeOf nodes.
Ticket: CVS-118890
* add description
* review comments
* headers
* Symbolic shape inference and graph optimizations
- Prepares a place in CommonOptimizations pipeline for symbolic optimizations
- Introduces symbolic propagation and symbolic optimizations for ChainedMaximum, NopBroadcast and shape sub-graph optimization
- Introduces utility runtime info for TableOfEquivalence passing and disabling of value invalidation during shape inference
* Executes NgramFusion in a symbolic environment. Relaxes Ngram fusion pattern utilizing symbolic knowledge
* Remove debug model visualization
* rt_info copying to new Add operation
* Fix visualization and place validation in nicer place in symbolic transformation
* Fix Slice operation not to propagate labels if input and output dimension is fully dynamic
* Covering Vladislav comments
* Replace value invalidation followed by validation to revalidation since it does the same thing
* Adding back invalidation of cached values to Symbolic Propagation pass
* Fix StridedSlice label propagation. Code style
* Update src/common/transformations/tests/symbolic_transformations/nop_broadcast.cpp
* Handle negative values in GroupedSliceToVSplitOptimization
CVS-118897
* change the way of getting slice inputs
* clamp value
---------
Co-authored-by: Ivan Tikhonov <ivan.tikhonov@intel.com>
* Move BroadcastTransition to MOC
Broadcast that could be eliminated by BroadcastElementwiseFusion are moved down the graph
(by BroadcastTransition registered in the plugins). That prevents BroadcastElementwiseFusion
to eliminate them.
Ticket: CVS-118899
* dont count const layers
* remove virtual inheritance
* Restored opset1::Reshape label peropagation for -1 special value
* Lets opset1::Reshape keep same shape infer. Makes FindBatch transformation keep labels in output shapes of Result node
* uses Parameter from correct namespace
* TransposeSinking - add support for ShapeOf
It's often in the model that transposes have two consumers: ShapeOf and
another transpose and with ShapeOf absent - the transpose pair could be eliminated.
This patch's approach is to propagate a transpose through ShapeOf by creating
"ShapeOf->Gather" subgraph and replacing ShapeOf's input with transpose input.
Ticket: CVS-118896
* enhance docs
* API 2.0 replace ngraph headers and namespaces in CPU, LPT etc transformations tests
* revert the incorrect renaming
* function -> model in arm transformation tests
* Move files to new directories
* Use quotes for openvino includes
* Provide proxy calls for transition
of dependant components.
* Correct includes style
* Redo proxies
* Fix deprecated
* Move aliases to proxy files
* Apply code style
For some (e.g. quantized) models, W, R, B inputs to sequence operations
are not direct constants, but a subgraph that can be constfolded later.
In that case, we don't need to have them as inputs to TensorIterator,
they can be pulled into its body instead.
Ticket: CVS-117544
* WIP Postpone fp16 in CompressFloatConstantsImpl
* Apply suggestions from code review
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
* WIP: Compression to FP16 in Serialize
* Prepared for efficient fp32 to fp16 conversion
* Update src/core/reference/src/runtime/reference/convert.cpp
* Called real slow reference implementations in the place where the optimized versions are supposed to be implemented
* Code style
* Fixed 0 values in the fast f64 to f16 compression
* Optimized convert_from_f32_to_f16_with_clamp
* Added optimized f32->f16 instance of change_constant_precision
* compression transformation Python test
* use tmp dir, minor corrections
* Update src/bindings/python/tests/test_transformations/test_compression.py
* Update src/bindings/python/tests/test_transformations/test_compression.py
* style fix
* define rt_info for postponed_fp16_compression
* remove redundant class
* fix temp dir for Win in test_compression.py
* update definitions in convert.hpp
* Update implementation in convert.cpp
* Update serialize.cpp
* Update compress_float_constants.cpp
* added macros for ARM/non_x86 in convert.cpp
* fix macros in convert.cpp
* change fixme placement in serialize.cpp
* style_fix
* Update src/core/reference/src/runtime/reference/convert.cpp
* style_fix
* Optimized count_out_of_f16_range
* Code style
* Revert unused
* Update src/core/src/pass/serialize.cpp
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
* Update src/core/reference/src/runtime/reference/convert.cpp
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
* use optimized convert_from_f32_to_f16_with_clamp for non postponed
* minor corrections
* Update src/common/transformations/src/transformations/common_optimizations/compress_float_constants.cpp
* Update compress_float_constants.cpp
* Switched mo and ovc to save_model instead of serialize to leverage performance improvements in fp32->fp16
* Applied minor code imporvements to address review feedback
* Minor changes in code
* Update tools/ovc/openvino/tools/ovc/main.py
* Apply suggestions from code review
* Fixed failed test in case when both usual xml compression and fp16 compression are applied simultaneously (disabled for now)
* Added description for CompressFloatConstantImpl postponed parameter
* Description of postponed parameter for CompressFloatConstants
* Reverted switching to save_model in mo as the compression can be applied not only via CLI and old code should be kept for Python path (not applicable for ovc)
* Removed remining committed test artefacts and reverted remaining changes in mo
---------
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
Co-authored-by: dmitrygo <dmitry.gorokhov@intel.com>
Co-authored-by: Vladimir Paramuzov <vladimir.paramuzov@intel.com>
Co-authored-by: Pavel Esir <pavel.esir@intel.com>
Co-authored-by: Pavel Esir <pavel.esir@gmail.com>
* Added shape and type infer for result nodes in MOC transformations.
* Clang format.
* Added validate_nodes_and_infer_types() pass at the end of MOC pipeline.
* Clang format.
* Added test.
* Clang format.
* [FIX][CPU] Convert CF: added convert childs number check
* code style fix
* WIP: [CPU][TESTS] Convert CF: Added subgraph test with two outputs for Convert node
* MatMulDecompressConvertTest refactoring + instances fixes
* removed KeepConstAndDecompressionForMatMul pass and added cpu callback for KeepConstAndDecompression
* MatMulDecompressConvertTest2: added graphs and small problem description
* small review fix