* Migrate Gather operators to new API
* Remove redundant code form reference
* Use IF_TYPE_OF macro
* Remove unused include
* Use common utils in gather base
* Fix normalize after merge issues
* Remove usage of util::wrap_tensor
* Remove tensor conversion utils
make it local in model to remove with legacy evaluate
* Make only output tensor dynamic if Shape{0}
* Evaluate fixes on HostTensor
---------
Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
* Improve Constant creation from string values
* Optimize Constant creation from vector<T>
binary size reduction
* Fix code style
* Add tests to check there is no precision los
* Fix conversion for string -> integral numbers
---------
Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
* Use ShapeOf node output type to evaluate bound
- lower bound is not set to 0 when only upper is above inf
- update test where lower bound was set to 0 previously
- re-factor label evaluation
* Remove `max_et_val` from capture list
* Fix constexpr capture for MSVC
* Restore clear lower bound if upper is infinite
---------
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
* Integrate `IfTypeOf` class with CC
- Add macro to warp class to add support for CC
- Update `ccheader.py` to created PP symbols for template parameter list
- Use new macro in Convert operator
* Correct symbols generation
* Update OV PP macros
* Wrap TestVisitor into namespace{}
* Removed not required macros, update comments
* Update element_visitor.hpp
* Migrate Range operator to new API
- remove legacy function an duplicated shape inference
- Minor change range reference implementation
* Move accessing tensors after validation
* Migrate leftovers in Loop operator to new API
- use new version of `get_constant_from_source`
- migrate `is_rank_compatible_any_of` to dev API
- Improve rank compatibility checks
* Use new version of `is_rank_compatible_any_of`
instead deprecated to reduce bin-size
* Remove deprecated `is_rank_compatible_any_of`
* Optimize OV assertions to reduce bin-size of libs
* Migrate assertion leftovers in CPU plugin
* Add NotImplemented::create to support use with macro
OPENVINO_ASSERT_HELPER
* Remove CheckLocInfo struct
---------
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
* Migrate Convert operator to new API
* Unify Convert reference for non-LP types
* Correct evaluate when output tensor not allocated
* Correct input type name
* Restore static_cast for bool as char
* Migrate Constant operator to new API
- refactor to reduce binary size
* Fix code style
* Fix build issues
* Apply corrections after review:
- Restore mem_size calculation for bit widths >= 8
- Remove element type helpers functions
* Use float cast for floating types except f64
* Migrate Multiply operator to new API
* Add comment explain use of custom multiply
* Update custom multiply comment
Co-authored-by: Tomasz Jankowski <tomasz1.jankowski@intel.com>
---------
Co-authored-by: Tomasz Jankowski <tomasz1.jankowski@intel.com>
* Migrate Mish operator to new API
* Remove `visit_attributes` is same as base class
* Refactor Mish reference implementation
* Add cast as function is generic
-mish calculation is floating-point but return type can be integral.
* Fix constant folding in MulMulMulFusion
by add f64 precision in Multiply to perform evaluate for const folding
* Do not transform if input has not supported type
* MIgrate GridSample to new API
* Refactor GridSample to reduce binary size
- use function pointer instead std::function (simpler less code size)
- use RoundingGuard instead manual set/restore rounding mode
- move interpolate selection outside main data processing loop
* Migrate FloorMod operator to new API
* Remove `visit_attributes` is same as base class
* Restore FloorMod calculation for signed values
floating-point and integral
* Remove functions`get_tensor_data_as for HostTensor
* Remove HostTensor support in TA
* Update doxy comments
Co-authored-by: Tomasz Jankowski <tomasz1.jankowski@intel.com>
---------
Co-authored-by: Tomasz Jankowski <tomasz1.jankowski@intel.com>
* Migrate NotEqual operator to new API
* Remove `visit_attributes` is same as base
---------
Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
* Migrate Concat op to new API
* Move shape validation to shape_infer
* Fix getting concat axis in shape inference
---------
Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
* Migrate Transpose to new API
* Move shape validation to shape_infer
* Remove visit_attributes is same as base
* Correct transpose order shape check
for static shapes
- correct creation of order shape for static shape tests
---------
Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
* Add static shape adapter
- Adapters holds CPU dimension which can be reference to it or vector
- Add ov::optional for holding optional result from shape inference
- Add new `infer` function in `IStaticShapeInfer`
* Temporary support of StaticShape
* Minor corrections in ShapeInferenceTA
* Migrate shape_infer to new interface version
* Replace StaticShape by adapter implementation
* Replace IShapeInferCommon by IStaticShapeInfer
* Correct code formatting
* Fix build issues
* NodeValidationFailure::create for StaticShapeRef
* Review shape inference for reshape operator
- review shape_infer implementation
- add more unit test for static and dynamic shapes
* Fix build issues
* Correct minus one dim calculation
* Fix build issues on windows
* Improve resolving special minus one
* Use NODE_SHAPE_INFER_CHECK
* Update product in/out calculations
* Temporary add ngraph header to solve build issue
* Correct minus one dim calc when static part same
* Add check for scalar input
* Remove debug message
* Fix `minus one` dynamic dimension calculation
* Fix `minus one` dynamic dimension calculation
* Fix merge issues in reshape
Minor refactor reshape evaluate
* Don't pass input label on minus one pattern
when input dimension will be modified.
* Migrate Equal to new API
* Remove `visit_attributes` is same as base
* Remove i4, u4 from evaluate in Equal
reference implementation not handle binary precisions correctly
* Sync precisions in `has_evaluate` with `evaluate`
* Fix all equal check for lower bound
- make broadcast test assertion more strict
- remove deprecated functions from broadcast test
* Migrate Negative operator to new API
* Remove `visit_attributes` is same as base
* Use std::negate instead of lambda
---------
Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
* Migrate slice to new API
* Remove visit_attributes, is same as base class
* Move shape checks to shape_infer
- minor refactor Slice op
* Move `get_tensors_partial_shapes` to dev API
* Correct comment
Co-authored-by: Tomasz Jankowski <tomasz1.jankowski@intel.com>
---------
Co-authored-by: Tomasz Jankowski <tomasz1.jankowski@intel.com>
* Migrate Less operator to new API
* Migrate Greater operator to new API
- use less implementation in greater to reduce bin size
---------
Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
* Migrate Minimum op to new API
* Refactor evaluates to reduce binary size
- add infer_broadcast_shape, get shapes from tensors reduce OV_ASSERT
- refactor Evaluate structures to reduce binary size
---------
Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
* Preserve partial values on mod inputs
- static values full range of integers
- intervals only if not negatives
* Fix bounds evaluate when inputs are scalars
* Migrate VariadicSlice to new API
- refactor to reduce bin size
* Move `get_tensors_partial_shapes` to dev API
* Use get_tensors_partial_shapes in VariadicSplit
* Remove `visit_attributes` is same as base
* Migrate TopK to new API
* Refactor compare_max for TopK
* Unify check of k for const and non-const input
* Update src/core/include/openvino/op/util/evaluate_helpers.hpp
Co-authored-by: Tomasz Jankowski <tomasz1.jankowski@intel.com>
* Move `get_tensors_partial_shapes` to dev API
---------
Co-authored-by: Tomasz Jankowski <tomasz1.jankowski@intel.com>
* Refactor shape_size util to reduce bin size
* Make `check_new_args_count` non-template function
* Use as not template check_new_args_count
in multi-nominal
* Migrate ReduceL1, ReduceL2 to new API
- add some new utils which are deprecated
* Hide helper functions from public API
* Migrate reductions ops to new API
* Migrate get_constant_from_source to dev API
* Rename ref max to reduce_max
* Rename ref min to reduce_min
* Rename ref mean to reduce_mean
* Rename ref sum to reduce_sum
* Rename ref product to reduce_prod
- minor optimization in ReduceProd operator
* Restore custom isfinite for ov float types
* Fix type name in reduce_max.hpp
* Add missing include in shape_util.hpp
* Make count same type as data type in reduce mean
* Correct reduce sum doxy comment
* Migrate ops evaluate
* Remove using ngraph and std from ops
* Use OPENVINO_ASSERT instead of NGRAPH_CHECK
* Move `shape_util.hpp` to `dev_api/openvino/core/`
* Remove visit_attributes, same as base impl
* Fix build issues
* Fix build issues
* Migrate ReduceL1, ReduceL2 to new API
- add some new utils which are deprecated
* Add missing include
* Remove debug message
* Hide helper functions from public API
* Use API 2.0 in operators evaluate
- Drop ngraph namespace in ops
- Refactor reference implementation for modified ops
* Apply code style
* Fix build issue in reference impl
* Fix code style
* Fix compile warnings
* Add inputs check and set output shape in evaluates
* Add static shape adapter
- Adapters holds CPU dimension which can be reference to it or vector
- Add ov::optional for holding optional result from shape inference
- Add new `infer` function in `IStaticShapeInfer`
* Temporary support of StaticShape
* Minor corrections in ShapeInferenceTA
* Migrate shape_infer to new interface version
* Replace StaticShape by adapter implementation
* Replace IShapeInferCommon by IStaticShapeInfer
* Correct code formatting
* Fix build issues
* NodeValidationFailure::create for StaticShapeRef
* Review RegionYolo for shape inference:
- Check dynamic shape and label propagation
- Check static shape inference
- Review shape_infer template implementation
- Update unit test
* Remove commented test code
* Correct flatten dim calculation
* Add static shape adapter
- Adapters holds CPU dimension which can be reference to it or vector
- Add ov::optional for holding optional result from shape inference
- Add new `infer` function in `IStaticShapeInfer`
* Temporary support of StaticShape
* Minor corrections in ShapeInferenceTA
* Migrate shape_infer to new interface version
* Replace StaticShape by adapter implementation
* Replace IShapeInferCommon by IStaticShapeInfer
* Correct code formatting
* Fix build issues
* NodeValidationFailure::create for StaticShapeRef
* Review ReorgYolo op for shape inference
- Check partial shape and label propagation
- Check shape_infer implementation
- Update tests for static and dynamic shapes
* Change dim::is_valid to dim::is_empty
* Add static shape adapter
- Adapters holds CPU dimension which can be reference to it or vector
- Add ov::optional for holding optional result from shape inference
- Add new `infer` function in `IStaticShapeInfer`
* Temporary support of StaticShape
* Minor corrections in ShapeInferenceTA
* Migrate shape_infer to new interface version
* Replace StaticShape by adapter implementation
* Replace IShapeInferCommon by IStaticShapeInfer
* Correct code formatting
* Fix build issues
* NodeValidationFailure::create for StaticShapeRef