Commit Graph
452 Commits
Author SHA1 Message Date
Maxim VafinandIvan Tikhonov 4799e021bf Fuse same MaxPools, Pads, etc (#21481)
* Fuse same MaxPools, Pads, etc

* Update src/common/transformations/src/transformations/common_optimizations/shared_ops_optimization.cpp

* Fix codestyle

* Fix includes

* Fix max pool

* Update src/common/transformations/src/transformations/common_optimizations/shared_ops_optimization.cpp

---------

Co-authored-by: Ivan Tikhonov <ivan.tikhonov@intel.com>
2023-12-15 17:25:42 +04:00
Evgenya Nugmanova e5a6077877 Enables SharedOpOptimization for v1 and v3 Broadcasts (#21635) 2023-12-14 10:33:00 +01:00
Tomasz Jankowski 0649865372 [Core] Move validation util into dev API (#21501)
* Move infer_convolution_forward to dev API

* Move infer_auto_padding to dev API

* Move evaluate_as_partial_shape to dev API

* Move default_label_evaluator to dev API

* Move generate_transpose_default_order to dev API

* Move is_valid_axes_order to dev API

* Move has_no_labels to dev API

* Remove usage of legacy get_constant_from_source

from core and transformations

* Move normalize_axes to dev API

* Move normalize_axis to dev API

* Deprecate functions to be removed later
2023-12-14 10:10:46 +01:00
Mateusz Mikolajczyk 336a69ec24 Enable BitwiseOps to LogicalOps transform for static bool dtype on CPU plugin (#21510)
* Re-enable bitwise-logical transform in CPU plugin

* Update docstrings
2023-12-13 18:39:40 +01:00
65439eda5d [Core][CPU] Add transformation for i64 support for Multinomial (#21469)
* [CORE] Add transformation for i64 support for Multinomial

* [CPU][TESTS] Apply test suggestions, remove unnecessary override - comment from cpu PR

* Update src/common/transformations/src/transformations/convert_precision.cpp

Co-authored-by: Mateusz Tabaka <mateusz.tabaka@intel.com>

* Update src/common/transformations/src/transformations/convert_precision.cpp

Co-authored-by: Mateusz Tabaka <mateusz.tabaka@intel.com>

---------

Co-authored-by: Ivan Tikhonov <ivan.tikhonov@intel.com>
Co-authored-by: Mateusz Tabaka <mateusz.tabaka@intel.com>
2023-12-13 20:22:34 +04:00
Oleg Pipikin 3fb60dc41c Subgraph builders refactor (#21373)
* Refactor subgraph builders

* Refactor make_conv_pool_relu builder

* Refactor make_conv_pool_relu_no_reshapes builder

* Refactor make_conv_pool2_relu2 and make_conv_pool_relu_non_zero

* Refactor make_split_conv_concat builders

* Refactor make_kso_function

* Refactor make_split_multi_conv_concat

* Refactor make_ti_with_lstm_cell

* Refactor make_single_conv

* Refactor make_detection_output

* Refactor make_multi_single_conv

* Refactor make_2_input_subtract

* Refator make_nested_branch_conv_concat

* Refactor make_nested_split_conv_concat

* Refactor make_conv_bias

* Refactor make_read_concat_split_assign

* Refactor make_matmul_bias

* Refactor make_convert_transpose

* Refactor make_multiple_input_output_double_concat
2023-12-13 10:46:31 +01:00
Vitaliy Urusovskij ef14b50d79 src/common/*transformations/ API1.0 clean up (#21574)
* `src/common/transformations/` API1.0 cleanup

* `src/common/low_precision_transformations/` API1.0 cleanup

* Fix comments

* Fix
2023-12-13 10:50:42 +04:00
Georgy Krivoruchko a3de4c17a1 [ONNX] QDQ uint16 support (#21278)
* [ONNX] QDQ uint16 verification
* Added tests
2023-12-08 17:04:40 +04:00
Andrey Kashchikhin dfc91186a1 [CI] [GHA] Extract test jobs into reusable workflows (#21395)
* extract cpu func tests into a reusable workflow

* add needs

* check paths

* correct paths

* rm usage of setupvars

* extract samples

* use yaml string

* split mac workflow

* check variables

* try github workspace

* check full dir

* set variables

* try with sub directory

* Revert "try with sub directory"

This reverts commit d891ee3f28.

* extract c++ tests from linux

* change

* use cxx workflow in mac workflows

* add noninteractive

* extract cpu func tests

* rm unused

* enable mac

* fix reusable workflow name

* correct path for sparse-checkout

* extract python UT

* remove unnecessary asterisk

* remove another unnecessary asterisk

* use reusable action for linux cc

* add check for setupvars existence

* check with manually installed opencl

* add components input to samples workflow; rm pr triggers for mac workflows

* add missing needs

* add missing option for deps install  script

* use disables in test themselves instead of ifs in workflows

* use reusable workflow for cxx tests in linux arm

* use python reusable workflow in linux arm

* add missing endif

* use self-hosted for samples, add x86_64 constraint for jax

* check paths

* find gompby partial name

* skip failing tests on arm; correct gomp finding for ovc

* check tests

* add debian packages job; use job_ prefix for reusable workflows with jobs

* extract tf hub model tests

* extract tf model hub perf tests

* extract pytorch models tests

* do not use container on GHA runners

* extract onnx runtime

* add missing deps

* skip test for linux arm

* rm always()s

* fix quotes

* correct paths

* correct ifs, check dir for onnxruntime

* correct path for onnxruntime utils folder; install python3

* use self-hosted as input

* check for self-hosted runner via name, pass version

* skip cpu plugin unittest

* check cxx tests

* rm pr trigger
2023-12-07 23:44:45 +04:00
Maxim Vafin dd8f4f3661 Fix ClampFusion for case when min is greater then max (#21509) 2023-12-07 17:58:38 +04:00
River Li 886e0b9f59 [CPU Tests] Migrate subgraph_test to be api 2.0 - part 1 (#21358)
* [CPU Tests] Migrate subgraph_test to be api 2.0 - part 1

* Update

* Handle ngraph::pass::ConvertPrecision issue

* Remove unused config variable
2023-12-07 16:33:54 +04:00
b29a08d15c RPE operation and fusing transformation (#20734)
* RPE operation and fusing transformation

* Correct includes

* Apply suggestions from code review

Co-authored-by: Pawel Raasz <pawel.raasz@intel.com>

* Comments adressed

* Misprints

* Update src/common/transformations/src/transformations/common_optimizations/fuse_rotary_positional_embeddings.cpp

Co-authored-by: Pawel Raasz <pawel.raasz@intel.com>

* Ivan comments adressed

* Update src/common/transformations/src/transformations/common_optimizations/fuse_rotary_positional_embeddings.cpp

Co-authored-by: Pawel Raasz <pawel.raasz@intel.com>

* Fix includes and adds comments

---------

Co-authored-by: Pavel Durandin <pavel.durandin@intel.com>
Co-authored-by: Pawel Raasz <pawel.raasz@intel.com>
2023-12-07 11:37:43 +01:00
Andrey Kashchikhin 62f5bd6570 [CI] [GHA] Introduce the Linux ARM64 workflow (#20809)
* add arm as a matrix for build job

* uncomment

* comment

* try inside pipeline

* check location

* another dirs

* try to privide correct action path

* use corrected action

* use newer commit

* use newer commit

* use newer commit

* use newer action commit

* add setting

* rm from pipeline, adapt action iteslf

* add missing deps

* enable samples and debian jobs

* correct yml

* correct image name

* correct syntax, use self-hosted option

* enable onnx runtime and c++, use newer action

* enable Python and CPU Func tests

* add missing deps for arm64

* increase timeout for python tests

* disable some tests, add more time

* skip failing tests

* skip speech sample test on arm

* dummy chang

* skip mxnet mo on arm, run all tests

* rm quotes

* separate linux x86 and arm64 workflows

* rm unused matrix refs, add timeouts

* add skips for c++ tests and some Python tests

* correct cache keys, extend timeout

* skip more python tests

* add more skips: for python and CPU func

* extend cpu func list with skips

* disable cpu func tests and python api 2.0 tests

* rm disable job

* styling, rm pr trigger, rm always(), rm unnecessary changes

* revert

* use ifs instead of comments, provide better wording for skips
2023-12-05 12:14:02 +04:00
Evgenya Nugmanova a6903b8398 [Symbolic Transformation] DeReshape FullyConnected (#21419) 2023-12-05 12:05:03 +04:00
Xuejun Zhai 9c94873842 Upgrade CPU func tests to 2.o (#21357)
* [CPU Plugin][Func Test] Upgrade AddConvertToReorderTest to API 2.0

Signed-off-by: Zhai, Xuejun <xuejun.zhai@intel.com>

* [CPU Plugin][Func Test] Upgrade AlignMatMulInputRanksTest to API 2.0

Signed-off-by: Zhai, Xuejun <xuejun.zhai@intel.com>

* [CPU Plugin][Func Test] Upgrade GatherAddAvgpool to API 2.0

Signed-off-by: Zhai, Xuejun <xuejun.zhai@intel.com>

* [CPU Plugin][Func Test] Upgrade InputNoReorderEltwiseBF16 to API 2.0

Signed-off-by: Zhai, Xuejun <xuejun.zhai@intel.com>

* [CPU Plugin][Func Test] Fix review comments

Signed-off-by: Zhai, Xuejun <xuejun.zhai@intel.com>

---------

Signed-off-by: Zhai, Xuejun <xuejun.zhai@intel.com>
2023-12-05 10:24:55 +04:00
Maxim Vafin 7d2afa4d38 ConcatFusion: check that replacing input has only 1 consumer (#21425)
* ConcatFusion: check that replacing input has only 1 consumer

* Add test
2023-12-01 16:58:19 +00:00
Evgenya Nugmanova 055e3d274f Symbolic review leftovers (#21388)
* Correct include pragmas in symbolic transformations

* Allow for more Reshapes to be optimized via symbolic Reshape Optimization
2023-12-01 15:50:47 +04:00
abfbdd1b96 [Core] Support String Tensors (#21244)
* [Core] Support String Tensors

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

* Add String Constant implementation

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

* Fix build issue in tests

* Add cast_vector for Constant of ov::string type

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

* Fix build issue

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

* Fix build issue: ambiguous type in GNA

* Fix ambiguous build issue in GNA tests

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

* Fix code-style

* Fix code-style

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

* Fix ambiguous build issue in GNA tests

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

* Fix ambiguous build issue in TF FE tests

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

* Update openvino.style for naming convention check

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

* Fix compilation error in core unit tests - need typename

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

* Add test for new element_type

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

* Fix code-style

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

* Update src/inference/src/dev/make_tensor.cpp

Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>

* Add support of string Tensors for Constant

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

* Fix copying string tensor value for Constant

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

* Complete template methods for Constant

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

* Improve performance for initialization and destruction of string Tensor for set_shape

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

* Add check for string value in test

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

* Remove unused variable

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

* Update src/inference/src/dev/make_tensor.cpp

* Fix copy_to for ITensor of string type and add tests

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

* Add tests for Constant of string type and serialization

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

* Use memset_allocation to switch initialization

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

* Add additional documentation for host_ptr

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

* Update src/core/src/op/constant.cpp

* Use OPENVINO_THROW

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

* Update src/core/include/openvino/op/constant.hpp

* Update src/core/include/openvino/op/constant.hpp

Co-authored-by: Pawel Raasz <pawel.raasz@intel.com>

* Apply code-review feedback: use string_size

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

* Apply code-review feedback

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

* Recover evaluate impl for non-string type

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

* Fix code for creating of string constant for legacy non HostTensor tensor

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

* Fix build issue

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

* Apply code-review feedback: simplify copy_to method

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

* Fix build issue

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

* Use StringAlignedBuffer to store string Constant values

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

* Remove not needed methods in StringAlignedBuffer

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

* Refactor set_shape method

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

---------

Signed-off-by: Kazantsev, Roman <roman.kazantsev@intel.com>
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
Co-authored-by: Pawel Raasz <pawel.raasz@intel.com>
2023-12-01 11:17:53 +04:00
Pawel Raasz c608771e03 [core]Migrate get_node_input_partial_shapes to dev API (#21302)
* Migrate `get_node_input_partial_shapes` to dev API
and use it instead deprecated

* Remove deprecated version

* Remove not required header
2023-12-01 06:12:16 +01:00
Evgenya Nugmanova 243898560f Reducing ShapeOf sub-graphs for Flatten-like Reshapes (#21365)
* Extends SharedOpsOptimization with ScatterUpdate support

* Introduces Flatten operation symbolic optimization

* Code Style: tests

* Test fix

* Refactor
2023-11-30 12:21:18 +04:00
Maxim Vafin f90a4b9d31 Add transformation to fuse Concat sequence (#21310)
* Add transformation to fuse Concat sequence

* Update src/common/transformations/src/transformations/common_optimizations/concat_fusion.cpp
2023-11-28 13:34:27 +04:00
Ivan Tikhonov 57d794c810 ConvertPrecision transformation: handle Assign, ReadValue and Variable (#21266)
* ConvertPresicion transformation: handle Assign, ReadValue and Variable

* revert debug code

* use correct commit for onednn_gpu

* codestyle
2023-11-27 18:34:31 +04:00
Vladislav Golubev 598da6e5c0 [Transformations] Leftovers: FuseU4WeightsAndZeroPoint transformation (#20709)
* util::visit_constant_path

* ConvertU4WeightsZeroPointToScalar: avoid unnecessary insert

* Review comments applied

* codestyle fix
2023-11-27 10:38:05 +01:00
Ivan Tikhonovandcecilia peng a329611349 Support dynamic shapes in ReadValue/Assign ops and MakeStateful transformation (#20404)
* Support for dynamic shapes in ReadValue/Assign ops and MakeStateful transformation

* fix unit tests

* codestyle

* fix warning

* fix visitors test

* Fix lowLatency transformation, fix functional tests

* fix LowLatency2

* codestyle

* Fix CPU/GNA tests

* fix shape inference of assign operation

* fix python API

* fix mypy error

* Fix read_value operation version in python API for opsets7-13

* Update python API and fix tests

* set the same Varibable obj to Assign/ReadValue in py API, disable fp16 memory tests

* Update shape inference methods of Assign, ReadValue; update tests; fix codestyle

* fix python codestyle

* fix tests

* Resolve review comments

* codestyle

* resolve review comments

* codestyle

* Update ReadValue op in kaldi frontend, fix GNA tests

* fix Assign/ReadValue bindings, fix read_value test

* Apply suggestions from code review

Co-authored-by: cecilia peng <cecilia.peng@intel.com>

* Fix functional tests, add ov::Type support as an argument for read_value py binding

* temporary disable test_query_state_write_buffer fp16 tests

* Fix backward compatibility with the IRs with ReadValue/Assign ops generated via prev versions of OV; fix func tests

* fix python test, support type as str in read_value/assign bindings

* fix model binding

* fix pre-commit tests: variables vector cleanup

* fix integration with cpu changes

* codestyle

* fix warning

* Fix type/shape validation for read_value op

* fix a type_prop test for assign op

---------

Co-authored-by: cecilia peng <cecilia.peng@intel.com>
2023-11-21 20:59:36 +04:00
Maxim VafinandRoman Kazantsev 570817998d Update reverse infer to allow changing shape if it already partially defined (#21073)
* Update reverse infer to allow changing shape if it already partially defined

* Update tests

* Remove changes in If

---------

Co-authored-by: Roman Kazantsev <roman.kazantsev@intel.com>
2023-11-20 21:57:43 +00:00
Pawel Raasz af27b6f16a Add checking compatible types for Gathers GroupedGatherElimination (#20979)
* Check Gathers 2nd input type to avoid Concat exception
in GroupedGatherElimination transformation

* Add indices conversion if possible
2023-11-20 14:59:37 +04:00
Evgeny KotovandIvan Tikhonov ecd1972c24 don't fold ShapeOf in TransposeSinking (#20742)
* add to DisableShapeOfConstantFolding flag; set it in ts_gather; add unit test

* fix ts_general; use check_shape flag in EnableShapeOfConstantFolding

* set EnableShapeOfConstantFolding constructor explicit

---------

Co-authored-by: Ivan Tikhonov <ivan.tikhonov@intel.com>
2023-11-20 14:57:19 +04:00
Vitaliy Urusovskij bcb38796ce Ngraph helpers/builders cleaning (#20819)
* Delete `getNodeSharedPtr()`

* Remove `makeRoll` ng::builder

* Delete `makeSelect` ng::builder

* Delete `makeDepthToSpace` ng::builder

* Remove `CompareFunctions` and `getConstData` from ng::helpers

* Return `makeSelect` for compatibility with NPU

* Port `QuantizationGranularity`, `MemoryTransformation`

* Restore ng::helpers::QuantGranularity for BWD CMP
2023-11-09 10:51:00 +04:00
854158612f Scaled dot product attention (#20492)
* Added experimental ScaledDotProductAttention operation in opset12. Supported in PT FE for aten::scaled_dot_product_attention translation. Decomposed in the common optimizations as functional reference.

* Better ScaledDotProductAttention

- Moved decomposition to the decomposing transformation
- Implemented more ctors for the op
- Renamed is_causal to causal
- Shape/type inference native code instead of using decomposition
- Moved the op from opset12 to opset13
- Added Python wrapper for ScaledDotProductAttention

* Fix test that counts ops in the opsets

* Update src/core/src/op/scaled_dot_product_attention.cpp

Co-authored-by: Katarzyna Mitrus <katarzyna.mitrus@intel.com>

* Update src/core/src/op/scaled_dot_product_attention.cpp

Co-authored-by: Katarzyna Mitrus <katarzyna.mitrus@intel.com>

* Move ScaledDotProductAttentionDecomposition from fusions to decompositions.

* Remove not used legacy shape inference in ScaledDotProductAttention

* Better namespace usage

* Register all nodes in ScaledDotProductDecomposition for correct tracking of nodes and running next mather passes on all new nodes.

* Don't use register_new_node_

* ScaledDotProductAttention specification (with an extra scale argument)

* Code style fix

* Scale input implementation for ScaledDotProductAttention

* Handle attention_mask=0 case in the op spec

* Better description of scale input

* N->M in scale description

* Code style fix, remove debug print.

* Apply suggestions from code review

Co-authored-by: Katarzyna Mitrus <katarzyna.mitrus@intel.com>
Co-authored-by: Mateusz Mikolajczyk <mateusz.mikolajczyk@intel.com>

* Fix for case when is_causal is not passed

* Extended description of ScaledDotProduct op

* Better description in py op wrapper

* Basic shape propagation tests for ScaledDotProductAttention

* Added ScaledDotProductAttention to toc.

* Add op impl check

---------

Co-authored-by: Katarzyna Mitrus <katarzyna.mitrus@intel.com>
Co-authored-by: Mateusz Mikolajczyk <mateusz.mikolajczyk@intel.com>
2023-11-08 20:17:13 +01:00
Vladislav Golubev c2d09b9a15 FuseU4WeightsAndZeroPoint tests: avoid std::vector<std::int8_t> usage (#20918) 2023-11-08 19:54:23 +04:00
Pawel Raasz 368e6bfb8a Fix constant folding in MulMulMulFusion (#20803)
* 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
2023-11-07 11:57:29 +01:00
Aleksandr Voron c3948ca799 [nGraph Transformations] NMS convert precisions - change sequence of checks (#20795) 2023-11-07 14:34:12 +04:00
Mateusz Tabaka 4084e9acc0 Handle Reshape's special zero in SimplifySecondInputOfReshape (#20785)
* Handle Reshape's special zero in SimplifySecondInputOfReshape

SimplifySecondInputOfReshape detects ShapeOf->Gather->Concat
subgraphs on Reshape's second input and replaces ShapeOf->Gather
with a Constant with zero(s). Currently it works only with Reshapes
that have special_zero set to true, but it can work for Reshapes
with special_zero == false if non-Gather inputs to Concat are Constants
and don't contain any zero.

Ticket: CVS-123434

* fix no default output
2023-11-01 18:02:36 +04:00
Mateusz Tabaka 48c9598892 Handle Reshape in SplitSqueezeConcatFusion (#20345)
* Handle Reshape in SplitSqueezeConcatFusion

Ticket: CVS-122455

* move check for squeeze/reshape

* add some comments

* review comments

* add use_shapes flag to SplitSqueezeConcatFusion
2023-10-31 17:05:21 +04:00
Nikolay Shchegolev 57571d36e6 [CPU] NMSRotated operation implementation. (#20410) 2023-10-31 12:10:52 +00:00
Vladislav Golubev 2932e9e938 ReshapeBMatMul and ReshapeAMatMul: avoid circular dependencies creation (#20771) 2023-10-31 15:00:52 +04:00
Mateusz MikolajczykandKatarzyna Mitrus fdb22c8610 [Opset13][PT FE] Update torch bitwise operators (#20339)
* Add opset-13 bitwise implementation

* Improvements in test

* Add transformation BitwiseOps->LogicalOps for bool

* Improve existing tests to better tests dtypes

* Disable transformatiions for supported bitwise ops

* Improvebitwise test inputs

* Update src/common/transformations/src/transformations/op_conversions/convert_bitwise_to_logical_bool.cpp

Co-authored-by: Katarzyna Mitrus <katarzyna.mitrus@intel.com>

* Update src/common/transformations/src/transformations/op_conversions/convert_bitwise_to_logical_bool.cpp

Co-authored-by: Katarzyna Mitrus <katarzyna.mitrus@intel.com>

* Update src/common/transformations/src/transformations/op_conversions/convert_bitwise_to_logical_bool.cpp

Co-authored-by: Katarzyna Mitrus <katarzyna.mitrus@intel.com>

* Update src/common/transformations/src/transformations/op_conversions/convert_bitwise_to_logical_bool.cpp

Co-authored-by: Katarzyna Mitrus <katarzyna.mitrus@intel.com>

* Update to REGISETR_PASS

---------

Co-authored-by: Katarzyna Mitrus <katarzyna.mitrus@intel.com>
2023-10-30 13:11:14 +00:00
Pavel EsirandAndrei Kochin 539b5a83ba keep disable_fp16_compression rt_info (#20625)
* keep disable_fp16_compression rt_info

* style fix

* style fix 2

* cleanup init_node_info.cpp; redefining a class for rt_info in Serialize

* move rt_info refreshing inside serialize.cpp

* rename rt_info name in IR

* add rt_info serialize test

* add ticket number

* updated comments

* code style fix

---------

Co-authored-by: Andrei Kochin <andrei.kochin@intel.com>
2023-10-27 22:41:37 +00:00
Pawel Raasz 751d844b24 [shape infer]Review Reshape class for shape inference aspects (#18679)
* 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.
2023-10-27 16:56:25 +02:00
Ivan Tikhonov 69e1258cc5 Support dynamic seq lenghts in ConvertSequenceToTensorIterator transformation (#20671) 2023-10-27 16:55:52 +04:00
Evgenya Nugmanova f2b26962fa De-Reshape MatMul (#20396)
* De-Reshape MatMul

* Fixed includes

* Comments resolved

* Style

* comment adressed
2023-10-25 09:04:04 +00:00
Vladimir Paramuzov 3313d1ce7a [GPU] FC with 4-bit weights compression support for iGPU (#20572) 2023-10-25 12:45:31 +04:00
Oleksii Khovan 984e4dbf35 [GPU] NMSRotated-13 (#20411)
* Add Rotation support to primitive and kernel

* Add unit tests

* Add transformation for NMSRotated

* add single-layer tests

* Fix: angle value for the same box may have its sign changed several times passing through iterations of batch and class loops.

* fix review comments
2023-10-24 21:36:02 +02:00
Evgeny KotovandIvan Tikhonov 22184c32f4 fix random layer names and count (#20323)
* add sorting for fix sporadic failure in SharedOpOptimization shared_node_optimization

* fix Output and Input comparison

* remove unneed sorting from transformation

* add unit test

* code review fixes

* code review fixes

* code review fixes

* code review fixes

---------

Co-authored-by: Ivan Tikhonov <ivan.tikhonov@intel.com>
2023-10-24 18:18:50 +02:00
Evgeny Kotov 251602636c Fuse GeLU (#20428)
* add transformation + test

* move transformation to GeluFusion

* add comments

* code review fixes

* fix

* code review fixes

* code style fix

* fix windows build warning
2023-10-24 18:23:14 +04:00
Mateusz Tabaka b7406247ff Add TransposeMatMul transformation to MOC (#20460)
Transformation fuses Transpose on first or second MatMul's input
and sets MatMul's transpose_a/transpose_b accordingly.

TransposeMatMul is already part of SmartReshape, but it can be added
to MOCTransformations as well so native models that are don't use reshape
can benefit from that.

Ticket: CVS-118908
2023-10-24 14:40:36 +02:00
Mateusz TabakaandIvan Tikhonov 2668f68816 CompressQuantizeWeights - fix zero point calculation (#20541)
Current implementation tries to leverage branchless approach, but it's not correct
if scale is 0. In that case - zero point can can become inf or nan and multiplication
by 0 doesn't change its value. That causes another issue - infinite or NaN zero point
cannot be optimized out later.

Ticket: CVS-122931

Co-authored-by: Ivan Tikhonov <ivan.tikhonov@intel.com>
2023-10-24 10:21:06 +02:00
Vladislav Golubev afda7ad70f [Transformations] FuseU4WeightsAndZeroPoint transformation (#20503) 2023-10-24 09:44:26 +04:00
Roman KazantsevandMaksim Kutakov 009ef5657c [TF FE] Provide full support of TF1 Control flow and TensorArray* ops (#20270)
* [TF FE] Provide full support of TF1 Control flow and TensorArray ops

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

* Add missed header for TensorArrayV3 op

* Temporarily disable GRU cell fusion

* Update src/common/transformations/src/transformations/common_optimizations/moc_transformations.cpp

* Fix a case when element_shape for TensorArrayV3

* Fix translator for TensorArrayCloseV3

* Update summarize graph with TensorArrayCloseV3

* Add layer tests for TensorArrayScatterV3, Close, Size, Array

* Fix output shape for Merge node

* Remove unused variable

* Fix translator for TensorArrayConcatV3

* Fix translator for TensorArrayConcatV3

* Add layer tests for TensorArrayWriteV3, Gather, and Concat

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

* Add translator for GatherTree

* Fix TF FE unit-test for GatherTree

* Fix GatherTree translator

* Fix GatherTree translator to handle 1d end_token

* Fix undeclared parameter issue

* Fix GatherTree unit-test

* Add TensorArrayV3Replacer transformation

* Temporarily disable dangling transformation

* Recover RemoveMultiSubGraphOpDanglingParamsResults transformation

* Recover GRUCellFusion transformation

* Simplify check for GRUCellFusion transformation

* Use proper name for unit-tests

* Simplify translator for TensorArrayWriteV3

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

* Fix RemoveMultiSubgraphOpDanglingParamsResults transformation

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

* Additional fix for remove_multi_subgraph_op_dangling_params

* Make static TI run a dynamic subgraph

* Dedicated SL test

* Change condition to respect stat shapes

* Adjust test to cover the code path properly

* Recover fallback for still failing case GNMT

---------

Signed-off-by: Kazantsev, Roman <roman.kazantsev@intel.com>
Co-authored-by: Maksim Kutakov <maksim.kutakov@intel.com>
2023-10-23 22:50:26 +02:00
46935e0a00 Partial GPTQ int4 models conversion support + Swap nibbles in u4/i4 element type (#20371)
* Reference implementation for u4 constant compression from pytorch model based on bitwise ops pattern

* Fixed order of 4-bit halfs in byte

* Switched PyTorch FE to dev mode: in case if model cannot be fully converted, give partially converted model with PTFrameworkNode's with a printed warning (normally would raise an exception in case).

* Moved u4 compression to utils_quantize. Implemented not-interleaved version of u4 compression

* Removed debug output

* Added aten::matmul to the list of exceptions in may_produce_alias as a workaround for gptq models

* Added patching for gptq models applied automatically in convert_model

* WA for an inssue with u4 with earlier convert to fp16

* U4 blocked repacking for gptq patched model layout

* Deleted obsolete u4 re-packing based on aten::cat. Fixed the resulting u4 constant shape. Removed debug output.

* Revert "Switched PyTorch FE to dev mode: in case if model cannot be fully converted, give partially converted model with PTFrameworkNode's with a printed warning (normally would raise an exception in case)."

This reverts commit 0ef1455e70.

* Update src/frontends/pytorch/src/op/cat.cpp

* Check mask and shift values in u4 pattern. deque -> OutputVector for u4_compression_stack

* Convert to a given floating type instead of half in gptq patching. Better structured code.

* Code style fix

* Removed deque include

* Code style fixes

* Trailing space removed

* Fixed patched_forward and ts_decoder after unvalidated commits.

* Swap nibbles in u4/i4

* Better exception handling around jit.trace and gptq.patch_model

* Update src/bindings/python/src/openvino/frontend/pytorch/gptq.py

Co-authored-by: Alexander Kozlov <alexander.kozlov@intel.com>

* Update src/bindings/python/src/openvino/frontend/pytorch/gptq.py

Co-authored-by: Alexander Kozlov <alexander.kozlov@intel.com>

* Code style

* Revers int4 byte order

* Fixed core tests

* Fixed unguarded dynamic_cast result

Co-authored-by: Evgenya Nugmanova <eva.my.link@gmail.com>

* Fixed transformation tests

* Update src/bindings/python/src/openvino/frontend/pytorch/gptq.py

Co-authored-by: Maxim Vafin <maxim.vafin@intel.com>

* Prevent patching of non-gptq models

* Removed extra calling of quantized weights decompression patterns

* Better detection of supported AutoGPTQ models + more diagnostics

* Accurate diagnostics in case when aten::stack has multiple axes

---------

Co-authored-by: Alexander Kozlov <alexander.kozlov@intel.com>
Co-authored-by: Ilya Churaev <ilyachur@gmail.com>
Co-authored-by: Evgenya Nugmanova <eva.my.link@gmail.com>
Co-authored-by: Maxim Vafin <maxim.vafin@intel.com>
2023-10-18 21:06:17 +04:00